From: H. Peter Anvin Date: Mon, 10 Sep 2012 00:09:00 +0000 (-0700) Subject: When generate dependency names internally, quote filenames X-Git-Tag: nasm-2.11.05~213 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=553409947383bef4f38f642151657cdc66a9fab7;p=platform%2Fupstream%2Fnasm.git When generate dependency names internally, quote filenames Quote filenames for Make when generated for filenames internally. Only skip quoting when using the -MT option (rather than -MQ). Signed-off-by: H. Peter Anvin --- diff --git a/doc/changes.src b/doc/changes.src index ad16800..63077c4 100644 --- a/doc/changes.src +++ b/doc/changes.src @@ -7,6 +7,14 @@ The NASM 2 series supports x86-64, and is the production version of NASM since 2007. +\S{cl-2.10.06} Version 2.10.06 + +\b Always quote the dependency source names when using the automatic +dependency generation options. + +\b If no dependency target name is specified via the \c{-MT} or +\c{-MQ} options, quote the default output name. + \S{cl-2.10.05} Version 2.10.05 \b Add the \c{CLAC} and \c{STAC} instructions. diff --git a/doc/nasmdoc.src b/doc/nasmdoc.src index 0d21090..55dbfc0 100644 --- a/doc/nasmdoc.src +++ b/doc/nasmdoc.src @@ -626,7 +626,8 @@ specified by the \c{-o} option. The \c{-MQ} option acts as the \c{-MT} option, except it tries to quote characters that have special meaning in Makefile syntax. This is not foolproof, as not all characters with special meaning are -quotable in Make. +quotable in Make. The default output (if no \c{-MT} or \c{-MQ} option +is specified) is automatically quoted. \S{opt-MP} The \i\c{-MP} Option: Emit phony targets diff --git a/nasm.c b/nasm.c index 63e73e7..2ee319f 100644 --- a/nasm.c +++ b/nasm.c @@ -177,6 +177,8 @@ static bool want_usage; static bool terminate_after_phase; int user_nolist = 0; /* fbk 9/2/00 */ +static char *quote_for_make(const char *str); + static void nasm_fputs(const char *line, FILE * outfile) { if (outfile) { @@ -286,13 +288,15 @@ static void emit_dependencies(StrList *list) linepos = fprintf(deps, "%s:", depend_target); list_for_each(l, list) { - len = strlen(l->str); - if (linepos + len > 62) { + char *file = quote_for_make(l->str); + len = strlen(file); + if (linepos + len > 62 && linepos > 1) { fprintf(deps, " \\\n "); linepos = 1; } - fprintf(deps, " %s", l->str); + fprintf(deps, " %s", file); linepos += len+1; + nasm_free(file); } fprintf(deps, "\n\n"); @@ -356,7 +360,7 @@ int main(int argc, char **argv) depend_ptr = (depend_file || (operating_mode == op_depend)) ? &depend_list : NULL; if (!depend_target) - depend_target = outname; + depend_target = quote_for_make(outname); switch (operating_mode) { case op_depend: