projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Limiting hits to INT_MAX, because yaz can't handle 64-bit hitcounts
[idzebra-moved-to-github.git]
/
util
/
res.c
diff --git
a/util/res.c
b/util/res.c
index
90cf2d9
..
89ee5c6
100644
(file)
--- a/
util/res.c
+++ b/
util/res.c
@@
-1,4
+1,4
@@
-/* $Id: res.c,v 1.35 2004-06-14 23:42:33 adam Exp $
+/* $Id: res.c,v 1.37 2004-07-26 13:59:25 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
@@
-20,7
+20,6
@@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
02111-1307, USA.
*/
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@
-80,16
+79,19
@@
static char *xstrdup_env(const char *src)
char *env_val;
int k = 0;
i = i + 2;
char *env_val;
int k = 0;
i = i + 2;
- while (k < 127 && src[i] && !strchr("}\n\r\f", src[i]))
+ while (k < 127 && src[i] && !strchr(":}\n\r\f", src[i]))
envname[k++] = src[i++];
envname[k] = '\0';
envname[k++] = src[i++];
envname[k] = '\0';
- if (src[i] == '}')
- i++;
+
env_val = getenv(envname);
if (env_val)
env_strlen += 1 + strlen(env_val);
else
env_strlen++;
env_val = getenv(envname);
if (env_val)
env_strlen += 1 + strlen(env_val);
else
env_strlen++;
+ while (src[i] && !strchr("}\n\r\f", src[i]))
+ i++;
+ if (src[i] == '}')
+ i++;
}
else
i++;
}
else
i++;
@@
-104,17
+106,25
@@
static char *xstrdup_env(const char *src)
char *env_val;
int k = 0;
i = i + 2;
char *env_val;
int k = 0;
i = i + 2;
- while(k < 127 && src[i] && !strchr("}\n\r\f", src[i]))
+ while(k < 127 && src[i] && !strchr(":}\n\r\f", src[i]))
envname[k++] = src[i++];
envname[k] = '\0';
envname[k++] = src[i++];
envname[k] = '\0';
- if (src[i] == '}')
- i++;
env_val = getenv(envname);
if (env_val)
{
strcpy(dst+j, env_val);
j += strlen(env_val);
}
env_val = getenv(envname);
if (env_val)
{
strcpy(dst+j, env_val);
j += strlen(env_val);
}
+ else if (src[i] == ':' && src[i+1] == '-')
+ {
+ i = i + 2;
+ while (src[i] && !strchr("}\n\r\f", src[i]))
+ dst[j++] = src[i++];
+ }
+ while (src[i] && !strchr("}\n\r\f", src[i]))
+ i++;
+ if (src[i] == '}')
+ i++;
}
else
dst[j++] = src[i++];
}
else
dst[j++] = src[i++];
@@
-135,8
+145,6
@@
static void reread (Res r)
assert (r);
r->init = 1;
assert (r);
r->init = 1;
- val_buf = (char*) xmalloc (val_max);
-
if (!r->name)
return;
if (!r->name)
return;
@@
-146,6
+154,7
@@
static void reread (Res r)
logf (LOG_WARN|LOG_ERRNO, "Cannot open `%s'", r->name);
return ;
}
logf (LOG_WARN|LOG_ERRNO, "Cannot open `%s'", r->name);
return ;
}
+ val_buf = (char*) xmalloc (val_max);
while (1)
{
line = fgets (fr_buf, sizeof(fr_buf)-1, fr);
while (1)
{
line = fgets (fr_buf, sizeof(fr_buf)-1, fr);