]> code.delx.au - gnu-emacs/commitdiff
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-57
authorMiles Bader <miles@gnu.org>
Mon, 6 Jun 2005 02:39:45 +0000 (02:39 +0000)
committerMiles Bader <miles@gnu.org>
Mon, 6 Jun 2005 02:39:45 +0000 (02:39 +0000)
Merge from emacs--cvs-trunk--0

Patches applied:

 * emacs--cvs-trunk--0  (patch 324-352)

   - Merge from gnus--rel--5.10
   - Update from CVS
   - etc/emacs-buffer.gdb: Remove RCS keywords

 * gnus--rel--5.10  (patch 70-79)

   - Update from CVS
   - Merge from emacs--cvs-trunk--0

37 files changed:
1  2 
etc/NEWS
lisp/ChangeLog
lisp/arc-mode.el
lisp/descr-text.el
lisp/emacs-lisp/bytecomp.el
lisp/emacs-lisp/cl-macs.el
lisp/eshell/esh-mode.el
lisp/faces.el
lisp/font-lock.el
lisp/gnus/gnus-start.el
lisp/gnus/message.el
lisp/gnus/mm-util.el
lisp/gnus/qp.el
lisp/international/swedish.el
lisp/mail/rmail.el
lisp/progmodes/sh-script.el
lisp/simple.el
lisp/subr.el
lisp/term.el
lisp/textmodes/sgml-mode.el
lisp/textmodes/tex-mode.el
src/ChangeLog
src/buffer.c
src/bytecode.c
src/callproc.c
src/ccl.c
src/ccl.h
src/emacs.c
src/fileio.c
src/fns.c
src/keyboard.c
src/macterm.c
src/makefile.w32-in
src/xdisp.c
src/xfaces.c
src/xmenu.c
src/xterm.c

diff --cc etc/NEWS
Simple merge
diff --cc lisp/ChangeLog
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lisp/faces.el
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lisp/gnus/qp.el
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lisp/simple.el
Simple merge
diff --cc lisp/subr.el
Simple merge
diff --cc lisp/term.el
Simple merge
Simple merge
Simple merge
diff --cc src/ChangeLog
Simple merge
diff --cc src/buffer.c
Simple merge
diff --cc src/bytecode.c
Simple merge
diff --cc src/callproc.c
index c410b5a121b1aa9b64dbf93e89cb1fb556396968,fe198b0770acc1e97a1f7fde6785c7e436dd7df7..524f6a6a078abf05efff5ff201a051a3e74b3ab5
@@@ -777,19 -790,39 +778,19 @@@ usage: (call-process PROGRAM &optional 
  
        if (!NILP (buffer))
          {
 -          if (! CODING_MAY_REQUIRE_DECODING (&process_coding))
 +          if (NILP (current_buffer->enable_multibyte_characters)
 +              && ! CODING_MAY_REQUIRE_DECODING (&process_coding))
-             insert_1_both (bufptr, nread, nread, 0, 1, 0);
+             insert_1_both (buf, nread, nread, 0, 1, 0);
            else
              {                 /* We have to decode the input.  */
 -              int size;
 -              char *decoding_buf;
 -
 -            repeat_decoding:
 -              size = decoding_buffer_size (&process_coding, nread);
 -              decoding_buf = (char *) xmalloc (size);
 -
 -              /* We can't use the macro CODING_REQUIRE_DETECTION
 -                 because it always returns nonzero if the coding
 -                 system requires EOL detection.  Here, we have to
 -                 check only whether or not the coding system
 -                 requires text-encoding detection.  */
 -              if (process_coding.type == coding_type_undecided)
 -                {
 -                  detect_coding (&process_coding, buf, nread);
 -                  if (process_coding.composing != COMPOSITION_DISABLED)
 -                    /* We have not yet allocated the composition
 -                       data because the coding type was undecided.  */
 -                    coding_allocate_composition_data (&process_coding, PT);
 -                }
 -              if (process_coding.cmp_data)
 -                process_coding.cmp_data->char_offset = PT;
 -
 -              decode_coding (&process_coding, buf, decoding_buf,
 -                             nread, size);
 +              Lisp_Object buf;
  
 +              XSETBUFFER (buf, current_buffer);
 +              decode_coding_c_string (&process_coding, bufptr, nread,
 +                                      buf);
                if (display_on_the_fly
 -                  && saved_coding.type == coding_type_undecided
 -                  && process_coding.type != coding_type_undecided)
 +                  && CODING_REQUIRE_DETECTION (&saved_coding)
 +                  && ! CODING_REQUIRE_DETECTION (&process_coding))
                  {
                    /* We have detected some coding system.  But,
                       there's a possibility that the detection was
diff --cc src/ccl.c
Simple merge
diff --cc src/ccl.h
index 5f57f1f7711572d72f8a7451dd4d51309bee2f42,1c9c1b3b34eec8fa231924bde78962b93d08de57..6d01beeb6b72d87f6367260a4b4ab30aee8dbe21
+++ b/src/ccl.h
@@@ -91,8 -94,11 +95,11 @@@ extern Lisp_Object Vfont_ccl_encoder_al
     execution of ccl program CCL_PROG (symbol or vector).  */
  extern int setup_ccl_program P_ ((struct ccl_program *, Lisp_Object));
  
 -extern int ccl_driver P_ ((struct ccl_program *, unsigned char *,
 -                         unsigned char *, int, int, int *));
+ /* Check if CCL is updated or not.  If not, re-setup members of CCL.  */
+ extern int check_ccl_update P_ ((struct ccl_program *));
 +extern void ccl_driver P_ ((struct ccl_program *, int *, int *, int, int,
 +                          Lisp_Object));
  
  /* Vector of CCL program names vs corresponding program data.  */
  extern Lisp_Object Vccl_program_table;
diff --cc src/emacs.c
Simple merge
diff --cc src/fileio.c
index 4a22cc0a59e29ba09ce9e2b9f2356272f3aad379,537b7f4d10db6c50f5f3117320cf7d8c5f556740..813c3033d6763496d867abcb715176f31f1bc4e3
@@@ -3748,9 -3743,9 +3748,9 @@@ actually used.  */
    unsigned char buffer[1 << 14];
    int replace_handled = 0;
    int set_coding_system = 0;
 -  int coding_system_decided = 0;
 +  Lisp_Object coding_system;
    int read_quit = 0;
-   int old_Vdeactivate_mark = Vdeactivate_mark;
+   Lisp_Object old_Vdeactivate_mark = Vdeactivate_mark;
    int we_locked_file = 0;
  
    if (current_buffer->base_buffer && ! NILP (visit))
diff --cc src/fns.c
Simple merge
diff --cc src/keyboard.c
Simple merge
diff --cc src/macterm.c
Simple merge
Simple merge
diff --cc src/xdisp.c
Simple merge
diff --cc src/xfaces.c
index edff936b08d4c2e7877826a4352d08e1350e5058,606a854980ad7c6c6146dd9557e167f00ece3bc7..97bdd380deec484f87dee460c999d9499a3ba971
@@@ -5135,10 -5029,20 +5135,10 @@@ If FRAME is omitted or nil, use the sel
       Lisp_Object face1, face2, frame;
  {
    int equal_p;
 -  struct frame *f;
    Lisp_Object lface1, lface2;
  
-   lface1 = lface_from_face_name (NULL, face1, 1);
-   lface2 = lface_from_face_name (NULL, face2, 1);
 -  if (EQ (frame, Qt))
 -    f = NULL;
 -  else
 -    /* Don't use check_x_frame here because this function is called
 -       before X frames exist.  At that time, if FRAME is nil,
 -       selected_frame will be used which is the frame dumped with
 -       Emacs.  That frame is not an X frame.  */
 -    f = frame_or_selected_frame (frame, 2);
 -
+   lface1 = lface_from_face_name (f, face1, 1);
+   lface2 = lface_from_face_name (f, face2, 1);
    equal_p = lface_equal_p (XVECTOR (lface1)->contents,
                           XVECTOR (lface2)->contents);
    return equal_p ? Qt : Qnil;
diff --cc src/xmenu.c
Simple merge
diff --cc src/xterm.c
index 01612d0d0ae85ac85a6dd2f1ff529190517bee22,8612d53fbee45f4e137b7e000a47f385199a987b..be61c15afdda697f0ad49a7a7051ce8c742ef59c
@@@ -906,9 -904,10 +906,10 @@@ x_encode_char (c, char2b, font_info, ch
        /* It's a program.  */
        struct ccl_program *ccl = font_info->font_encoder;
  
+       check_ccl_update (ccl);
        if (CHARSET_DIMENSION (charset) == 1)
        {
 -        ccl->reg[0] = charset;
 +        ccl->reg[0] = CHARSET_ID (charset);
          ccl->reg[1] = char2b->byte2;
          ccl->reg[2] = -1;
        }