X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fcmds.c;h=df7ad597dd78d84e79bd07688c4f5440cbea499b;hb=153c92fa2a3b77ce954a1e54a5dc9ec15370cfd6;hp=82e75689d9c0ab1ed5606bfde63aedeb1be4b6a9;hpb=98a6e4055a1fa624c592ac06f79287d55196ca37;p=chise%2Fxemacs-chise.git- diff --git a/src/cmds.c b/src/cmds.c index 82e7568..df7ad59 100644 --- a/src/cmds.c +++ b/src/cmds.c @@ -1,5 +1,6 @@ /* Simple built-in editing commands. Copyright (C) 1985, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright (C) 2001 MORIOKA Tomohiko This file is part of XEmacs. @@ -196,7 +197,7 @@ This function does not move point. (count, buffer)) { struct buffer *buf = decode_buffer (buffer, 1); - int n; + EMACS_INT n; if (NILP (count)) n = 1; @@ -224,7 +225,7 @@ If BUFFER is nil, the current buffer is assumed. return Qnil; } -DEFUN ("delete-char", Fdelete_char, 1, 2, "*p\nP", /* +DEFUN ("delete-char", Fdelete_char, 0, 2, "*p\nP", /* Delete the following COUNT characters (previous, with negative COUNT). Optional second arg KILLP non-nil means kill instead (save in kill ring). Interactively, COUNT is the prefix arg, and KILLP is set if @@ -235,10 +236,15 @@ COUNT was explicitly specified. /* This function can GC */ Bufpos pos; struct buffer *buf = current_buffer; - int n; + EMACS_INT n; - CHECK_INT (count); - n = XINT (count); + if (NILP (count)) + n = 1; + else + { + CHECK_INT (count); + n = XINT (count); + } pos = BUF_PT (buf) + n; if (NILP (killp)) @@ -265,7 +271,7 @@ COUNT was explicitly specified. return Qnil; } -DEFUN ("delete-backward-char", Fdelete_backward_char, 1, 2, "*p\nP", /* +DEFUN ("delete-backward-char", Fdelete_backward_char, 0, 2, "*p\nP", /* Delete the previous COUNT characters (following, with negative COUNT). Optional second arg KILLP non-nil means kill instead (save in kill ring). Interactively, COUNT is the prefix arg, and KILLP is set if @@ -274,8 +280,17 @@ COUNT was explicitly specified. (count, killp)) { /* This function can GC */ - CHECK_INT (count); - return Fdelete_char (make_int (- XINT (count)), killp); + EMACS_INT n; + + if (NILP (count)) + n = 1; + else + { + CHECK_INT (count); + n = XINT (count); + } + + return Fdelete_char (make_int (- n), killp); } static void internal_self_insert (Emchar ch, int noautofill); @@ -290,7 +305,7 @@ If a prefix arg COUNT is specified, the character is inserted COUNT times. /* This function can GC */ Emchar ch; Lisp_Object c; - int n; + EMACS_INT n; CHECK_NATNUM (count); n = XINT (count); @@ -336,7 +351,11 @@ internal_self_insert (Emchar c1, int noautofill) int tab_width; overwrite = buf->overwrite_mode; +#ifdef UTF2000 + syntax_table = XCHAR_TABLE (buf->syntax_table); +#else syntax_table = XCHAR_TABLE (buf->mirror_syntax_table); +#endif #if 0 /* No, this is very bad, it makes undo *always* undo a character at a time @@ -510,6 +529,11 @@ A char-table for characters which invoke auto-filling. Such characters have value t in this table. */); Vauto_fill_chars = Fmake_char_table (Qgeneric); +#ifdef UTF2000 + put_char_id_table_0 (XCHAR_TABLE (Vauto_fill_chars), ' ', Qt); + put_char_id_table_0 (XCHAR_TABLE (Vauto_fill_chars), '\n', Qt); +#else XCHAR_TABLE (Vauto_fill_chars)->ascii[' '] = Qt; XCHAR_TABLE (Vauto_fill_chars)->ascii['\n'] = Qt; +#endif }