[pacman-dev] [PATCH] Enable Perl regular expressions in NoExtract.

Andrew Gregory andrew.gregory.8 at gmail.com
Wed Jun 5 15:19:18 EDT 2013

On 06/05/13 at 03:10pm, Patrick Steinhardt wrote:
> On Wed, Jun 05, 2013 at 10:28:25PM +1000, Allan McRae wrote:
> > On 05/06/13 16:16, Andrew Gregory wrote:
> > > 
> > > I tend to think that the particular problem at issue here would be
> > > better solved by a negation operator ala gitignore:
> > > 
> > >  NoExtract = usr/share/locale/* !usr/share/locale/en_US/*
> > 
> > 
> > I like this idea.
> How would you ignore all but two files in this directory then?
> NoExtract = !usr/share/locale/en_US/* !usr/share/locale/locale.alias
> One problem that comes to my mind: the first inverse match
> already includes locale.alias and as such it would not be
> extracted. The second term would exclude locale.alias but include
> en_US/*.
> Currently we abort as soon as the first expression (whether it is
> PCRE or fnmatch) matches. If we do it like that we would need to
> always iterate over all entries in NoExtract and check if a later
> occurence of the same file exists that overwrites previous
> occurences. _If_ a later term matches again it is unclear as to
> what to do, as stated above.

I would simply have the last match win.  It's simple, flexible, and we
can still abort as soon as we find a match if we just check them in
reverse order.  So you could do what you want with:

 NoExtract = usr/share/locale/*
 NoExtract = !usr/share/locale/en_US/*
 NoExtract = !usr/share/locale/locale.alias


More information about the pacman-dev mailing list