]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-etc_dir.patch
- fixed (s/-bi/-bb/) and enhanced comment
[packages/rpm.git] / rpm-etc_dir.patch
1 diff -Nru rpm-4.1/lib/rpmrc.c rpm-4.1.new/lib/rpmrc.c
2 --- rpm-4.1/lib/rpmrc.c Tue Aug 20 16:53:44 2002
3 +++ rpm-4.1.new/lib/rpmrc.c     Tue Mar 11 18:41:48 2003
4 @@ -1756,27 +1756,39 @@
5         /* Expand ~/ to $HOME/ */
6         fn[0] = '\0';
7         if (r[0] == '~' && r[1] == '/') {
8 +                       const char * etc_dir = getenv("HOME_ETC");
9             const char * home = getenv("HOME");
10 -           if (home == NULL) {
11 +                       if (etc_dir) {
12 +               if (strlen(etc_dir) > (sizeof(fn) - strlen(r))) {
13 +                                       rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME_ETC is too large.\n"),r);
14 +                                       rc = 1;
15 +                                       break;
16 +               }
17 +               strcpy(fn, etc_dir);
18 +                               strncat(fn, "/", sizeof(fn) - strlen(fn));                              
19 +                 r+=2;
20 +               
21 +                       } else {
22 +               if (home == NULL) {
23             /* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */
24 -               if (rcfiles == defrcfiles && myrcfiles != r)
25 -                   continue;
26 -               rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r);
27 -               rc = 1;
28 -               break;
29 -           }
30 -           if (strlen(home) > (sizeof(fn) - strlen(r))) {
31 -               rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"),
32 +                       if (rcfiles == defrcfiles && myrcfiles != r)
33 +                       continue;
34 +                       rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r);
35 +                       rc = 1;
36 +                       break;
37 +               }
38 +               if (strlen(home) > (sizeof(fn) - strlen(r))) {
39 +                       rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"),
40                                 r);
41 -               rc = 1;
42 -               break;
43 -           }
44 -           strcpy(fn, home);
45 -           r++;
46 -       }
47 -       strncat(fn, r, sizeof(fn) - (strlen(fn) + 1));
48 -       fn[sizeof(fn)-1] = '\0';
49 -
50 +                       rc = 1;
51 +                       break;
52 +               }
53 +               strcpy(fn, home);
54 +                 r++;
55 +                       }
56 +               }
57 +               strncat(fn, r, sizeof(fn) - (strlen(fn) + 1));
58 +               fn[sizeof(fn)-1] = '\0';
59         /* Read another rcfile */
60         fd = Fopen(fn, "r.fpio");
61         if (fd == NULL || Ferror(fd)) {
62 diff -Nru rpm-4.1/rpmio/macro.c rpm-4.1.new/rpmio/macro.c
63 --- rpm-4.1/rpmio/macro.c       Tue Sep 17 14:58:23 2002
64 +++ rpm-4.1.new/rpmio/macro.c   Tue Mar 11 18:21:59 2003
65 @@ -1614,15 +1614,22 @@
66         buf[0] = '\0';
67         if (mfile[0] == '~' && mfile[1] == '/') {
68             char *home;
69 -           if ((home = getenv("HOME")) != NULL) {
70 -               mfile += 2;
71 -               strncpy(buf, home, sizeof(buf));
72 -               strncat(buf, "/", sizeof(buf) - strlen(buf));
73 +                       char *etc_dir = getenv("HOME_ETC");
74 +
75 +                       if (etc_dir) {
76 +                               mfile += 2;
77 +                               strncpy(buf, etc_dir, sizeof(buf));
78 +                               strncat(buf, "/", sizeof(buf) - strlen(buf));                           
79 +                       } else {
80 +               if ((home = getenv("HOME")) != NULL) {
81 +                       mfile += 2;
82 +                       strncpy(buf, home, sizeof(buf));
83 +                       strncat(buf, "/", sizeof(buf) - strlen(buf));
84             }
85 +               }
86         }
87         strncat(buf, mfile, sizeof(buf) - strlen(buf));
88         buf[sizeof(buf)-1] = '\0';
89 -
90         fd = Fopen(buf, "r.fpio");
91         if (fd == NULL || Ferror(fd)) {
92             if (fd) (void) Fclose(fd);
93 --- rpm-4.3/po/pl.po.orig       2003-06-10 23:59:11.000000000 +0200
94 +++ rpm-4.3/po/pl.po    2003-06-11 00:06:16.000000000 +0200
95 @@ -2834,6 +2834,10 @@
96  msgid "Please contact rpm-list@redhat.com\n"
97  msgstr "Proszê skontaktowaæ siê z rpm-list@redhat.com\n"
98  
99 +#: lib/rpmrc.c:1764
100 +msgid "Cannot read %s, HOME_ETC is too large.\n"
101 +msgstr "Nie mo¿na odczytaæ %s, HOME_ETC jest zbyt du¿e.\n"
102 +
103  #: lib/rpmrc.c:1765
104  #, c-format
105  msgid "Cannot expand %s\n"
This page took 0.027185 seconds and 3 git commands to generate.