[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00274] Re: wildcard expansion problem
- Subject: [FDclone-users:00274] Re: wildcard expansion problem
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Sun, 23 May 2004 02:21:31 +0900
しらいです。
In Message-Id <86hdu9v6l5.knu@iDaemons.org>
"Akinori MUSHA" <knu@iDaemons.org>さんwrites:
> /usr\/* と "/usr/"* はうまく行きましたが、 '/usr/'* は展開
> されませんでした。もう少し。
んー、普通の meta character と違って「/」は '' の中でも有
効なんでしたね。そもそも厳密には shell の meta character で
はないし。
path delimiter character が path delimiter としての意味を
失うケースって、MS-DOS 環境の漢字 2byte 目だけでしたっけ?他
にないなら対処可能ですが。MS-DOS 版では「\」は meta character
にしてないし。
という訳で [FDclone-users:00266] に対する patch の形で。
---- Cut Here ----
diff -u old/pathname.c new/pathname.c
--- old/pathname.c Sun May 23 02:04:49 2004
+++ new/pathname.c Sun May 23 02:14:10 2004
@@ -1340,9 +1340,9 @@
if (wp -> fixed.len) addstrbuf(&(wp -> path), _SS_, 1);
- for (i = w = 0; wp -> s[i]; i++) {
+ for (i = w = 0; wp -> s[i] && wp -> s[i] != _SC_; i++) {
pc = parsechar(&(wp -> s[i]), -1,
- _SC_, 0, &(wp -> quote), NULL);
+ '\0', 0, &(wp -> quote), NULL);
if (pc == PC_OPQUOTE || pc == PC_CLQUOTE) {
if (!(wp -> flags & EA_STRIPQ))
addstrbuf(&(wp -> fixed), &(wp -> s[i]), 1);
@@ -1368,7 +1368,6 @@
}
i++;
}
- else if (pc == _SC_) break;
else if (pc == PC_NORMAL && strchr("?*[", wp -> s[i])) {
if (w >= 0 && wp -> s[i] == '*') w++;
else w = -1;
---- Cut Here ----
しらい たかし