[RFC] windres' -I option

Christopher Faylor cgf@redhat.com
Thu Mar 20 15:24:00 GMT 2003


On Thu, Mar 20, 2003 at 09:40:55AM -0500, Dimitrie O. Paun wrote:
>On March 20, 2003 03:51 am, Nick Clifton wrote:
>[Chris, I didn't receive your message, please Cc: me as I'm not
> on the binutil list...]

Um... Why?  Asking people to cc is going to be error prone.

>ChangeLog
>  Rename the -I option to -J. Introduce -I as synonym for --include-dir.

I meant to mention that this is not a valid ChangeLog.  Take a look
at the entries in the binutils ChangeLog and you'll see that this isn't
even close to the correct format.

Nick, am I correct in assuming that this is now large enough and complex
enough to require an FSF assignment?  Sigh.

cgf

>Index: binutils/windres.c
>===================================================================
>RCS file: /cvs/src/src/binutils/windres.c,v
>retrieving revision 1.13
>diff -u -r1.13 windres.c
>--- binutils/windres.c	5 May 2002 23:25:27 -0000	1.13
>+++ binutils/windres.c	17 Mar 2003 07:14:16 -0000
>@@ -110,8 +110,7 @@
> 
> #define OPTION_DEFINE 150
> #define OPTION_HELP (OPTION_DEFINE + 1)
>-#define OPTION_INCLUDE_DIR (OPTION_HELP + 1)
>-#define OPTION_LANGUAGE (OPTION_INCLUDE_DIR + 1)
>+#define OPTION_LANGUAGE (OPTION_HELP + 1)
> #define OPTION_PREPROCESSOR (OPTION_LANGUAGE + 1)
> #define OPTION_USE_TEMP_FILE (OPTION_PREPROCESSOR + 1)
> #define OPTION_NO_USE_TEMP_FILE (OPTION_USE_TEMP_FILE + 1)
>@@ -122,8 +121,8 @@
> {
>   {"define", required_argument, 0, OPTION_DEFINE},
>   {"help", no_argument, 0, OPTION_HELP},
>-  {"include-dir", required_argument, 0, OPTION_INCLUDE_DIR},
>-  {"input-format", required_argument, 0, 'I'},
>+  {"include-dir", required_argument, 0, 'I'},
>+  {"input-format", required_argument, 0, 'J'},
>   {"language", required_argument, 0, OPTION_LANGUAGE},
>   {"output-format", required_argument, 0, 'O'},
>   {"preprocessor", required_argument, 0, OPTION_PREPROCESSOR},
>@@ -140,7 +139,7 @@
> 
> static void res_init PARAMS ((void));
> static int extended_menuitems PARAMS ((const struct menuitem *));
>-static enum res_format format_from_name PARAMS ((const char *));
>+static enum res_format format_from_name PARAMS ((const char *, int));
> static enum res_format format_from_filename PARAMS ((const char *, int));
> static void usage PARAMS ((FILE *, int));
> static int cmp_res_entry PARAMS ((const PTR, const PTR));
>@@ -588,7 +587,7 @@
> /* Convert a string to a format type, or exit if it can't be done.  */
> 
> static enum res_format
>-format_from_name (name)
>+format_from_name (name, int exit_on_error)
>      const char *name;
> {
>   const struct format_map *m;
>@@ -597,7 +596,7 @@
>     if (strcasecmp (m->name, name) == 0)
>       break;
> 
>-  if (m->name == NULL)
>+  if (m->name == NULL && exit_on_error)
>     {
>       non_fatal (_("unknown format type `%s'"), name);
>       fprintf (stderr, _("%s: supported formats:"), program_name);
>@@ -779,6 +778,7 @@
>   char *input_filename;
>   char *output_filename;
>   enum res_format input_format;
>+  enum res_format input_format_tmp;
>   enum res_format output_format;
>   char *target;
>   char *preprocessor;
>@@ -828,12 +828,12 @@
> 	  output_filename = optarg;
> 	  break;
> 
>-	case 'I':
>-	  input_format = format_from_name (optarg);
>+	case 'J':
>+	  input_format = format_from_name (optarg, 1);
> 	  break;
> 
> 	case 'O':
>-	  output_format = format_from_name (optarg);
>+	  output_format = format_from_name (optarg, 1);
> 	  break;
> 
> 	case 'F':
>@@ -868,7 +868,16 @@
> 	  verbose ++;
> 	  break;
> 
>-	case OPTION_INCLUDE_DIR:
>+	case 'I':
>+	  /* for backward compatibility, should be removed in the future */
>+	  input_format_tmp = format_from_name (optarg, 0);
>+	  if (input_format_tmp != RES_FORMAT_UNKNOWN)
>+	    {
>+	      fprintf (stderr, _("Option -I is deprecated for setting the input format, please use -J instead.\n"));
>+	      input_format = input_format_tmp;
>+	      break;
>+	    }
>+	  
> 	  if (preprocargs == NULL)
> 	    {
> 	      quotedarg = quot (optarg);
>Index: binutils/doc/binutils.texi
>===================================================================
>RCS file: /cvs/src/src/binutils/doc/binutils.texi,v
>retrieving revision 1.30
>diff -u -r1.30 binutils.texi
>--- binutils/doc/binutils.texi	24 Feb 2003 16:20:28 -0000	1.30
>+++ binutils/doc/binutils.texi	20 Mar 2003 15:10:43 -0000
>@@ -2569,7 +2569,7 @@
> non-option argument, then @command{windres} will write to standard output.
> @command{windres} can not write a COFF file to standard output.
> 
>-@item -I @var{format}
>+@item -J @var{format}
> @itemx --input-format @var{format}
> The input format to read.  @var{format} may be @samp{res}, @samp{rc}, or
> @samp{coff}.  If no input format is specified, @command{windres} will
>@@ -2597,11 +2597,17 @@
> to use, including any leading arguments.  The default preprocessor
> argument is @code{gcc -E -xc-header -DRC_INVOKED}.
> 
>+@item -I @var{directory}
> @item --include-dir @var{directory}
> Specify an include directory to use when reading an @code{rc} file.
> @command{windres} will pass this to the preprocessor as an @option{-I}
> option.  @command{windres} will also search this directory when looking for
>-files named in the @code{rc} file.
>+files named in the @code{rc} file. If the argument passed to this command
>+matches any of the supported @var{formats} (as descrived in the @option{-J} 
>+option), it will issue a deprecation warning, and behave just like the
>+@option{-J} option. New programs should not use this behaviour. If a
>+directory happens to match a @var{format}, simple prefix it with @samp{./}
>+to disable the backward compatibility.
> 
> @item -D @var{target}
> @itemx --define @var{sym}[=@var{val}]
>
>
>-- 
>Dimi.



More information about the Binutils mailing list