[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: xml.el
>> On Thu, 03 Jul 2003 11:12:34 +0900
>> 「山」== yamaoka@jpl.org (Katsumi Yamaoka) said as follows:
土> なるほど.私の手元の Mule2.3 は char-after() が built-in function
土> だという変てこな代物なので気が付かなかったんですね.改造してしまう
土> と,動作確認向きではなくなるなあ….
山> いや、char-after() が built-in なのは変ではないです。
慌てて間違えました.
山> Mule 2.3 では char-after() は一つの引数を要求しますが、後期の
山> Emacsen は引数無しでも (point) に対して動作します。
そうなんです.でもって,手元の Mule2.3 には添付のパッチがあたっていて,
(char-after) が動いてしまうのです.変でしょ?
後は,when / unless / match-string / match-string-no-properties /
split-string 辺りを subr.el に突っ込んだら,かなり色んなものがそのまま
で動きそうですよね.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )
--- mule-2.3-19.34/src/editfns.c.orig 1998-08-18 14:48:38.000000000 +0900
+++ mule-2.3-19.34/src/editfns.c 2002-10-27 22:41:13.000000000 +0900
@@ -591,7 +591,7 @@
return Qnil;
}
-DEFUN ("char-after", Fchar_after, Schar_after, 1, 1, 0,
+DEFUN ("char-after", Fchar_after, Schar_after, 0, 1, 0,
"Return character in current buffer at position POS.\n\
POS is an integer or a buffer pointer.\n\
If POS is out of range, the value is nil.\n\
@@ -603,9 +603,12 @@
register Lisp_Object val;
register int n;
- CHECK_NUMBER_COERCE_MARKER (pos, 0);
-
- n = XINT (pos);
+ if (NILP(pos))
+ n = PT;
+ else {
+ CHECK_NUMBER_COERCE_MARKER (pos, 0);
+ n = XINT (pos);
+ }
if (n < BEGV || n >= ZV) return Qnil;
if (NILP (current_buffer->mc_flag)) /* 91.11.14 by K.Handa */
@@ -620,7 +623,7 @@
return val;
}
-DEFUN ("char-before", Fchar_before, Schar_before, 1, 2, 0,
+DEFUN ("char-before", Fchar_before, Schar_before, 0, 2, 0,
"Return character in current buffer before position POS.\n\
POS is an integer or a buffer pointer.\n\
If POS is out of range, the value is nil.\n\
@@ -632,9 +635,12 @@
register Lisp_Object val;
register int n;
- CHECK_NUMBER_COERCE_MARKER (pos, 0);
-
- n = XINT (pos);
+ if (NILP(pos))
+ n = PT;
+ else {
+ CHECK_NUMBER_COERCE_MARKER (pos, 0);
+ n = XINT (pos);
+ }
if (n <= BEGV || n > ZV) return Qnil;
XSETFASTINT (val, FETCH_CHAR (n - 1));
--- mule-2.3-19.34/lisp/bytecomp.el.orig 1998-08-18 14:48:26.000000000 +0900
+++ mule-2.3-19.34/lisp/bytecomp.el 2002-10-27 23:39:44.000000000 +0900
@@ -2323,7 +2323,7 @@
(byte-defop-compiler (1+ byte-add1) 1)
(byte-defop-compiler (1- byte-sub1) 1)
(byte-defop-compiler goto-char 1)
-(byte-defop-compiler char-after 1)
+(byte-defop-compiler char-after 0-1)
(byte-defop-compiler set-buffer 1)
;;(byte-defop-compiler set-mark 1) ;; obsolete
(byte-defop-compiler19 forward-word 1)