Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2008-02-01 15:37:51 +0300
committerCorinna Vinschen <corinna@vinschen.de>2008-02-01 15:37:51 +0300
commitc69d873f31440e6887288d38a9d009451874efd8 (patch)
tree15de668547cd00773aa7e1aae3d6181a6e1cc52e
parent1597484cb589da409832f64db94c8ac79ccf468c (diff)
* string.h: Re-enable inline strcasematch and strncasematch
implementations and rename to ascii_strcasematch/ascii_strncasematch. * dcrt0.cc: Replace str[n]casematch with ascii_str[n]casematch where applicable. * environ.cc: Ditto. * fhandler_process.cc: Ditto. * hookapi.cc: Ditto. * path.cc: Ditto. * spawn.cc: Ditto. * strace.cc: Ditto. * syscalls.cc: Ditto. * uinfo.cc: Ditto. * winf.cc: Ditto.
-rw-r--r--winsup/cygwin/ChangeLog16
-rw-r--r--winsup/cygwin/dcrt0.cc2
-rw-r--r--winsup/cygwin/environ.cc24
-rw-r--r--winsup/cygwin/fhandler_process.cc6
-rw-r--r--winsup/cygwin/hookapi.cc4
-rw-r--r--winsup/cygwin/path.cc31
-rw-r--r--winsup/cygwin/spawn.cc12
-rw-r--r--winsup/cygwin/strace.cc3
-rw-r--r--winsup/cygwin/string.h15
-rw-r--r--winsup/cygwin/syscalls.cc12
-rw-r--r--winsup/cygwin/uinfo.cc2
-rw-r--r--winsup/cygwin/winf.cc2
12 files changed, 69 insertions, 60 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index debfe630e..ea7b93f2a 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,19 @@
+2008-02-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * string.h: Re-enable inline strcasematch and strncasematch
+ implementations and rename to ascii_strcasematch/ascii_strncasematch.
+ * dcrt0.cc: Replace str[n]casematch with ascii_str[n]casematch where
+ applicable.
+ * environ.cc: Ditto.
+ * fhandler_process.cc: Ditto.
+ * hookapi.cc: Ditto.
+ * path.cc: Ditto.
+ * spawn.cc: Ditto.
+ * strace.cc: Ditto.
+ * syscalls.cc: Ditto.
+ * uinfo.cc: Ditto.
+ * winf.cc: Ditto.
+
2008-01-31 Corinna Vinschen <corinna@vinschen.de>
* dcrt0.cc (dll_crt0_1): Use GetCommandLineW and convert to current
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index a9679c90c..1c5464f92 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -892,7 +892,7 @@ dll_crt0_1 (void *)
if (__progname)
{
char *cp = strchr (__progname, '\0') - 4;
- if (cp > __progname && strcasematch (cp, ".exe"))
+ if (cp > __progname && ascii_strcasematch (cp, ".exe"))
*cp = '\0';
}
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
index d21e6f726..de6de9b9e 100644
--- a/winsup/cygwin/environ.cc
+++ b/winsup/cygwin/environ.cc
@@ -459,7 +459,7 @@ glob_init (const char *buf)
allow_glob = false;
ignore_case_with_glob = false;
}
- else if (strncasematch (buf, "ignorecase", 10))
+ else if (ascii_strncasematch (buf, "ignorecase", 10))
{
allow_glob = true;
ignore_case_with_glob = true;
@@ -477,17 +477,17 @@ check_case_init (const char *buf)
if (!buf || !*buf)
return;
- if (strncasematch (buf, "relax", 5))
+ if (ascii_strncasematch (buf, "relax", 5))
{
pcheck_case = PCHECK_RELAXED;
debug_printf ("File case checking set to RELAXED");
}
- else if (strcasematch (buf, "adjust"))
+ else if (ascii_strcasematch (buf, "adjust"))
{
pcheck_case = PCHECK_ADJUST;
debug_printf ("File case checking set to ADJUST");
}
- else if (strcasematch (buf, "strict"))
+ else if (ascii_strcasematch (buf, "strict"))
{
pcheck_case = PCHECK_STRICT;
debug_printf ("File case checking set to STRICT");
@@ -519,11 +519,11 @@ codepage_init (const char *buf)
if (!buf || !*buf)
return;
- if (strcasematch (buf, "oem"))
+ if (ascii_strcasematch (buf, "oem"))
current_codepage = oem_cp;
- else if (strcasematch (buf, "ansi"))
+ else if (ascii_strcasematch (buf, "ansi"))
current_codepage = ansi_cp;
- else if (strcasematch (buf, "utf8"))
+ else if (ascii_strcasematch (buf, "utf8"))
current_codepage = utf8_cp;
else
debug_printf ("Wrong codepage name: %s", buf);
@@ -545,13 +545,13 @@ set_proc_retry (const char *buf)
static void
set_ntsec (const char *buf)
{
- allow_ntsec = (buf && strcasematch (buf, "yes"));
+ allow_ntsec = (buf && ascii_strcasematch (buf, "yes"));
}
static void
set_smbntsec (const char *buf)
{
- allow_smbntsec = (buf && strcasematch (buf, "yes"));
+ allow_smbntsec = (buf && ascii_strcasematch (buf, "yes"));
}
/* The structure below is used to set up an array which is used to
@@ -636,7 +636,7 @@ parse_options (char *buf)
p = strtok_r (NULL, " \t", &lasts))
{
char *keyword_here = p;
- if (!(istrue = !strncasematch (p, "no", 2)))
+ if (!(istrue = !ascii_strncasematch (p, "no", 2)))
p += 2;
else if (!(istrue = *p != '-'))
p++;
@@ -648,7 +648,7 @@ parse_options (char *buf)
ch = 0;
for (parse_thing *k = known; k->name != NULL; k++)
- if (strcasematch (p, k->name))
+ if (ascii_strcasematch (p, k->name))
{
switch (k->disposition)
{
@@ -901,7 +901,7 @@ static NO_COPY spenv spenvs[] =
char *
spenv::retrieve (bool no_envblock, const char *const env)
{
- if (env && !strncasematch (env, name, namelen))
+ if (env && !ascii_strncasematch (env, name, namelen))
return NULL;
debug_printf ("no_envblock %d", no_envblock);
diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc
index 8f9c9bd04..380c25862 100644
--- a/winsup/cygwin/fhandler_process.cc
+++ b/winsup/cygwin/fhandler_process.cc
@@ -456,7 +456,7 @@ fhandler_process::fill_filebuf ()
if (len > 4)
{
char *s = filebuf + len - 4;
- if (strcasematch (s, ".exe"))
+ if (ascii_strcasematch (s, ".exe"))
*s = 0;
}
}
@@ -618,7 +618,7 @@ format_process_stat (_pinfo *p, char *destbuf, size_t maxsize)
if (len > 4)
{
char *s = cmd + len - 4;
- if (strcasematch (s, ".exe"))
+ if (ascii_strcasematch (s, ".exe"))
*s = 0;
}
}
@@ -744,7 +744,7 @@ format_process_status (_pinfo *p, char *destbuf, size_t maxsize)
if (len > 4)
{
char *s = cmd + len - 4;
- if (strcasematch (s, ".exe"))
+ if (ascii_strcasematch (s, ".exe"))
*s = 0;
}
}
diff --git a/winsup/cygwin/hookapi.cc b/winsup/cygwin/hookapi.cc
index 7f8917a71..975879bf6 100644
--- a/winsup/cygwin/hookapi.cc
+++ b/winsup/cygwin/hookapi.cc
@@ -55,7 +55,7 @@ rvadelta (PIMAGE_NT_HEADERS pnt, DWORD import_rva)
for (int i = 0; i < pnt->FileHeader.NumberOfSections; i++)
if (section[i].VirtualAddress <= import_rva
&& (section[i].VirtualAddress + section[i].Misc.VirtualSize) > import_rva)
- // if (strncasematch ((char *) section[i].Name, ".idata", IMAGE_SIZEOF_SHORT_NAME))
+ // if (ascii_strncasematch ((char *) section[i].Name, ".idata", IMAGE_SIZEOF_SHORT_NAME))
return section[i].VirtualAddress - section[i].PointerToRawData;
return -1;
}
@@ -190,7 +190,7 @@ hook_or_detect_cygwin (const char *name, const void *fn, WORD& subsys)
// Iterate through each import descriptor, and redirect if appropriate
for (PIMAGE_IMPORT_DESCRIPTOR pd = pdfirst; pd->FirstThunk; pd++)
{
- if (!strcasematch (rva (PSTR, hm, pd->Name - delta), "cygwin1.dll"))
+ if (!ascii_strcasematch (rva (PSTR, hm, pd->Name - delta), "cygwin1.dll"))
continue;
if (!fn)
return (void *) "found it"; // just checking if executable used cygwin1.dll
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 8d7703e40..e013d0b74 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -1194,9 +1194,9 @@ out:
{
const char *p = strchr (path, '\0') - 4;
if (p >= path &&
- (strcasematch (".exe", p) ||
- strcasematch (".bat", p) ||
- strcasematch (".com", p)))
+ (ascii_strcasematch (".exe", p) ||
+ ascii_strcasematch (".bat", p) ||
+ ascii_strcasematch (".com", p)))
path_flags |= PATH_EXEC;
}
@@ -1562,20 +1562,21 @@ special_name (const char *s, int inc = 1)
int n;
const char *p = NULL;
- if (strncasematch (s, "conin$", n = 5)
- || strncasematch (s, "conout$", n = 7)
- || strncasematch (s, "nul", n = 3)
- || strncasematch (s, "aux", 3)
- || strncasematch (s, "prn", 3)
- || strncasematch (s, "con", 3))
+ if (ascii_strncasematch (s, "conin$", n = 5)
+ || ascii_strncasematch (s, "conout$", n = 7)
+ || ascii_strncasematch (s, "nul", n = 3)
+ || ascii_strncasematch (s, "aux", 3)
+ || ascii_strncasematch (s, "prn", 3)
+ || ascii_strncasematch (s, "con", 3))
p = s + n;
- else if (strncasematch (s, "com", 3) || strncasematch (s, "lpt", 3))
+ else if (ascii_strncasematch (s, "com", 3)
+ || ascii_strncasematch (s, "lpt", 3))
strtoul (s + 3, (char **) &p, 10);
if (p && (*p == '\0' || *p == '.'))
return -1;
return (strchr (s, '\0')[-1] == '.')
- || (strpbrk (s, special_chars) && !strncasematch (s, "%2f", 3));
+ || (strpbrk (s, special_chars) && !ascii_strncasematch (s, "%2f", 3));
}
bool
@@ -2890,7 +2891,7 @@ is_floppy (const char *dos)
char dev[256];
if (!QueryDosDevice (dos, dev, 256))
return false;
- return strncasematch (dev, "\\Device\\Floppy", 14);
+ return ascii_strncasematch (dev, "\\Device\\Floppy", 14);
}
extern "C" FILE *
@@ -3468,7 +3469,7 @@ suffix_scan::has (const char *in_path, const suffix_info *in_suffixes)
{
/* Check if the extension matches a known extension */
for (const suffix_info *ex = in_suffixes; ex->name != NULL; ex++)
- if (strcasematch (ext_here, ex->name))
+ if (ascii_strcasematch (ext_here, ex->name))
{
nextstate = SCAN_JUSTCHECK;
suffixes = NULL; /* Has an extension so don't scan for one. */
@@ -3477,7 +3478,7 @@ suffix_scan::has (const char *in_path, const suffix_info *in_suffixes)
}
/* Didn't match. Use last resort -- .lnk. */
- if (strcasematch (ext_here, ".lnk"))
+ if (ascii_strcasematch (ext_here, ".lnk"))
{
nextstate = SCAN_HASLNK;
suffixes = NULL;
@@ -4173,7 +4174,7 @@ realpath (const char *path, char *resolved)
if (!transparent_exe && real_path.known_suffix)
{
char *c = strrchr (real_path.normalized_path, '.');
- if (!c || !strcasematch (c, real_path.known_suffix))
+ if (!c || !ascii_strcasematch (c, real_path.known_suffix))
tack_on = strlen (real_path.known_suffix);
}
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 67e064fb1..aee90753d 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -528,7 +528,7 @@ loop:
risk, but we don't want to disable this behaviour for older
OSes because it's still heavily used by some users. They have
been warned. */
- if (!strcasematch (wstname, "WinSta0"))
+ if (!ascii_strcasematch (wstname, "WinSta0"))
{
char sid[128];
@@ -942,12 +942,12 @@ int
av::fixup (const char *prog_arg, path_conv& real_path, const char *ext)
{
const char *p;
- bool exeext = strcasematch (ext, ".exe");
- if (exeext && real_path.iscygexec () || strcasematch (ext, ".bat"))
+ bool exeext = ascii_strcasematch (ext, ".exe");
+ if (exeext && real_path.iscygexec () || ascii_strcasematch (ext, ".bat"))
return 0;
if (!*ext && ((p = ext - 4) > real_path.get_win32 ())
- && (strcasematch (p, ".bat") || strcasematch (p, ".cmd")
- || strcasematch (p, ".btm")))
+ && (ascii_strcasematch (p, ".bat") || ascii_strcasematch (p, ".cmd")
+ || ascii_strcasematch (p, ".btm")))
return 0;
while (1)
{
@@ -1034,7 +1034,7 @@ av::fixup (const char *prog_arg, path_conv& real_path, const char *ext)
just_shell:
if (!pgm)
{
- if (strcasematch (ext, ".com"))
+ if (ascii_strcasematch (ext, ".com"))
break;
pgm = (char *) "/bin/sh";
arg1 = NULL;
diff --git a/winsup/cygwin/strace.cc b/winsup/cygwin/strace.cc
index c29a8de2d..92d7fc742 100644
--- a/winsup/cygwin/strace.cc
+++ b/winsup/cygwin/strace.cc
@@ -167,7 +167,8 @@ strace::vsprntf (char *buf, const char *func, const char *infmt, va_list ap)
p = pn;
if (p != progname)
strcpy (progname, p);
- if ((p = strrchr (progname, '.')) != NULL && strcasematch (p, ".exe"))
+ if ((p = strrchr (progname, '.')) != NULL
+ && ascii_strcasematch (p, ".exe"))
*p = '\000';
p = progname;
char tmpbuf[20];
diff --git a/winsup/cygwin/string.h b/winsup/cygwin/string.h
index cb870646e..ad262e82d 100644
--- a/winsup/cygwin/string.h
+++ b/winsup/cygwin/string.h
@@ -61,15 +61,10 @@ strechr (const char *s, int c)
#ifdef __INSIDE_CYGWIN__
-/* Don't use. Not NLS aware. */
-#if 0 // Not NLS aware
extern const char isalpha_array[];
-#undef strcasematch
-#define strcasematch cygwin_strcasematch
-
static inline int
-cygwin_strcasematch (const char *cs, const char *ct)
+ascii_strcasematch (const char *cs, const char *ct)
{
register int __res;
int d0, d1;
@@ -95,11 +90,8 @@ cygwin_strcasematch (const char *cs, const char *ct)
return __res;
}
-#undef strncasematch
-#define strncasematch cygwin_strncasematch
-
static inline int
-cygwin_strncasematch (const char *cs, const char *ct, size_t n)
+ascii_strncasematch (const char *cs, const char *ct, size_t n)
{
register int __res;
int d0, d1, d2;
@@ -126,7 +118,7 @@ cygwin_strncasematch (const char *cs, const char *ct, size_t n)
return __res;
}
-#else
+
#undef strcasecmp
#define strcasecmp cygwin_strcasecmp
int __stdcall cygwin_strcasecmp (const char *, const char *);
@@ -137,7 +129,6 @@ int __stdcall cygwin_strncasecmp (const char *, const char *, size_t);
#define strcasematch(s1,s2) (!cygwin_strcasecmp ((s1),(s2)))
#define strncasematch(s1,s2,n) (!cygwin_strncasecmp ((s1),(s2),(n)))
-#endif
#undef strlwr
#define strlwr cygwin_strlwr
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 32539aad2..1f5bc5fe5 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -1459,8 +1459,8 @@ rename_append_suffix (path_conv &pc, const char *path, size_t len,
{
char buf[len + 5];
- if (strcasematch (path + len - 4, ".lnk")
- || strcasematch (path + len - 4, ".exe"))
+ if (ascii_strcasematch (path + len - 4, ".lnk")
+ || ascii_strcasematch (path + len - 4, ".exe"))
len -= 4;
stpcpy (stpncpy (buf, path, len), suffix);
pc.check (buf, PC_SYM_NOFOLLOW);
@@ -1529,8 +1529,8 @@ rename (const char *oldpath, const char *newpath)
goto out;
}
if (oldpc.known_suffix
- && (strcasematch (oldpath + olen - 4, ".lnk")
- || strcasematch (oldpath + olen - 4, ".exe")))
+ && (ascii_strcasematch (oldpath + olen - 4, ".lnk")
+ || ascii_strcasematch (oldpath + olen - 4, ".exe")))
old_explicit_suffix = true;
nlen = strlen (newpath);
@@ -1559,8 +1559,8 @@ rename (const char *oldpath, const char *newpath)
goto out;
}
if (newpc.known_suffix
- && (strcasematch (newpath + nlen - 4, ".lnk")
- || strcasematch (newpath + nlen - 4, ".exe")))
+ && (ascii_strcasematch (newpath + nlen - 4, ".lnk")
+ || ascii_strcasematch (newpath + nlen - 4, ".exe")))
new_explicit_suffix = true;
/* This test is necessary in almost every case, so just do it once here. */
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index 97cd584dc..c91d77967 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -367,7 +367,7 @@ cygheap_user::env_logsrv (const char *name, size_t namelen)
const char *mydomain = domain ();
const char *myname = winname ();
- if (!mydomain || strcasematch (myname, "SYSTEM"))
+ if (!mydomain || ascii_strcasematch (myname, "SYSTEM"))
return almost_null;
char logsrv[INTERNET_MAX_HOST_NAME_LENGTH + 3];
diff --git a/winsup/cygwin/winf.cc b/winsup/cygwin/winf.cc
index 81c58db4f..924e60403 100644
--- a/winsup/cygwin/winf.cc
+++ b/winsup/cygwin/winf.cc
@@ -141,7 +141,7 @@ av::unshift (const char *what, int conv)
{
cygwin_conv_to_posix_path (what, buf);
char *p = strchr (buf, '\0') - 4;
- if (p > buf && strcasematch (p, ".exe"))
+ if (p > buf && ascii_strcasematch (p, ".exe"))
*p = '\0';
what = buf;
}