[PATCH] merge-file: correctly open files when in a subdir

Subsystems: the rest

STALE3750d

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] merge-file: correctly open files when in a subdir

From: Aleksander Boruch-Gruszecki <hidden>
Date: 2016-06-15 23:03:45

run_setup_gently() is called before merge-file. This may result in changing
current working directory, which wasn't taken into account when opening a file
for writing.

Fix by prepending the passed prefix. Previous var is left so that error
messages keep referring to the file from the user's working directory
perspective.

Signed-off-by: Aleksander Boruch-Gruszecki
    [off-list ref]
---
I'm sorry if I'm sending the copies to wrong people, but I had no idea
who to send them to since there were barely any changes to the file.
Since the fix is so trivial I didn't add any tests, but I can create
some if they're needed.

 builtin/merge-file.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/builtin/merge-file.c b/builtin/merge-file.c
index 844f84f..232b768 100644
--- a/builtin/merge-file.c
+++ b/builtin/merge-file.c
@@ -90,7 +90,8 @@ int cmd_merge_file(int argc, const char **argv,
const char *prefix)

     if (ret >= 0) {
         const char *filename = argv[0];
-        FILE *f = to_stdout ? stdout : fopen(filename, "wb");
+        const char *fpath = prefix_filename(prefix, prefixlen, argv[0]);
+        FILE *f = to_stdout ? stdout : fopen(fpath, "wb");

         if (!f)
             ret = error("Could not open %s for writing", filename);
-- 
1.9.1

Re: [PATCH] merge-file: correctly open files when in a subdir

From: Duy Nguyen <hidden>
Date: 2016-06-15 23:03:46

On Sun, Feb 8, 2015 at 11:53 PM, Aleksander Boruch-Gruszecki
[off-list ref] wrote:
run_setup_gently() is called before merge-file. This may result in changing
current working directory, which wasn't taken into account when opening a file
for writing.

Fix by prepending the passed prefix. Previous var is left so that error
messages keep referring to the file from the user's working directory
perspective.
Sounds about right. Thomas Rast fixed something similar in 55846b9
(merge-file: correctly find files when called in subdir - 2010-10-17)
but he missed this part :-D. Perhaps a test case in
t/t6023-merge-file.sh to prove this patch is working?
-- 
Duy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help