]> git.pld-linux.org Git - packages/cvs.git/blob - cvs-home_etc.patch
rel 20; rediff patches
[packages/cvs.git] / cvs-home_etc.patch
1 diff -urN cvs-1.12.13.org/src/filesubr.c cvs-1.12.13/src/filesubr.c
2 --- cvs-1.12.13.org/src/filesubr.c      2005-09-28 17:25:59.000000000 +0200
3 +++ cvs-1.12.13/src/filesubr.c  2007-11-05 20:47:46.928468198 +0100
4 @@ -832,7 +832,24 @@
5  char *
6  strcat_filename_onto_homedir (const char *dir, const char *file)
7  {
8 -    char *path = Xasprintf ("%s/%s", dir, file);
9 +    char *path;
10 +    char *cfgdir;
11 +    struct stat st;
12 +    int isdot = (*file == '.');
13 +
14 +    if ( (path = getenv("CONFIG_DIR")) && path[0] ) {
15 +           cfgdir = xmalloc(strlen(dir) + 1 + strlen(path) + 1);
16 +           sprintf(cfgdir, "%s/%s", dir, path);
17 +    } else
18 +           cfgdir = NULL;
19 +    if ( cfgdir && (stat(cfgdir, &st) != -1) && S_ISDIR(st.st_mode) ) {
20 +           path = Xasprintf ("%s/%s", cfgdir, file+isdot);
21 +    } else {
22 +           path = Xasprintf ("%s/%s", dir, file);
23 +    }
24 +    if (cfgdir)
25 +           free(cfgdir);
26 +   
27      return path;
28  }
29  
This page took 0.02929 seconds and 3 git commands to generate.