+/*****************************************************************************/
+/* Credential functions */
+/*****************************************************************************/
+
+
+
+static void DisableAssembling (void)
+{
+ DoAssemble = 0;
+}
+
+
+
+static void DisableLinking (void)
+{
+ DoLink = 0;
+}
+
+
+
+static void DisableAssemblingAndLinking (void)
+{
+ DisableAssembling ();
+ DisableLinking ();
+}
+
+
+
/*****************************************************************************/
/* Command structure handling */
/*****************************************************************************/
" -C name\t\t\tUse linker config file\n"
" -Cl\t\t\t\tMake local variables static\n"
" -D sym[=defn]\t\t\tDefine a preprocessor symbol\n"
+ " -E\t\t\t\tStop after the preprocessing stage\n"
" -I dir\t\t\tSet a compiler include directory path\n"
" -L path\t\t\tSpecify a library search path\n"
" -Ln name\t\t\tCreate a VICE label file\n"
case 'S':
/* Dont assemble and link the created files */
- DoAssemble = 0;
- DoLink = 0;
+ DisableAssemblingAndLinking ();
break;
case 'T':
/* Print version number */
OptVersion (Arg, 0);
break;
-
+
+ case 'E':
+ /* Forward -E to compiler */
+ CmdAddArg (&CC65, Arg);
+ DisableAssemblingAndLinking ();
+ break;
+
case 'W':
- if (Arg[2] == 'a' && Arg[3] == '\0') {
- /* -Wa: Pass options to assembler */
- OptAsmArgs (Arg, GetArg (&I, 3));
- } else if (Arg[2] == 'c' && Arg[3] == '\0') {
- /* -Wc: Pass options to compiler */
- OptCCArgs (Arg, GetArg (&I, 3));
- } else if (Arg[2] == 'l' && Arg[3] == '\0') {
- /* -Wl: Pass options to linker */
- OptLdArgs (Arg, GetArg (&I, 3));
+ /* avoid && with'\0' in if clauses */
+ if (Arg[3] == '\0') {
+ switch (Arg[2]) {
+ case 'a':
+ /* -Wa: Pass options to assembler */
+ OptAsmArgs (Arg, GetArg (&I, 3));
+ break;
+ case 'c':
+ /* -Wc: Pass options to compiler
+ ** Remember -Wc sub arguments in cc65 arg struct
+ */
+ OptCCArgs (Arg, GetArg (&I, 3));
+ break;
+ case 'l':
+ /* -Wl: Pass options to linker */
+ OptLdArgs (Arg, GetArg (&I, 3));
+ break;
+ default:
+ UnknownOption (Arg);
+ break;
+ }
} else {
/* Anything else: Suppress warnings (compiler) */
CmdAddArg2 (&CC65, "-W", GetArg (&I, 2));
case 'c':
/* Don't link the resulting files */
- DoLink = 0;
+ DisableLinking ();
break;
case 'd':