guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add fraggenescan.


From: Leo Famulari
Subject: Re: [PATCH] Add fraggenescan.
Date: Sun, 27 Dec 2015 19:38:00 -0500
User-agent: Mutt/1.5.24 (2015-08-30)

On Mon, Dec 28, 2015 at 07:53:27AM +1000, Ben Woodcroft wrote:
> On 20/12/15 23:03, Ricardo Wurmus wrote:

[...]

> >>+               (substitute* "run_hmm.c"
> >>+                 (("^  strcat\\(train_dir, \\\"train/\\\"\\);")
> >>+                  (string-append "  strcpy(train_dir, \"" share 
> >>"/train/\");")))
> >Why do you replace “strcat” with “strcpy” here?
> The line above does a strcpy we don't want, so strcat would keep that. I
> could remove the line above if you want, but this effectively makes no
> difference to the running of the program.

It looks like this substition has two parts:
1) Provide the correct path to some resources ("train files") for the
program.
2) Change a function call from strcat() to strcpy().

Can you elaborate more on part 2?

I undertand that the intended effect is to discard a value assigned to
'train_dir' [0] in the previous function call. This discarded value is
'argv[0]' minus 12 bytes [1]. The reason for this is that the program is
looking for the "train files" in the same directory as 'argv[0]', but we
have installed the "train files" somewhere else. Is that right?

You mention in a comment in the patch that this program and other
programs expect the "train files" to be in one place, but we are
patching this line to account for the fact that we have installed them
in another location.  Will the other programs have to be patched as
well? If so, do you think it would be better to let the files be
installed in the unusual location chosen by upstream?

[0] 'train_dir' is something like the --prefix parameter in a ./configure
script. Many paths are generated based on it, and they all seem to be
assigned to buffers with a length of 4096 bytes.

[1] The magic number 12 is equal to the length of the basename of
argv[0], "fraggenescan". For the benefit of those reading along...



reply via email to

[Prev in Thread] Current Thread [Next in Thread]