Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: caps strings



2009/3/3 Peter Stephenson <pws@xxxxxxx>:
> On Tue, 3 Mar 2009 18:55:30 +0100
> Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
>> I think the two zwarnnam calls with *argv needs them to be
>> re-metafy()ed. When i didn't do that in attr.c, I got output like
>> myutf8file\M-p.
>
> Index: Src/Modules/cap.c
> ===================================================================
> RCS file: /cvsroot/zsh/zsh/Src/Modules/cap.c,v
> retrieving revision 1.8
> diff -u -r1.8 cap.c
> --- Src/Modules/cap.c   3 Mar 2009 17:46:51 -0000       1.8
> +++ Src/Modules/cap.c   3 Mar 2009 18:09:50 -0000
> @@ -72,7 +72,10 @@
>     do {
>        char *result = NULL;
>        ssize_t length;
> -       cap_t caps = cap_get_file(*argv);
> +       cap_t caps;
> +       char *filename;

Where did this variable come from?

> +
> +       caps = cap_get_file(unmetafy(dupstring(*argv), NULL));
>        if(caps)
>            result = cap_to_text(caps, &length);
>        if (!caps || !result) {
> @@ -99,8 +102,7 @@
>     }
>
>     do {
> -       unmetafy(*argv, NULL);
> -       if(cap_set_file(*argv, caps)) {
> +       if(cap_set_file(unmetafy(dupstring(*argv, NULL)), caps)) {
>            zwarnnam(nam, "%s: %e", *argv, errno);
>            ret = 1;
>        }

Does dupstring somehow allocate from the stack? Should I use it
instead of re-metafy()ing in attr.c too, or maybe it doesn't really
matter which you do?

-- 
Mikael Magnusson



Messages sorted by: Reverse Date, Date, Thread, Author