Re: Building sharutils 4.13.4 with MinGW

Eli Zaretskii <[email protected]>
Newsgroups gmane.comp.gnu.utils.bugs
Message-ID <[email protected]>
> Date: Mon, 08 Apr 2013 14:09:49 -0700
> From: Bruce Korb <[email protected]>
> CC: [email protected]
> 
>  >    Specifying  the compactor "none" will then disable file compres-
>  >    sion, even for non-text files.  Any other compactor  will  force
>  >    uuencoding  of  files,  and  the recipient must have uudecode to
>  >    unpack the archive.  (Compressed files are  never  processed  as
>  >    plain text.)
> 
> The operative phrase here is "Compressed files are never processed as plain text."

IMO, it's not a good idea to have the operative phrase in parentheses ;-)

> > 	Specifying the compactor "@samp{none}" will disable file compression.
> > 	Any other compactor will force uuencoding of files, and the recipient
> > 	must have @command{uudecode} to unpack the archive.  (Compressed files
> > 	are never processed as plain text.)

I would suggest

 	Specifying the compactor "@samp{none}" will disable file compression.
 	Compression forces uuencoding of compressed files, and the recipient
 	must have @command{uudecode} to unpack the archive.  (Compressed files
 	are never processed as plain text.)

> Immediately above the switch statement above is this code:
> 
> >   if (cmpr_state != NULL)
> >     return 1; // compression always implies encoding

Yes, that's how I understood what was going on.

> > +  char *command = alloca (sizeof(local_cmd) + strlen (local_name) + 2);
> > +  sprintf (command, "%s \"%s\"", local_cmd, local_name);
> 
> OK, I think _my_ eyeballs jumped.  Sorry.  I think this is adequate for this use here,
> but should probably be derived from another variation on the quoting style names:

But then you'd need to pass yet another argument to that function.  It
currently gets the file with and without quoting.  Now you will need a
3rd argument, quoted as appropriate for local commands.  That's
doable, of course.

>    {
>      static char ftime_fmt[] = "%Y-%m-%d %H:%M %Z";
> 
>      /*
>       * All fields are two characters, except %Y is four and
>       * %Z may be up to 30 (?!?!).  Anyway, if that still fails,
>       * we'll drop back to "%z".  We'll give up if that fails.
>       */
>      char buffer[sizeof (ftime_fmt) + 64];
>      time_t now;
>      struct tm * local_time;
>      time (&now);
>      local_time = localtime (&now);
>      {
>        size_t l =
>          strftime (buffer, sizeof (buffer) - 1, ftime_fmt, local_time);
>        if (l == 0)
>          {
>            ftime_fmt[sizeof(ftime_fmt) - 2] = 'z';
>            l = strftime (buffer, sizeof (buffer) - 1, ftime_fmt, local_time);
>          }
>        if (l > 0)
>          fprintf (fp, made_on_comment_z, buffer, OPT_ARG(SUBMITTER));
>      }
>    }

ftime_fmt is a static variable.  Doesn't replacing a character in it
make that change permanent for all the following uses?  Or are you
sure this array will never be used more than once in the same run?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.