[#12164] patch for ext/gdbm — Koji Arai <JCA02266@...>

新井です。

24 messages 2001/02/04
[#12168] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/05

まつもと ゆきひろです

[#12176] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/05

新井です。

[#12179] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/06

まつもと ゆきひろです

[#12219] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12220] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12256] set_trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 2001/02/17

[#12293] crash on proc without a block — Kenichi Komiya <kom@...1.accsnet.ne.jp>

15 messages 2001/02/25

[#12323] Re: [ruby-list:28364] class definition extension — "K.Kosako" <kosako@...>

ruby-listから移動しました。

13 messages 2001/02/28
[#12324] Re: [ruby-list:28364] class definition extension — matz@... (Yukihiro Matsumoto) 2001/02/28

まつもと ゆきひろです

[ruby-dev:12163] mswin32 isxx()

From: KANEKO Naoshi <wbs01621@...>
Date: 2001-02-04 17:38:10 UTC
List: ruby-dev #12163
金子です。

ruby 1.6.2 (2000-12-25) [i586-mswin32]
を使用していますが

  system("mycommand ほげほげ")  # ほげほげは日本語

のコマンドが失敗するので調べてみると
system() のパラメタを区切るのに使用している isspace()
が原因でした。

# VC で isxx() にchar型で0x80以上(マイナス値)を渡すと誤動作する

isxx()をすべてISXX()に修正する必要があるようです。

以下、1.6.2へのパッチです。
ただし、regex.c 内は問題なさそうだったのでさわってません。


--- dir.c.orig	Tue Jan 09 00:07:18 2001
+++ dir.c	Mon Feb 05 00:37:38 2001
@@ -69,7 +69,7 @@ char *strchr _((char*,char));
 #define FNM_NOMATCH	1
 #define FNM_ERROR	2
 
-#define downcase(c) (nocase && isupper(c) ? tolower(c) : (c))
+#define downcase(c) (nocase && ISUPPER(c) ? tolower(c) : (c))
 
 #if defined DOSISH
 #define isdirsep(c) ((c) == '/' || (c) == '\\')


--- dln.c.orig	Tue Oct 10 17:18:52 2000
+++ dln.c	Mon Feb 05 00:38:12 2001
@@ -1204,7 +1204,7 @@ aix_loaderror(const char *pathname)
 	    if (nerr == load_errtab[i].errno && load_errtab[i].errstr)
 		ERRBUF_APPEND(load_errtab[i].errstr);
 	}
-	while (isdigit(*message[i])) message[i]++; 
+	while (ISDIGIT(*message[i])) message[i]++; 
 	ERRBUF_APPEND(message[i]);
 	ERRBUF_APPEND("\n");
     }


--- file.c.orig	Thu Nov 16 14:24:58 2000
+++ file.c	Mon Feb 05 00:38:42 2001
@@ -1253,7 +1253,7 @@ rb_file_s_expand_path(argc, argv)
     }
 #if defined DOSISH
     /* skip drive letter */
-    else if (isalpha(s[0]) && s[1] == ':' && isdirsep(s[2])) {
+    else if (ISALPHA(s[0]) && s[1] == ':' && isdirsep(s[2])) {
 	while (*s && !isdirsep(*s)) {
 	    *p++ = *s++;
 	}


--- string.c.orig	Tue Jan 09 03:00:48 2001
+++ string.c	Mon Feb 05 00:39:06 2001
@@ -1646,7 +1646,7 @@ rb_str_upcase_bang(str)
 	if (ismbchar(*s)) {
 	    s+=mbclen(*s) - 1;
 	}
-	else if (islower(*s)) {
+	else if (ISLOWER(*s)) {
 	    *s = toupper(*s);
 	    modify = 1;
 	}


--- win32/win32.c.orig	Fri Dec 22 17:58:02 2000
+++ win32/win32.c	Fri Feb 02 01:13:54 2001
@@ -777,10 +777,10 @@ char *cmd;
     strcpy(cmd2, cmd);
     a = argv;
     for (s = cmd2; *s;) {
-	while (*s && isspace(*s)) s++;
+	while (*s && ISSPACE(*s)) s++;
 	if (*s)
 	    *(a++) = s;
-	while (*s && !isspace(*s)) s++;
+	while (*s && !ISSPACE(*s)) s++;
 	if (*s)
 	    *s++ = '\0';
     }
@@ -1054,7 +1054,7 @@ NtMakeCmdVector (char *cmdline, char ***
     //
 
     ptr = cmdline+(cmdlen - 1);
-    while(ptr >= cmdline && isspace(*ptr))
+    while(ptr >= cmdline && ISSPACE(*ptr))
         --ptr;
     *++ptr = '\0';
 
@@ -1074,7 +1074,7 @@ NtMakeCmdVector (char *cmdline, char ***
 	// zap any leading whitespace
 	//
 
-	while(isspace(*ptr))
+	while(ISSPACE(*ptr))
 	    ptr++;
 	base = ptr;
 
@@ -1311,7 +1311,7 @@ opendir(char *filename)
 
     if ((stat (filename, &sbuf) < 0 ||
 	sbuf.st_mode & _S_IFDIR == 0) &&
-	(!isalpha(filename[0]) || filename[1] != ':' || filename[2] != '\0' ||
+	(!ISALPHA(filename[0]) || filename[1] != ':' || filename[2] != '\0' ||
 	((1 << (filename[0] & 0x5f) - 'A') & GetLogicalDrives()) == 0)) {
 	return NULL;
     }


-- 
金子 尚史 (KANEKO Naoshi)
e-mail: wbs01621@mail.wbs.ne.jp

In This Thread

Prev Next