[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:1845]Bug?:user-real-login-name on Win9X
- X-ml-count: 1845
- Subject: [MD:1845]Bug?:user-real-login-name on Win9X
- From: "Tetsuyuki Ueno" <uenox@xxxxxxxxxxxx>
- Date: Sun, 24 Sep 2000 00:19:42 +0900
- X-mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)
不幸なことに私の使っている Windows98 では、日本語でログインできて
しまうので、dired が変になってしまいます。dired が変なのかと思って、
user-real-login-name
を C-u C-x C-e にて評価すると、
"\217\343\226\354 \223N\215K"
のように変な値で表示されてしまいます。少しは自分でやろうと思って
以下のように調べては見たのですが、
(1) user-real-login-name の定義
Meadow-1.13b1/src/editfns.c(3289):
DEFVAR_LISP ("user-real-login-name", &Vuser_real_login_name,
"The user's name, based upon the real uid only.");
(2) Vuser_real_login_name の定義
Meadow-1.13b1/src/editfns.c(72):
Lisp_Object Vuser_real_login_name; /* login name of current user ID */
(3) Vuser_real_login_name を設定
Meadow-1.13b1/src/editfns.c(72):
init_editfns () の中
Meadow-1.13b1/src/editfns.c(100):
Vuser_real_login_name = build_string (pw ? pw->pw_name : "unknown");
(3-1) build_string の定義
Meadow-1.13b1/src/alloc.c(398-403):
Lisp_Object
build_string (str)
char *str;
{
return make_string (str, strlen (str));
}
(3-2) make_string の定義
Meadow-1.13b1/src/alloc.c(312-326):
Lisp_Object
make_string (contents, nbytes)
char *contents;
int nbytes;
{
register Lisp_Object val;
int nchars = chars_in_text (contents, nbytes);
val = make_uninit_multibyte_string (nchars, nbytes);
bcopy (contents, XSTRING (val)->data, nbytes);
if (STRING_BYTES (XSTRING (val)) == XSTRING (val)->size)
SET_STRING_BYTES (XSTRING (val), -1);
else
register_composite_chars_string (val);
return val;
}
(3-3) make_uninit_multibyte_string の定義
Meadow-1.13b1/src/alloc.c(1416):
Lisp_Object make_uninit_multibyte_string (length, length_byte)
(4) pw->pw_name のpwを設定
Meadow-1.13b1/src/editfns.c(94):
pw = (struct passwd *) getpwuid (getuid ());
(5) getpwuid の定義
Meadow-1.13b1/src/w32.c(214):
struct passwd *
getpwuid (int uid)
{
if (uid == the_passwd.pw_uid)
return &the_passwd;
return NULL;
}
(6) the_passwd の定義
Meadow-1.13b1/src/w32.c(176):
static struct passwd the_passwd =
(7) the_passwd.pw_name の設定
Meadow-1.13b1/src/w32.c(298-300):
/* If security calls are not supported (presumably because we
are running under Windows 95), fallback to this. */
else if (GetUserName (name, &length))
make_uninit_multibyte_string に sjis 文字列が渡っているあたりが
原因かと思いますが、徐々に inside Mule の色合いが濃くなり、
断念!神様が集うメーリングリストにポストさせていただきます。
他力本願で恐縮ですが、よろしくお願いします。(^^;
--
uenox@xxxxxxxxxxxx
上野 哲幸