Mercurial > emacs
changeset 83075:1281a5c8fb39
Merged in changes from CVS HEAD
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-141
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-142
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-143
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-144
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-145
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-115
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Thu, 11 Mar 2004 01:13:03 +0000 |
parents | 34a7a8f40548 (current diff) 721573026f56 (diff) |
children | 5eaa708b8d47 |
files | lisp/ChangeLog lisp/type-break.el man/info.texi |
diffstat | 16 files changed, 198 insertions(+), 112 deletions(-) [+] |
line wrap: on
line diff
--- a/.cvsignore Thu Mar 11 01:11:38 2004 +0000 +++ b/.cvsignore Thu Mar 11 01:13:03 2004 +0000 @@ -1,15 +1,16 @@ -configure +*.xdelta +.DS_Store +.arch-inventory +Makefile +autom4te.cache bin boot.log boot.log.diff boot.log.old -update.log +config.cache config.log config.status -config.cache -Makefile +configure emacs*.tar.gz leim*.tar.gz -*.xdelta -autom4te.cache -.arch-inventory +update.log
--- a/lib-src/ChangeLog Thu Mar 11 01:11:38 2004 +0000 +++ b/lib-src/ChangeLog Thu Mar 11 01:13:03 2004 +0000 @@ -1,3 +1,15 @@ +2004-03-09 Juanma Barranquero <lektu@terra.es> + + * grep-changelog: Changes to support ChangeLog.10+. + (main): Tidy up usage string. Fix "Use of uninitialized value" + warning. Set version to 0.2. Parse the directory listing to get + any ChangeLog.n file, not just 1..9. + (header_match_p, entry_match_p, print_log, parse_changelog): + Remove Perl prototypes (their purpose is to help the parser, which + isn't needed here, not declare arguments). + (parse_changelog): Make --reverse faster on big batches by not + modifying the entries list. + 2004-03-01 Juanma Barranquero <lektu@terra.es> * makefile.w32-in (obj): Add fringe.c.
--- a/lib-src/grep-changelog Thu Mar 11 01:11:38 2004 +0000 +++ b/lib-src/grep-changelog Thu Mar 11 01:13:03 2004 +0000 @@ -1,6 +1,6 @@ #! /usr/bin/perl -# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # @@ -56,34 +56,36 @@ if ($result == 0 || $help) { print <<USAGE; + Usage: $0 [options] [CHANGELOG...] -Print entries in ChangeLogs matching various criteria. Valid options -are - --author=AUTHOR match entries whose author line matches +Print entries in ChangeLogs matching various criteria. +Valid options are: + + --author=AUTHOR Match entries whose author line matches regular expression AUTHOR - --text=TEXT match entries whose text matches regular - expression TEXT. - --exclude=TEXT exclude entries matching TEXT. - --from-date=YYYY-MM-DD match entries not older than given date - --to-date=YYYY-MM-DD match entries not younger than given date - --rcs-log format output suitable for RCS log entries. - --with-date print short date line in RCS log - --reverse show entries in reverse (chronological) order - --version print version info - --help print this help + --text=TEXT Match entries whose text matches regular + expression TEXT + --exclude=TEXT Exclude entries matching TEXT + --from-date=YYYY-MM-DD Match entries not older than given date + --to-date=YYYY-MM-DD Match entries not younger than given date + --rcs-log Format output suitable for RCS log entries + --with-date Print short date line in RCS log + --reverse Show entries in reverse (chronological) order + --version Print version info + --help Print this help If no CHANGELOG is specified scan the files "ChangeLog" and -"ChangeLog.[9-1]" in the current directory. Old-style dates in ChangeLogs +"ChangeLog.1+" in the current directory. Old-style dates in ChangeLogs are not recognized. USAGE - exit $help ? 0 : 1; + exit !$help; } # Print version info and exit if `--version' was specified. if ($version) { - print "0.1\n"; + print "0.2\n"; exit 0; } @@ -92,7 +94,7 @@ # options specified, i.e. it matches $author, and its date is in # the range $from_date <= date <= $to_date. -sub header_match_p ($) { +sub header_match_p { my $header = shift; return 0 unless $header; @@ -122,7 +124,7 @@ # command line, i.e. it matches $regexp, and it doesn't match # $exclude. -sub entry_match_p ($) { +sub entry_match_p { my $entry = shift; return 0 unless $entry; @@ -143,7 +145,7 @@ # lines are not printed, and leading spaces and file names are removed # from ChangeLog entries. -sub print_log ($$) { +sub print_log { my ($header, $entry) = @_; my $output = ''; @@ -172,7 +174,7 @@ # Scan LOG for matching entries, and print them to standard output. -sub parse_changelog ($) { +sub parse_changelog { my $log = shift; my $entry = undef; my $header = undef; @@ -219,8 +221,8 @@ close IN; if ($reverse) { - while (defined (my $entry = pop @entries)) { - print $entry; + for (my $entry = @entries; $entry; $entry--) { + print $entries[$entry-1]; } } } @@ -230,9 +232,19 @@ # If files were specified on the command line, parse those files in the # order supplied by the user; otherwise parse default files ChangeLog and -# ChangeLog.9...ChangeLog.1 according to $reverse. +# ChangeLog.1+ according to $reverse. unless (@ARGV > 0) { - @ARGV = ("ChangeLog", map {"ChangeLog.$_"} reverse 1..9); + @ARGV = ("ChangeLog"); + + push @ARGV, + map {"ChangeLog.$_"} + sort {$b <=> $a} + map {/\.(\d+)$/; $1} + do { + opendir D, '.'; + grep /^ChangeLog\.\d+$/, readdir D; + }; + @ARGV = reverse @ARGV if $reverse; }
--- a/lisp/ChangeLog Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/ChangeLog Thu Mar 11 01:13:03 2004 +0000 @@ -1,9 +1,35 @@ +2004-03-09 Stefan Monnier <monnier@iro.umontreal.ca> + + * type-break.el (type-break-emacs-variant): Remove. + (type-break-run-at-time, type-break-cancel-function-timers): + Use fboundp rather than version name and number. + +2004-03-09 Masatake YAMATO <jet@gyve.org> + + * hexl.el (hexl-mode): Use `make-local-variable' instead of + `make-variable-buffer-local'. + +2004-03-08 Michael Albinus <Michael.Albinus@alcatel.de> + + * find-dired.el (find-dired): Call `shell-command' instead of + `start-process-shell-command'. By this, Tramp takes over + handling of remote directories. + +2004-03-07 Stefan Monnier <monnier@iro.umontreal.ca> + + * cus-edit.el (fill) <defgroup>: Move to fill.el. + + * textmodes/fill.el (fill) <defgroup>: Move from cus-edit.el. + (enable-kinsoku): Make it a defcustom. + (fill-comment-paragraph): Don't rely on fill-prefix to bound the + paragraph to same-comment-start-marker. + 2004-03-07 Dave Love <fx@gnu.org> * net/browse-url.el (rfc2368-parse-mailto-url): Autoload. (browse-url-mail): Use it. - * mail/rfc2368.el (rfc2368-unhexify-char): Deleted. + * mail/rfc2368.el (rfc2368-unhexify-char): Delete. (rfc2368-unhexify-string): Use replace-regexp-in-string. 2004-03-07 Francis J. Wright <F.J.Wright@qmul.ac.uk> @@ -21,14 +47,17 @@ * gdb-ui.el (gdb-overlay-arrow-position): Add defvar. (gdb-reset): Reset gdb-overlay-arrow-position marker and remove it from overlay-arrow-variable-list. - (gdb-assembler-mode): Use add-to-list for - gdb-overlay-arrow-position. + (gdb-assembler-mode): Use add-to-list for gdb-overlay-arrow-position. 2004-03-06 Nick Roberts <nick@nick.uklinux.net> * gdb-ui.el (gdb-assembler-mode, gdb-assembler-custom): Set up overlay arrow string properly for the assembler buffer. +2004-03-05 Stefan Monnier <monnier@iro.umontreal.ca> + + * mail/sendmail.el (mail-mode): Fix last change. + 2004-03-05 Nick Roberts <nick@nick.uklinux.net> * gdb-ui.el (gdb-assembler-mode): Create a second overlay arrow @@ -38,6 +67,11 @@ 2004-03-04 Stefan Monnier <monnier@iro.umontreal.ca> + * progmodes/sh-script.el (sh-font-lock-paren): Add @ in case patterns. + + * pcvs-info.el (cvs-fileinfo->backup-file): Use a more constraining + regexp to distinguish .#ChangeLog.9.1.400 and .#ChangeLog.1.400. + * mail/sendmail.el (mail-mode): Set comment-start-skip. * newcomment.el (uncomment-region): Allow non-terminated comment. @@ -98,6 +132,11 @@ 2004-03-02 Stefan Monnier <monnier@iro.umontreal.ca> + * Makefile.in (setwins, setwins_almost): Skip .arch-ids and other + hidden files/directories. + +2004-03-02 Stefan Monnier <monnier@iro.umontreal.ca> + * textmodes/fill.el (fill-paragraph): Don't check comment-start-skip, only comment-start (in case the mode hasn't set it).
--- a/lisp/cus-edit.el Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/cus-edit.el Thu Mar 11 01:13:03 2004 +0000 @@ -1,6 +1,6 @@ ;;; cus-edit.el --- tools for customizing Emacs and Lisp packages ;; -;; Copyright (C) 1996,97,1999,2000,01,02,2003 Free Software Foundation, Inc. +;; Copyright (C) 1996,97,1999,2000,01,02,03,2004 Free Software Foundation, Inc. ;; ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> ;; Maintainer: FSF @@ -286,11 +286,6 @@ "Content of the modeline." :group 'environment) -(defgroup fill nil - "Indenting and filling text." - :link '(custom-manual "(emacs)Filling Text") - :group 'editing) - (defgroup editing-basics nil "Most basic editing facilities." :group 'editing)
--- a/lisp/emacs-lisp/lisp-mode.el Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/emacs-lisp/lisp-mode.el Thu Mar 11 01:13:03 2004 +0000 @@ -1,6 +1,6 @@ ;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands -;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1985,86,1999,2000,01,03,2004 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: lisp, languages @@ -197,6 +197,8 @@ (setq comment-column 40) (make-local-variable 'comment-indent-function) (setq comment-indent-function 'lisp-comment-indent) + ;; Don't get confused by `;' in doc strings when paragraph-filling. + (set (make-local-variable 'comment-use-global-state) t) (make-local-variable 'imenu-generic-expression) (setq imenu-generic-expression lisp-imenu-generic-expression) (make-local-variable 'multibyte-syntax-as-symbol)
--- a/lisp/find-dired.el Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/find-dired.el Thu Mar 11 01:13:03 2004 +0000 @@ -121,6 +121,8 @@ "" (concat "\\( " args " \\) ")) (car find-ls-option))) + ;; Start the find process. + (shell-command (concat args "&") (current-buffer)) ;; The next statement will bomb in classic dired (no optional arg allowed) (dired-mode dir (cdr find-ls-option)) (let ((map (make-sparse-keymap))) @@ -149,8 +151,7 @@ ;; ``wildcard'' line. (insert " " args "\n") (setq buffer-read-only t) - ;; Start the find process. - (let ((proc (start-process-shell-command find-dired-find-program (current-buffer) args))) + (let ((proc (get-buffer-process (current-buffer)))) (set-process-filter proc (function find-dired-filter)) (set-process-sentinel proc (function find-dired-sentinel)) ;; Initialize the process marker; it is used by the filter.
--- a/lisp/gnus/ChangeLog Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/gnus/ChangeLog Thu Mar 11 01:13:03 2004 +0000 @@ -1,3 +1,7 @@ +2004-03-05 Stefan Monnier <monnier@iro.umontreal.ca> + + * message.el (message-mode): Fix last change. + 2004-03-04 Stefan Monnier <monnier@iro.umontreal.ca> * message.el (message-mode): Set comment-start-skip.
--- a/lisp/hexl.el Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/hexl.el Thu Mar 11 01:13:03 2004 +0000 @@ -239,7 +239,7 @@ (add-hook 'change-major-mode-hook 'hexl-maybe-dehexlify-buffer nil t) ;; Set a callback function for eldoc. - (set (make-variable-buffer-local 'eldoc-print-current-symbol-info-function) + (set (make-local-variable 'eldoc-print-current-symbol-info-function) 'hexl-print-current-point-info) (eldoc-add-command-completions "hexl-") (eldoc-remove-command "hexl-save-buffer"
--- a/lisp/newcomment.el Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/newcomment.el Thu Mar 11 01:13:03 2004 +0000 @@ -345,6 +345,13 @@ ;;;; Navigation ;;;; +(defvar comment-use-global-state nil + "Non-nil means that the global syntactic context is used. +More specifically, it means that `syntax-ppss' is used to find out whether +point is within a string or not. Major modes whose syntax is faithfully +described by the syntax-tables can set this to non-nil so comment markers +in strings will not confuse Emacs.") + (defun comment-search-forward (limit &optional noerror) "Find a comment start between point and LIMIT. Moves point to inside the comment and returns the position of the @@ -357,8 +364,10 @@ (unless noerror (error "No comment"))) (let* ((pt (point)) ;; Assume (at first) that pt is outside of any string. - (s (parse-partial-sexp pt (or limit (point-max)) nil nil nil t))) - (when (and (nth 8 s) (nth 3 s)) + (s (parse-partial-sexp pt (or limit (point-max)) nil nil + (if comment-use-global-state (syntax-ppss pt)) + t))) + (when (and (nth 8 s) (nth 3 s) (not comment-use-global-state)) ;; The search ended inside a string. Try to see if it ;; works better when we assume that pt is inside a string. (setq s (parse-partial-sexp
--- a/lisp/textmodes/fill.el Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/textmodes/fill.el Thu Mar 11 01:13:03 2004 +0000 @@ -30,6 +30,11 @@ ;;; Code: +(defgroup fill nil + "Indenting and filling text." + :link '(custom-manual "(emacs)Filling Text") + :group 'editing) + (defcustom fill-individual-varying-indent nil "*Controls criterion for a new paragraph in `fill-individual-paragraphs'. Non-nil means changing indent doesn't end a paragraph. @@ -49,13 +54,14 @@ If the function returns nil, then `fill-paragraph' does its normal work.") (defvar fill-paragraph-handle-comment t - "If non-nil, paragraph filling will try to pay attention to comments.") + "Non-nil means paragraph filling will try to pay attention to comments.") -(defvar enable-kinsoku t - "*Non-nil means enable \"kinsoku\" processing on filling paragraph. +(defcustom enable-kinsoku t + "*Non-nil means enable \"kinsoku\" processing on filling paragraphs. Kinsoku processing is designed to prevent certain characters from being placed at the beginning or end of a line by filling. -See the documentation of `kinsoku' for more information.") +See the documentation of `kinsoku' for more information." + :type 'boolean) (defun set-fill-prefix () "Set the fill prefix to the current line up to point. @@ -317,7 +323,7 @@ :options '(fill-french-nobreak-p fill-single-word-nobreak-p)) (defcustom fill-nobreak-invisible nil - "Non-nil means that fill command do not break lines in invisible text." + "Non-nil means that fill commands do not break lines in invisible text." :type 'boolean :group 'fill) @@ -365,7 +371,7 @@ Don't move back past the buffer position LIMIT. This function is called when we are going to break the current line -after or before a non-ascii character. If the charset of the +after or before a non-ASCII character. If the charset of the character has the property `fill-find-break-point-function', this function calls the property value as a function with one arg LINEBEG. If the charset has no such property, do nothing." @@ -428,7 +434,7 @@ (string-to-list sentence-end-without-space))) (while (re-search-forward eol-double-space-re to t) (or (>= (point) to) (memq (char-before) '(?\t ?\ )) - (memq (char-after (match-beginning 0)) + (memq (char-after (match-beginning 0)) sentence-end-without-space-list) (insert-and-inherit ?\ )))) @@ -844,8 +850,13 @@ (concat paragraph-start "\\|[ \t]*\\(?:" comment-start-skip "\\)\\(?:" (default-value 'paragraph-start) "\\)")) - (paragraph-ignore-fill-prefix nil) - (fill-prefix comment-fill-prefix) + ;; We used to reply on fill-prefix to break paragraph at + ;; comment-starter changes, but it did not work for the + ;; first line (mixed comment&code). + ;; We now use comment-re instead to "manually" make sure + ;; we treat comment-marker changes as paragraph boundaries. + ;; (paragraph-ignore-fill-prefix nil) + ;; (fill-prefix comment-fill-prefix) (after-line (if has-code-and-comment (line-beginning-position 2)))) (setq end (progn (forward-paragraph) (point))) @@ -892,7 +903,7 @@ The fourth arg NOSQUEEZE non-nil means to leave whitespace other than line breaks untouched, and fifth arg TO-EOP non-nil means to keep filling to the end of the paragraph (or next -hard newline, if `use-hard-newlines' is on). +hard newline, if variable `use-hard-newlines' is on). Return the fill-prefix used for filling the last paragraph. @@ -976,8 +987,8 @@ moved to the beginning and end \(respectively) of the paragraphs they are in. -If `use-hard-newlines' is true, all hard newlines are taken to be paragraph -breaks. +If variable `use-hard-newlines' is true, all hard newlines are +taken to be paragraph breaks. When calling from a program, operates just on region between BEGIN and END, unless optional fourth arg WHOLE-PAR is non-nil. In that case bounds are
--- a/lisp/type-break.el Thu Mar 11 01:11:38 2004 +0000 +++ b/lisp/type-break.el Thu Mar 11 01:13:03 2004 +0000 @@ -1,6 +1,6 @@ ;;; type-break.el --- encourage rests from typing at appropriate intervals -;; Copyright (C) 1994, 95, 97, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1994, 95, 97, 2000, 2004 Free Software Foundation, Inc. ;; Author: Noah Friedman ;; Maintainer: Noah Friedman <friedman@splode.com> @@ -8,7 +8,7 @@ ;; Status: Works in GNU Emacs 19.25 or later, some versions of XEmacs ;; Created: 1994-07-13 -;; $Id: type-break.el,v 1.29 2003/09/01 15:45:17 miles Exp $ +;; $Id: type-break.el,v 1.30 2004/03/09 15:27:06 monnier Exp $ ;; This file is part of GNU Emacs. @@ -277,39 +277,6 @@ (defvar type-break-current-keystroke-warning-interval nil) (defvar type-break-time-warning-count 0) (defvar type-break-keystroke-warning-count 0) - -;; Constant indicating emacs variant. -;; This can be one of `xemacs', `lucid', `epoch', `mule', etc. -(defconst type-break-emacs-variant - (let ((data (match-data)) - (version (cond - ((fboundp 'nemacs-version) - (nemacs-version)) - (t - (emacs-version)))) - (alist '(("\\bXEmacs\\b" . xemacs) - ("\\bLucid\\b" . lucid) - ("^Nemacs\\b" . nemacs) - ("^GNU Emacs 19" . standard19) - ("^GNU Emacs 20" . standard19) - ("^GNU Emacs 18" . emacs18))) - result) - (while alist - (cond - ((string-match (car (car alist)) version) - (setq result (cdr (car alist))) - (setq alist nil)) - (t - (setq alist (cdr alist))))) - (set-match-data data) - (cond ((eq result 'lucid) - (and (string= emacs-version "19.8 Lucid") - (setq result 'lucid-19-8))) - ((memq result '(nemacs emacs18)) - (signal 'error - "type-break not supported in this version of emacs."))) - result)) - ;;;###autoload (defun type-break-mode (&optional prefix) @@ -954,38 +921,37 @@ ;;; for different versions of emacs. (defun type-break-run-at-time (time repeat function) - (cond ((eq type-break-emacs-variant 'standard19) - (require 'timer) - (funcall 'run-at-time time repeat function)) - ((eq type-break-emacs-variant 'lucid-19-8) + (condition-case nil (or (require 'timer) (require 'itimer)) (error nil)) + (cond ((fboundp 'run-at-time) + (run-at-time time repeat function)) + ((fboundp 'start-timer) (let ((name (if (symbolp function) (symbol-name function) "type-break"))) - (require 'timer) - (funcall 'start-timer name function time repeat))) - ((memq type-break-emacs-variant '(xemacs lucid)) + (start-timer name function time repeat))) + ((fboundp 'start-itimer) (let ((name (if (symbolp function) (symbol-name function) "type-break"))) - (require 'itimer) - (funcall 'start-itimer name function time repeat))))) + (start-itimer name function time repeat))))) +(defvar timer-dont-exit) (defun type-break-cancel-function-timers (function) - (cond ((eq type-break-emacs-variant 'standard19) + (cond ((fboundp 'cancel-function-timers) (let ((timer-dont-exit t)) - (funcall 'cancel-function-timers function))) - ((eq type-break-emacs-variant 'lucid-19-8) + (cancel-function-timers function))) + ((fboundp 'delete-timer) (let ((list timer-list)) (while list (and (eq (funcall 'timer-function (car list)) function) - (funcall 'delete-timer (car list))) + (delete-timer (car list))) (setq list (cdr list))))) - ((memq type-break-emacs-variant '(xemacs lucid)) + ((fboundp 'delete-itimer) (with-no-warnings (let ((list itimer-list)) (while list (and (eq (funcall 'itimer-function (car list)) function) - (funcall 'delete-itimer (car list))) + (delete-itimer (car list))) (setq list (cdr list))))))))
--- a/man/ChangeLog Thu Mar 11 01:11:38 2004 +0000 +++ b/man/ChangeLog Thu Mar 11 01:13:03 2004 +0000 @@ -1,3 +1,8 @@ +2004-03-08 Karl Berry <karl@gnu.org> + + * info.texi: \input texinfo.tex instead of just texinfo, to avoid + problems making the texinfo distribution. + 2004-03-04 Richard M. Stallman <rms@gnu.org> * search.texi (Regexps): Explain that ^ and $ have their @@ -60,6 +65,10 @@ (Icons X): Remove alias -iconic. (Misc X): New node. +2004-02-17 Karl Berry <karl@gnu.org> + + * info.texi (Help-Int): mention the new line number feature. + 2004-02-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * frames.texi (Drag and drop): Add Motif to list of supported
--- a/man/info.texi Thu Mar 11 01:11:38 2004 +0000 +++ b/man/info.texi Thu Mar 11 01:13:03 2004 +0000 @@ -1,4 +1,7 @@ -\input texinfo @c -*-texinfo-*- +\input texinfo.tex @c -*-texinfo-*- +@c We must \input texinfo.tex instead of texinfo, otherwise make +@c distcheck in the Texinfo distribution fails, because the texinfo Info +@c file is made first, and texi2dvi must include . first in the path. @comment %**start of header @setfilename info.info @settitle Info
--- a/src/ChangeLog Thu Mar 11 01:11:38 2004 +0000 +++ b/src/ChangeLog Thu Mar 11 01:13:03 2004 +0000 @@ -1,3 +1,8 @@ +2004-03-09 Kenichi Handa <handa@etlken2> + + * coding.c (decode_coding_emacs_mule): Handle insufficent source + correctly. + 2004-03-04 Richard M. Stallman <rms@gnu.org> * s/sol2-6.h (LD_SWITCH_SYSTEM_TEMACS): New definition.
--- a/src/coding.c Thu Mar 11 01:11:38 2004 +0000 +++ b/src/coding.c Thu Mar 11 01:13:03 2004 +0000 @@ -1024,9 +1024,26 @@ } else { - bytes = CHAR_STRING (*src, tmp); - p = tmp; + int i, c; + + bytes = BYTES_BY_CHAR_HEAD (*src); src++; + for (i = 1; i < bytes; i++) + { + ONE_MORE_BYTE (c); + if (CHAR_HEAD_P (c)) + break; + } + if (i < bytes) + { + bytes = CHAR_STRING (*src_base, tmp); + p = tmp; + src = src_base + 1; + } + else + { + p = src_base; + } } if (dst + bytes >= (dst_bytes ? dst_end : src)) {