0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-10-10 00:25:06 -04:00

nasm: Convert operating_mode to use bitmask

We will need it to handle mode continuations.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
Cyrill Gorcunov
2014-06-23 02:22:02 +04:00
parent 3ed32cb288
commit e9fc88ca11

29
nasm.c
View File

@@ -128,12 +128,11 @@ static const struct forwrefinfo *forwref;
static struct preproc_ops *preproc; static struct preproc_ops *preproc;
enum op_type { #define OP_NORMAL (1u << 0)
OP_NORMAL, /* Preprocess and assemble */ #define OP_PREPROCESS (1u << 1)
OP_PREPROCESS, /* Preprocess only */ #define OP_DEPEND (1u << 2)
OP_DEPEND, /* Generate dependencies */
}; static unsigned int operating_mode;
static enum op_type operating_mode;
/* Dependency flags */ /* Dependency flags */
static bool depend_emit_phony = false; static bool depend_emit_phony = false;
@@ -374,9 +373,7 @@ int main(int argc, char **argv)
if (!depend_target) if (!depend_target)
depend_target = quote_for_make(outname); depend_target = quote_for_make(outname);
switch (operating_mode) { if (operating_mode & OP_DEPEND) {
case OP_DEPEND:
{
char *line; char *line;
if (depend_missing_ok) if (depend_missing_ok)
@@ -389,11 +386,7 @@ int main(int argc, char **argv)
while ((line = preproc->getline())) while ((line = preproc->getline()))
nasm_free(line); nasm_free(line);
preproc->cleanup(0); preproc->cleanup(0);
} } else if (operating_mode & OP_PREPROCESS) {
break;
case OP_PREPROCESS:
{
char *line; char *line;
char *file_name = NULL; char *file_name = NULL;
int32_t prior_linnum = 0; int32_t prior_linnum = 0;
@@ -441,11 +434,7 @@ int main(int argc, char **argv)
if (ofile && terminate_after_phase) if (ofile && terminate_after_phase)
remove(outname); remove(outname);
ofile = NULL; ofile = NULL;
} } else if (operating_mode & OP_NORMAL) {
break;
case OP_NORMAL:
{
/* /*
* We must call ofmt->filename _anyway_, even if the user * We must call ofmt->filename _anyway_, even if the user
* has specified their own output file, because some * has specified their own output file, because some
@@ -491,8 +480,6 @@ int main(int argc, char **argv)
ofile = NULL; ofile = NULL;
} }
} }
break;
}
if (depend_list && !terminate_after_phase) if (depend_list && !terminate_after_phase)
emit_dependencies(depend_list); emit_dependencies(depend_list);