emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/doc.c


From: Kim F . Storm
Subject: [Emacs-diffs] Changes to emacs/src/doc.c
Date: Fri, 09 Sep 2005 07:55:09 -0400

Index: emacs/src/doc.c
diff -c emacs/src/doc.c:1.114 emacs/src/doc.c:1.115
*** emacs/src/doc.c:1.114       Sun Aug  7 12:33:16 2005
--- emacs/src/doc.c     Fri Sep  9 11:55:09 2005
***************
*** 57,62 ****
--- 57,64 ----
  
  extern Lisp_Object Voverriding_local_map;
  
+ extern Lisp_Object Qremap;
+ 
  /* For VMS versions with limited file name syntax,
     convert the name to something VMS will allow.  */
  static void
***************
*** 812,817 ****
--- 814,820 ----
        else if (strp[0] == '\\' && strp[1] == '[')
        {
          int start_idx;
+         int follow_remap = 1;
  
          changed = 1;
          strp += 2;            /* skip \[ */
***************
*** 830,839 ****
--- 833,852 ----
          idx = strp - SDATA (string);
          name = Fintern (make_string (start, length_byte), Qnil);
  
+       do_remap:
          /* Ignore remappings unless there are no ordinary bindings. */
          tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qt);
          if (NILP (tem))
            tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qnil);
+ 
+         if (VECTORP (tem) && XVECTOR (tem)->size > 1
+             && EQ (AREF (tem, 0), Qremap) && SYMBOLP (AREF (tem, 1))
+             && follow_remap)
+           {
+             name = AREF (tem, 1);
+             follow_remap = 0;
+             goto do_remap;
+           }
  
          /* Note the Fwhere_is_internal can GC, so we have to take
             relocation of string contents into account.  */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]