emacs-diffs
[Top][All Lists]
Advanced

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

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


From: Kim F. Storm
Subject: [Emacs-diffs] Changes to emacs/src/keyboard.c
Date: Thu, 21 Mar 2002 16:32:50 -0500

Index: emacs/src/keyboard.c
diff -c emacs/src/keyboard.c:1.663 emacs/src/keyboard.c:1.664
*** emacs/src/keyboard.c:1.663  Sun Mar 10 11:16:38 2002
--- emacs/src/keyboard.c        Thu Mar 21 16:32:50 2002
***************
*** 6510,6523 ****
        }
      else
        {
!       /* No, so use major and minor mode keymaps.
!          Don't include local-map or keymap properties, as menu-bar
!          bindings are not supported in those maps (that would require
!          checking for menu-bar updates after every command).  */
!       nmaps = current_minor_maps (NULL, &tmaps);
!       maps = (Lisp_Object *) alloca ((nmaps + 2) * sizeof (maps[0]));
!       bcopy (tmaps, maps, nmaps * sizeof (maps[0]));
!       maps[nmaps++] = current_buffer->keymap;
        }
      maps[nmaps++] = current_global_map;
    }
--- 6510,6530 ----
        }
      else
        {
!       /* No, so use major and minor mode keymaps and keymap property.
!          Note that menu-bar bindings in the local-map and keymap
!          properties may not work reliable, as they are only
!          recognized when the menu-bar (or mode-line) is updated,
!          which does not normally happen after every command.  */
!       Lisp_Object tem;
!       int nminor;
!       nminor = current_minor_maps (NULL, &tmaps);
!       maps = (Lisp_Object *) alloca ((nminor + 3) * sizeof (maps[0]));
!       nmaps = 0;
!       if (tem = get_local_map (PT, current_buffer, Qkeymap), !NILP (tem))
!         maps[nmaps++] = tem;
!       bcopy (tmaps, (void *) (maps + nmaps), nminor * sizeof (maps[0]));
!       nmaps += nminor;
!       maps[nmaps++] = get_local_map (PT, current_buffer, Qlocal_map);
        }
      maps[nmaps++] = current_global_map;
    }
***************
*** 7158,7171 ****
      }
    else
      {
!       /* No, so use major and minor mode keymaps.
!        Don't include local-map or keymap properties, as tool-bar
!        bindings are not supported in those maps (that would require
!        checking for tool-bar updates after every command).  */
!       nmaps = current_minor_maps (NULL, &tmaps);
!       maps = (Lisp_Object *) alloca ((nmaps + 2) * sizeof (maps[0]));
!       bcopy (tmaps, maps, nmaps * sizeof (maps[0]));
!       maps[nmaps++] = current_buffer->keymap;
      }
  
    /* Add global keymap at the end.  */
--- 7165,7185 ----
      }
    else
      {
!       /* No, so use major and minor mode keymaps and keymap property.
!        Note that tool-bar bindings in the local-map and keymap
!        properties may not work reliable, as they are only
!        recognized when the tool-bar (or mode-line) is updated,
!        which does not normally happen after every command.  */
!       Lisp_Object tem;
!       int nminor;
!       nminor = current_minor_maps (NULL, &tmaps);
!       maps = (Lisp_Object *) alloca ((nminor + 3) * sizeof (maps[0]));
!       nmaps = 0;
!       if (tem = get_local_map (PT, current_buffer, Qkeymap), !NILP (tem))
!       maps[nmaps++] = tem;
!       bcopy (tmaps, (void *) (maps + nmaps), nminor * sizeof (maps[0]));
!       nmaps += nminor;
!       maps[nmaps++] = get_local_map (PT, current_buffer, Qlocal_map);
      }
  
    /* Add global keymap at the end.  */



reply via email to

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