Re: [PATCH] coccicheck: improve pattern for getting relative path

From: Cihangir Akturk
Date: Fri Sep 22 2017 - 15:28:42 EST


On Thu, Aug 10, 2017 at 09:08:31PM +0200, Julia Lawall wrote:
>
>
> On Thu, 10 Aug 2017, Cihangir Akturk wrote:
>
> > When invoked with V=1, coccicheck script prints the information about
> > which semantic patch (*.cocci file) used for this operation. Actually,
> > it prints out the relative path of the related semantic patch. The
> > script uses sed to remove the source tree part from cocci file path like
> > so:
> >
> > FILE=`echo $COCCI | sed "s|$srctree/||"`
> >
> > This pattern works well most of the time. But in cases where $COCCI
> > doesn't start with "./" characters, it doesn't remove the right part.
> >
> > Consider the following scenario:
> >
> > $ make coccicheck COCCI=scripts/coccinelle/api/drm-get-put.cocci \
> > MODE=patch M=drivers/staging V=1
> >
> > where
> >
> > COCCI=scripts/coccinelle/api/drm-get-put.cocci and srctree=.
> >
> > In this case, out pattern matches the first "s/", and we end up
> > assigning "scriptcoccinelle/api/drm-get-put.cocci" to $FILE.
> >
> > Fix this by adding a caret ^ at the beginning of regex pattern, so that
> > it matches only start of the path.
>
> Nicolas, is this ok?

Any comments on this patch? No one has commented yet. But I still get
the same results on current linux-next.

>
> julia
>
> >
> > Signed-off-by: Cihangir Akturk <cakturk@xxxxxxxxx>
> > ---
> > scripts/coccicheck | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/scripts/coccicheck b/scripts/coccicheck
> > index ec487b8..8de4245 100755
> > --- a/scripts/coccicheck
> > +++ b/scripts/coccicheck
> > @@ -193,7 +193,7 @@ coccinelle () {
> >
> > if [ $VERBOSE -ne 0 -a $ONLINE -eq 0 ] ; then
> >
> > - FILE=`echo $COCCI | sed "s|$srctree/||"`
> > + FILE=`echo $COCCI | sed "s|^$srctree/||"`
> >
> > echo "Processing `basename $COCCI`"
> > echo "with option(s) \"$OPT\""
> > --
> > 2.7.4
> >
> >