about summary refs log tree commit diff
path: root/Src/init.c
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-01-14 19:14:40 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-01-14 19:14:40 +0000
commite142bdeb17005fdb974b0352c743f9da68dbb8aa (patch)
tree6ff0657f3ec5540579bbce67fcbe950e7782f106 /Src/init.c
parent9fc3e9a8dbfd2bbce2fd825a104414994539cd4d (diff)
downloadzsh-e142bdeb17005fdb974b0352c743f9da68dbb8aa.tar.gz
zsh-e142bdeb17005fdb974b0352c743f9da68dbb8aa.tar.xz
zsh-e142bdeb17005fdb974b0352c743f9da68dbb8aa.zip
zsh-workers/9322
Diffstat (limited to 'Src/init.c')
-rw-r--r--Src/init.c48
1 files changed, 35 insertions, 13 deletions
diff --git a/Src/init.c b/Src/init.c
index 11d9ab65c..e213db0cb 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -547,6 +547,18 @@ setupvals(void)
 #ifdef HAVE_GETRLIMIT
     int i;
 #endif
+#if defined(SITEFPATH_DIR) || defined(FPATH_DIR)
+    char **fpathptr;
+# if defined(FPATH_DIR) && defined(FPATH_SUBDIRS)
+    char *fpath_subdirs[] = FPATH_SUBDIRS;
+    int j;
+# endif
+# ifdef SITEPATH_DIR
+    int fpathlen = 1;
+# else
+    int fpathlen = 0;
+# endif
+#endif
 
     getkeyptr = NULL;
 
@@ -581,23 +593,33 @@ setupvals(void)
     cdpath   = mkarray(NULL);
     manpath  = mkarray(NULL);
     fignore  = mkarray(NULL);
-#ifdef FPATH_DIR
-# ifdef FPATH_SUBDIRS
-    {
-	char *fpath_subdirs[] = FPATH_SUBDIRS;
-	int len = sizeof(fpath_subdirs)/sizeof(char *), j;
-
-	fpath = zalloc((len+1)*sizeof(char *));
-	for (j = 0; j < len; j++)
-	    fpath[j] = tricat(FPATH_DIR, "/", fpath_subdirs[j]);
-	fpath[len] = NULL;
-    }
-# else
-    fpath    = mkarray(ztrdup(FPATH_DIR));
+
+#if defined(SITEFPATH_DIR) || defined(FPATH_DIR)
+# ifdef FPATH_DIR
+#  ifdef FPATH_SUBDIRS
+    fpathlen += sizeof(fpath_subdirs)/sizeof(char *);
+#  else
+    fpathlen++;
+#  endif
+# endif
+    fpath = fpathptr = (char **)zalloc((fpathlen+1)*sizeof(char *));
+# ifdef SITEFPATH_DIR
+    *fpathptr++ = ztrdup(SITEFPATH_DIR);
+    fpathlen--;
 # endif
+# ifdef FPATH_DIR
+#  ifdef FPATH_SUBDIRS
+    for (j = 0; j < fpathlen; j++)
+	*fpathptr++ = tricat(FPATH_DIR, "/", fpath_subdirs[j]);
+#  else
+    *fpathptr++ = ztrdup(FPATH_DIR);
+#  endif
+# endif
+    *fpathptr = NULL;
 #else
     fpath    = mkarray(NULL);
 #endif
+
     mailpath = mkarray(NULL);
     watch    = mkarray(NULL);
     psvar    = mkarray(NULL);