From: Giuseppe Bilotta Date: Wed, 27 May 2009 08:29:06 GMT Subject: Re: [PATCHv2 3/4] git-am foreign patch support: StGIT support Message-ID: In-Reply-To: <7v7i03j9mb.fsf@alter.siamese.dyndns.org> On Wed, May 27, 2009 at 9:19 AM, Junio C Hamano wrote: > Giuseppe Bilotta writes: > >> +             # set the patch format appropriately >> +             patch_format=stgit >> +             # now handle the actual StGIT patches >> +             split_patches "$@" > > Can an stgit patch file (or the leading pathname for that matter) have IFS > character in its name? StGIT sanitizes filenames in a way similar to what format-patch does. >> +             ;; >> +     stgit) >> +             this=0 >> +             for stgit in "$@" >> +             do >> +                     this=`expr "$this" + 1` >> +                     msgnum=`printf "%0${prec}d" $this` >> +                     touch "$dotest/$msgnum" > > Portability tip from an old timer: do not create a new empty file with > "touch" (only use that command to update the timestamp of an existing > file). > > Instead say > >        >"$dotest/$msgnum" > >> +                     # Awk version of StGIT parse_patch. The first nonemptyline >> +                     # not starting with Author, From or Date is the >> +                     # subject, and the body starts with the next nonempty >> +                     # line not starting with Author, From or Date >> +                     awk 'BEGIN { subject=0 } >> +                     { >> +                             if (subject > 1) >> +                                     print ; >> +                             else if (/^$/) next ; >> +                             else if (/^Author:/) print sub("Author", "From"), $ORS ; > > Can any token that match Author other than the initial "Author: " appear > on this line? Irrelevant, sub only substitutes the first hit so only the initial Author: is replaced. > Since we rely on Perl but not awk in core-ish part of the scripted > Porcelains, it might be a good idea to write this in Perl as well. By 'as well' you mean in case awk is missing, and have both, or by only keeping a perl version? -- Giuseppe "Oblomov" Bilotta