]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs--devo--0
authorMiles Bader <miles@gnu.org>
Thu, 7 Dec 2006 04:14:14 +0000 (04:14 +0000)
committerMiles Bader <miles@gnu.org>
Thu, 7 Dec 2006 04:14:14 +0000 (04:14 +0000)
Patches applied:

 * emacs--devo--0  (patch 523-544)

   - Update from CVS
   - Merge from gnus--rel--5.10

 * gnus--rel--5.10  (patch 168-171)

   - Update from CVS
   - Merge from emacs--devo--0

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-150

47 files changed:
1  2 
.gitignore
configure
configure.in
etc/NEWS
lib-src/etags.c
lib-src/makefile.w32-in
lisp/ChangeLog
lisp/arc-mode.el
lisp/bindings.el
lisp/case-table.el
lisp/descr-text.el
lisp/disp-table.el
lisp/edmacro.el
lisp/emacs-lisp/bytecomp.el
lisp/format.el
lisp/gnus/gnus-start.el
lisp/gnus/mm-util.el
lisp/international/fontset.el
lisp/international/mule.el
lisp/simple.el
lisp/startup.el
lisp/subr.el
lisp/tar-mode.el
lisp/term.el
lisp/textmodes/sgml-mode.el
lisp/time-stamp.el
make-dist
src/ChangeLog
src/Makefile.in
src/abbrev.c
src/buffer.c
src/config.in
src/emacs.c
src/fileio.c
src/fns.c
src/keyboard.c
src/msdos.c
src/process.c
src/regex.c
src/syntax.c
src/w16select.c
src/w32fns.c
src/w32term.c
src/window.c
src/xdisp.c
src/xfaces.c
src/xterm.c

diff --cc .gitignore
index 6f0a84ff21ccb6d3499d1b633558d38b55a89db5,71fbe7e8d36a2b7cc2b08ded7ac3a0feae37b239..0f9785cdfe715eeee34df54c3f97eefe5fd3b903
@@@ -31,12 -35,13 +31,13 @@@ bi
  boot.log
  boot.log.diff
  boot.log.old
 -config.cache
 +update.log
  config.log
  config.status
 -configure
 -data
 +config.cache
 +Makefile
  emacs*.tar.gz
  leim*.tar.gz
 -site-lisp
 -update.log
+ lock
 +*.xdelta
 +autom4te.cache
diff --cc configure
Simple merge
diff --cc configure.in
Simple merge
diff --cc etc/NEWS
Simple merge
diff --cc lib-src/etags.c
index 49a18be1df55a09296dfca97c29b887caa1591d4,c3578a4b1ad2d4c3928a5c9cc872801b2a04fcd2..26dac368b4d9b4d67ee10fcf6c71fda0b96abfef
@@@ -41,7 -41,7 +41,7 @@@
   * configuration file containing regexp definitions for etags.
   */
  
- char pot_etags_version[] = "@(#) pot revision number is 17.20";
 -char pot_etags_version[] = "@(#) pot revision number is $Revision: 17.22 $";
++char pot_etags_version[] = "@(#) pot revision number is $Revision: 3.61 $";
  
  #define       TRUE    1
  #define       FALSE   0
Simple merge
diff --cc lisp/ChangeLog
Simple merge
Simple merge
Simple merge
Simple merge
index ec75610c3d799a6834586cb62973abee06989c9d,361c3b8c15c9bd06282398e1fe00ff220d73f5e0..2d5734c81709f4035c1ab2c66cd8568c635fe984
@@@ -183,30 -183,9 +183,30 @@@ otherwise.
        (insert "There are text properties here:\n")
        (describe-property-list properties)))))
  \f
 +(defcustom describe-char-unidata-list nil
 +  "List of Unicode-based character property names shown by `describe-char'."
 +  :group 'mule
 +  :version "23.1"
 +  :type '(set
 +        (const :tag "Unicode Name" name)
 +        (const :tag "Unicode general category " general-category)
 +        (const :tag "Unicode canonical combining class"
 +               canonical-combining-class)
 +        (const :tag "Unicode bidi class" bidi-class)
 +        (const :tag "Unicode decomposition mapping" decomposition)
 +        (const :tag "Unicode decimal digit value" decimal-digit-value)
 +        (const :tag "Unicode digit value" digit-value)
 +        (const :tag "Unicode numeric value" numeric-value)
 +        (const :tag "Unicode mirrored" mirrored)
 +        (const :tag "Unicode old name" old-name)
 +        (const :tag "Unicode ISO 10646 comment" iso-10646-comment)
 +        (const :tag "Unicode simple uppercase mapping" uppercase)
 +        (const :tag "Unicode simple lowercase mapping" lowercase)
 +        (const :tag "Unicode simple titlecase mapping" titlecase)))
 +
  (defcustom describe-char-unicodedata-file nil
    "Location of Unicode data file.
- This is the UnicodeData.txt file from the Unicode consortium, used for
+ This is the UnicodeData.txt file from the Unicode Consortium, used for
  diagnostics.  If it is non-nil `describe-char' will print data
  looked up from it.  This facility is mostly of use to people doing
  multilingual development.
index d1b49c0b7f0b2ef8eaf20164e83111fde61b9647,d436a33e477a6a723c1af6df69a1bc57378e2927..20aae96aa94273d17b009751437c1df83ecda724
@@@ -126,7 -126,7 +126,7 @@@ Valid symbols are `truncation', `wrap'
    (or standard-display-table
        (setq standard-display-table (make-display-table)))
    (while (<= l h)
-     (if (and (>= l ?\ ) (characterp l))
 -    (if (and (>= l ?\s) (char-valid-p l))
++    (if (and (>= l ?\s) (characterp l))
        (aset standard-display-table l nil))
      (setq l (1+ l))))
  
diff --cc lisp/edmacro.el
Simple merge
Simple merge
diff --cc lisp/format.el
Simple merge
Simple merge
Simple merge
index 12288e6cd04d832fe6589e0879ad8e22348704b3,c1193e094d88e04b28aabfaab1282589373298e3..9f09c6154516cd4cfe6d49523648fa38838815e0
        ))
  
  (defun x-decompose-font-name (pattern)
 -  "Decompose PATTERN into XLFD's fields and return vector of the fields.
 -The length of the vector is 14.
 -
 -If PATTERN doesn't conform to XLFD, try to get a full XLFD name from
 -X server and use the information of the full name to decompose
 -PATTERN.  If no full XLFD name is gotten, return nil."
 -  (let (xlfd-fields fontname)
 -    (if (string-match xlfd-tight-regexp pattern)
 -      (let ((i 0))
 -        (setq xlfd-fields (make-vector 14 nil))
 -        (while (< i 14)
 -          (aset xlfd-fields i (match-string (1+ i) pattern))
 -          (setq i (1+ i)))
 -        xlfd-fields)
 -      (setq fontname (condition-case nil
 -                       (x-resolve-font-name pattern)
 -                     (error)))
 -      (if (and fontname
 -             (string-match xlfd-tight-regexp fontname))
 -        ;; We get a full XLFD name.
 -        (let ((len (length pattern))
 -              (i 0)
 -              l)
 -          ;; Setup xlfd-fields by the full XLFD name.  Each element
 -          ;; should be a cons of matched index and matched string.
 -          (setq xlfd-fields (make-vector 14 nil))
 -          (while (< i 14)
 -            (aset xlfd-fields i
 -                  (cons (match-beginning (1+ i))
 -                        (match-string (1+ i) fontname)))
 -            (setq i (1+ i)))
 -
 -          ;; Replace wild cards in PATTERN by regexp codes.
 -          (setq i 0)
 -          (while (< i len)
 -            (let ((ch (aref pattern i)))
 -              (if (= ch ??)
 -                  (setq pattern (concat (substring pattern 0 i)
 -                                        "\\(.\\)"
 -                                        (substring pattern (1+ i)))
 -                        len (+ len 4)
 -                        i (+ i 4))
 -                (if (= ch ?*)
 -                    (setq pattern (concat (substring pattern 0 i)
 -                                          "\\(.*\\)"
 -                                          (substring pattern (1+ i)))
 -                          len (+ len 5)
 -                          i (+ i 5))
 -                  (setq i (1+ i))))))
 -
 -          ;; Set each element of xlfd-fields to proper strings.
 -          (if (string-match pattern fontname)
 -              ;; The regular expression PATTERN matchs the full XLFD
 -              ;; name.  Set elements that correspond to a wild card
 -              ;; in PATTERN to "*", set the other elements to the
 -              ;; exact strings in PATTERN.
 -              (let ((l (cdr (cdr (match-data)))))
 -                (setq i 0)
 -                (while (< i 14)
 -                  (if (or (null l) (< (car (aref xlfd-fields i)) (car l)))
 -                      (progn
 -                        (aset xlfd-fields i (cdr (aref xlfd-fields i)))
 -                        (setq i (1+ i)))
 -                    (if (< (car (aref xlfd-fields i)) (car (cdr l)))
 -                        (progn
 -                          (aset xlfd-fields i "*")
 -                          (setq i (1+ i)))
 -                      (setq l (cdr (cdr l)))))))
 -            ;; Set each element of xlfd-fields to the exact string
 -            ;; in the corresonding fields in full XLFD name.
 -            (setq i 0)
 -            (while (< i 14)
 -              (aset xlfd-fields i (cdr (aref xlfd-fields i)))
 -              (setq i (1+ i))))
 -          xlfd-fields)))))
 -
 -;; Replace consecutive wild-cards (`*') in NAME to one.
 -;; Ex. (x-reduce-font-name "-*-*-*-iso8859-1") => "-*-iso8859-1"
 -(defsubst x-reduce-font-name (name)
 -  (while (string-match "-\\*-\\(\\*-\\)+" name)
 -    (setq name (replace-match "-*-" t t name)))
 -  name)
 +  "Decompose PATTERN into XLFD fields and return a vector of the fields.
 +The length of the vector is 12.
 +The FOUNDRY and FAMILY fields are concatinated and stored in the first
 +element of the vector.
 +The REGISTRY and ENCODING fields are concatinated and stored in the last
 +element of the vector.
 +
 +Return nil if PATTERN doesn't conform to XLFD."
 +  (if (string-match xlfd-tight-regexp pattern)
 +      (let ((xlfd-fields (make-vector 12 nil)))
 +      (dotimes (i 12)
 +        (aset xlfd-fields i (match-string (1+ i) pattern)))
 +      (dotimes (i 12)
 +        (if (string-match "^[*-]+$" (aref xlfd-fields i))
 +            (aset xlfd-fields i nil)))
 +      xlfd-fields)))
  
  (defun x-compose-font-name (fields &optional reduce)
 -  "Compose X's fontname from FIELDS.
 -FIELDS is a vector of XLFD fields, of length 14.
 +  "Compose X fontname from FIELDS.
- FIELDS is a vector of XLFD fields, the length 12.
++FIELDS is a vector of XLFD fields, of length 12.
  If a field is nil, wild-card letter `*' is embedded.
- Optional argument REDUCE is always ignored.  It exists just for
backward compatibility."
+ Optional argument REDUCE exists just for backward compatibility,
and is always ignored."
    (concat "-" (mapconcat (lambda (x) (or x "*")) fields "-")))
  
  (defun x-must-resolve-font-name (xlfd-fields)
    "Like `x-resolve-font-name', but always return a font name.
  XLFD-FIELDS is a vector of XLFD (X Logical Font Description) fields.
@@@ -768,50 -518,60 +769,50 @@@ to map charsets to scripts."
                                         &optional style-variant noerror)
    "Create a fontset from fontset specification string FONTSET-SPEC.
  FONTSET-SPEC is a string of the format:
-       FONTSET-NAME,SCRIPT-NAME0:FONT-NAME0,SCRIPT-NAME1:FONT-NAME1, ...
 -      FONTSET-NAME,CHARSET0:FONT0,CHARSET1:FONT1, ...
++      FONTSET-NAME,SCRIPT0:FONT0,SCRIPT1:FONT1, ...
  Any number of SPACE, TAB, and NEWLINE can be put before and after commas.
  
 -Optional 2nd arg exists just for backward compatibility, and is ignored.
 +When a frame uses the fontset as the `font' parameter, the frame's
 +default font name is derived from FONTSET-NAME by substituting
 +\"iso8859-1\" for the tail part \"fontset-XXX\".  But, if SCRIPT-NAMEn
 +is \"ascii\", use the corresponding FONT-NAMEn as the default font
 +name.
  
- Optional 2nd and 3rd arguments are ignored.  They exist just for
- backward compatibility.
 -If this function attempts to create already existing fontset, an error is
 -signaled unless the optional 3rd argument NOERROR is non-nil.
++Optional 2nd and 3rd arguments exist just for backward compatibility,
++and are ignored.
  
 -It returns a name of the created fontset."
 -  (if (not (string-match "^[^,]+" fontset-spec))
 +It returns a name of the created fontset.
 +
 +For backward compatibility, SCRIPT-NAME may be a charset name, in
 +which case, the corresponding script is decided by the variable
 +`charset-script-alist' (which see)."
 +  (or (string-match "^[^,]+" fontset-spec)
        (error "Invalid fontset spec: %s" fontset-spec))
 -  (setq fontset-spec (downcase fontset-spec))
    (let ((idx (match-end 0))
        (name (match-string 0 fontset-spec))
 -      xlfd-fields charset fontlist ascii-font)
 -    (if (query-fontset name)
 -      (or noerror
 -          (error "Fontset \"%s\" already exists" name))
 -      (setq xlfd-fields (x-decompose-font-name name))
 -      (or xlfd-fields
 -        (error "Fontset \"%s\" not conforming to XLFD" name))
 -
 -      ;; At first, extract pairs of charset and fontname from FONTSET-SPEC.
 -      (while (string-match "[, \t\n]*\\([^:]+\\):[ \t]*\\([^,]+\\)"
 -                         fontset-spec idx)
 -      (setq idx (match-end 0))
 -      (setq charset (intern (match-string 1 fontset-spec)))
 -      (if (charsetp charset)
 -          (setq fontlist (cons (cons charset (match-string 2 fontset-spec))
 -                               fontlist))))
 -      (setq ascii-font (cdr (assq 'ascii fontlist)))
 -
 -      ;; Complement FONTLIST.
 -      (setq fontlist (x-complement-fontset-spec xlfd-fields fontlist))
 -
 -      (new-fontset name fontlist)
 -
 -      ;; Define the short name alias.
 -      (if (and (string-match "fontset-.*$" name)
 -             (not (assoc name fontset-alias-alist)))
 -        (let ((alias (match-string 0 name)))
 -          (or (rassoc alias fontset-alias-alist)
 -              (setq fontset-alias-alist
 -                    (cons (cons name alias) fontset-alias-alist)))))
 -
 -      ;; Define the ASCII font name alias.
 -      (or ascii-font
 -        (setq ascii-font (cdr (assq 'ascii fontlist))))
 -      (or (rassoc ascii-font fontset-alias-alist)
 -        (setq fontset-alias-alist
 -              (cons (cons name ascii-font)
 -                    fontset-alias-alist))))
 -
 -    name))
 +      xlfd-fields target script fontlist)
 +    (setq xlfd-fields (x-decompose-font-name name))
 +    (or xlfd-fields
 +      (error "Fontset name \"%s\" not conforming to XLFD" name))
 +
 +    ;; At first, extract pairs of charset and fontname from FONTSET-SPEC.
 +    (while (string-match "[, \t\n]*\\([^:]+\\):[ \t]*\\([^,]+\\)" 
 +                       fontset-spec idx)
 +      (setq idx (match-end 0))
 +      (setq target (intern (match-string 1 fontset-spec)))
 +      (cond ((or (eq target 'ascii)
 +               (memq target (char-table-extra-slot char-script-table 0)))
 +           (push (list target (match-string 2 fontset-spec)) fontlist))
 +          ((setq script (cdr (assq target charset-script-alist)))
 +           (push (list script (match-string 2 fontset-spec)) fontlist))
 +          ((charsetp target)
 +           (push (list target (match-string 2 fontset-spec)) fontlist))))
 +
 +    ;; Complement FONTLIST.
 +    (setq fontlist (x-complement-fontset-spec xlfd-fields fontlist))
 +
 +    ;; Create a fontset.
 +    (new-fontset name (nreverse fontlist))))
  
  (defun create-fontset-from-ascii-font (font &optional resolved-font
                                            fontset-name)
Simple merge
diff --cc lisp/simple.el
Simple merge
diff --cc lisp/startup.el
Simple merge
diff --cc lisp/subr.el
Simple merge
index 024d7399ea917b77461e2d177ba44d628bc1eaca,b1f0176b0f3c2b7245be11a5a96251cf9a092738..f3aa86b48c32cbb6acfdf2a34a09f9b50e06cc4b
@@@ -936,8 -957,8 +936,8 @@@ for this to be permanent.
    (interactive)
    (save-excursion
      (goto-char (point-min))
 -    (while (< (position-bytes (point)) tar-header-offset)
 +    (while (< (point) tar-header-offset)
-       (if (not (eq (following-char) ?\ ))
+       (if (not (eq (following-char) ?\s))
          (progn (delete-char 1) (insert " ")))
        (forward-line 1))))
  
diff --cc lisp/term.el
Simple merge
Simple merge
index 4a14a0197e80fc9faf3a4a933d1e3a606c1ac3c9,f29806e30138ca7fbc7a85e73f6c93eaa7ddb4b2..770a86834c8fedd689dd649fcd9cfdb406341577
@@@ -710,23 -710,16 +710,16 @@@ around literals.
  ;;; Some functions used in time-stamp-format
  
  ;;; These functions have been obsolete since 1995
 -;;; and will be removed in a future Emacs release.
 +;;; and will be removed in Emacs 23.
  ;;; Meanwhile, discourage other packages from using them.
- (let ((obsolete-functions '(time-stamp-month-dd-yyyy
-                           time-stamp-dd/mm/yyyy
-                           time-stamp-mon-dd-yyyy
-                           time-stamp-dd-mon-yy
-                           time-stamp-yy/mm/dd
-                           time-stamp-yyyy/mm/dd
-                           time-stamp-yyyy-mm-dd
-                           time-stamp-yymmdd
-                           time-stamp-hh:mm:ss
-                           time-stamp-hhmm)))
-   (while obsolete-functions
-     (make-obsolete (car obsolete-functions)
-                  "use time-stamp-string or format-time-string instead."
-                  "20.1")
-     (setq obsolete-functions (cdr obsolete-functions))))
+ (dolist (function '(time-stamp-month-dd-yyyy time-stamp-dd/mm/yyyy
+                   time-stamp-mon-dd-yyyy   time-stamp-dd-mon-yy
+                   time-stamp-yy/mm/dd      time-stamp-yyyy/mm/dd
+                   time-stamp-yyyy-mm-dd    time-stamp-yymmdd
+                   time-stamp-hh:mm:ss      time-stamp-hhmm))
+   (make-obsolete function
+                "use `time-stamp-string' or `format-time-string' instead."
+                "20.1"))
  
  ;;; pretty form, suitable for a title page
  
diff --cc make-dist
Simple merge
diff --cc src/ChangeLog
Simple merge
diff --cc src/Makefile.in
Simple merge
diff --cc src/abbrev.c
Simple merge
diff --cc src/buffer.c
Simple merge
diff --cc src/config.in
Simple merge
diff --cc src/emacs.c
Simple merge
diff --cc src/fileio.c
Simple merge
diff --cc src/fns.c
index e6b83b8e4e1d790373463ac2c5d30343eaaa3f57,f65375438faac40a8e535e8b7aaf17551690fcd0..da2c43fd6a9032e26e07c85c6556028737a07e74
+++ b/src/fns.c
@@@ -150,7 -150,9 +150,7 @@@ To get the number of bytes, use `string
    if (STRINGP (sequence))
      XSETFASTINT (val, SCHARS (sequence));
    else if (VECTORP (sequence))
-     XSETFASTINT (val, XVECTOR (sequence)->size);
+     XSETFASTINT (val, ASIZE (sequence));
 -  else if (SUB_CHAR_TABLE_P (sequence))
 -    XSETFASTINT (val, SUB_CHAR_TABLE_ORDINARY_SLOTS);
    else if (CHAR_TABLE_P (sequence))
      XSETFASTINT (val, MAX_CHAR);
    else if (BOOL_VECTOR_P (sequence))
@@@ -576,11 -617,11 +576,11 @@@ concat (nargs, args, target_type, last_
          if (VECTORP (this))
            for (i = 0; i < len; i++)
              {
-               ch = XVECTOR (this)->contents[i];
+               ch = AREF (this, i);
 -              CHECK_NUMBER (ch);
 +              CHECK_CHARACTER (ch);
                this_len_byte = CHAR_BYTES (XINT (ch));
                result_len_byte += this_len_byte;
 -              if (!SINGLE_BYTE_CHAR_P (XINT (ch)))
 +              if (! ASCII_CHAR_P (XINT (ch)) && ! CHAR_BYTE8_P (XINT (ch)))
                  some_multibyte = 1;
              }
          else if (BOOL_VECTOR_P (this) && XBOOL_VECTOR (this)->size > 0)
diff --cc src/keyboard.c
Simple merge
diff --cc src/msdos.c
Simple merge
diff --cc src/process.c
Simple merge
diff --cc src/regex.c
index 2eca58c23e88dd6394a14e7c50b430c7301f3411,c0dd6e00ffcd6518a6955936234927712b8f02b9..b97ee7943fd6fd5927f3e37055ccfb0ec0431423
@@@ -1992,15 -1967,18 +1992,15 @@@ struct range_table_work_are
  #define BIT_UPPER     0x10
  #define BIT_MULTIBYTE 0x20
  
 -/* Set a range START..END to WORK_AREA.
 -   The range is passed through TRANSLATE, so START and END
 -   should be untranslated.  */
 -#define SET_RANGE_TABLE_WORK_AREA(work_area, start, end)              \
 +/* Set a range (RANGE_START, RANGE_END) to WORK_AREA.  */
 +#define SET_RANGE_TABLE_WORK_AREA(work_area, range_start, range_end)  \
    do {                                                                        \
 -    int tem;                                                          \
 -    tem = set_image_of_range (&work_area, start, end, translate);     \
 -    if (tem > 0)                                                      \
 -      FREE_STACK_RETURN (tem);                                                \
 +    EXTEND_RANGE_TABLE ((work_area), 2);                              \
 +    (work_area).table[(work_area).used++] = (range_start);            \
 +    (work_area).table[(work_area).used++] = (range_end);              \
    } while (0)
  
- /* Free allocated memory for WORK_AREA.        */
+ /* Free allocated memory for WORK_AREA.  */
  #define FREE_RANGE_TABLE_WORK_AREA(work_area) \
    do {                                                \
      if ((work_area).table)                    \
@@@ -4445,31 -4389,29 +4445,31 @@@ re_search_2 (bufp, str1, size1, str2, s
                        d++;
                        range--;
                      }
 -#ifdef emacs
 -                  if (multibyte && range > lim)
 +              }
 +            else
 +              {
 +                if (multibyte)
 +                  while (range > lim)
                      {
 -                      /* Check that we are at the beginning of a char.  */
 -                      int at_boundary;
 -                      AT_CHAR_BOUNDARY_P (at_boundary, d, d_start);
 -                      if (at_boundary)
 +                      int buf_charlen;
 +
 +                      buf_ch = STRING_CHAR_AND_LENGTH (d, range - lim,
 +                                                       buf_charlen);
 +                      if (fastmap[CHAR_LEADING_CODE (buf_ch)])
                          break;
 -                      else
 -                        { /* We have matched an internal byte of a char
 -                             rather than the leading byte, so it's a false
 -                             positive: we should keep scanning.  */
 -                          d++; range--;
 -                        }
 +                      range -= buf_charlen;
 +                      d += buf_charlen;
                      }
 -                  else
 -#endif
 -                    break;
 -                } while (1);
 -
 +                else
 +                  while (range > lim && !fastmap[*d])
 +                    {
 +                      d++;
 +                      range--;
 +                    }
 +              }
              startpos += irange - range;
            }
-         else                          /* Searching backwards.  */
+         else                          /* Searching backwards.  */
            {
              int room = (startpos >= size1
                          ? size2 + size1 - startpos
@@@ -4992,26 -4927,8 +4992,26 @@@ re_match_2 (bufp, string1, size1, strin
  }
  WEAK_ALIAS (__re_match_2, re_match_2)
  
 +#ifdef emacs
 +#define TRANSLATE_VIA_MULTIBYTE(c)    \
 +  do {                                        \
 +    if (multibyte)                    \
 +      (c) = TRANSLATE (c);            \
 +    else                              \
 +      {                                       \
 +      MAKE_CHAR_MULTIBYTE (c);        \
 +      (c) = TRANSLATE (c);            \
 +      MAKE_CHAR_UNIBYTE (c);          \
 +      }                                       \
 +  } while (0)
 +
 +#else
 +#define TRANSLATE_VIA_MULTIBYTE(c) ((c) = TRANSLATE (c))
 +#endif
 +
 +
  /* This is a separate function so that we can force an alloca cleanup
-    afterwards.        */
+    afterwards.  */
  static int
  re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
       struct re_pattern_buffer *bufp;
diff --cc src/syntax.c
Simple merge
diff --cc src/w16select.c
Simple merge
diff --cc src/w32fns.c
Simple merge
diff --cc src/w32term.c
Simple merge
diff --cc src/window.c
Simple merge
diff --cc src/xdisp.c
Simple merge
diff --cc src/xfaces.c
Simple merge
diff --cc src/xterm.c
Simple merge