comparison src/keymap.c @ 3632:72cfde0cd8cd

(Fdescribe_vector): Use current buf, not standard-output. (describe_vector_princ): Add newline at end. (store_in_keymap, access_keymap): Use CHAR_META when clearing excess high bits.
author Richard M. Stallman <rms@gnu.org>
date Fri, 11 Jun 1993 04:16:13 +0000
parents f183be0dc237
children cfa45731460e
comparison
equal deleted inserted replaced
3631:0c063224b5d2 3632:72cfde0cd8cd
273 if (XTYPE (idx) == Lisp_Symbol) 273 if (XTYPE (idx) == Lisp_Symbol)
274 idx = reorder_modifiers (idx); 274 idx = reorder_modifiers (idx);
275 else if (INTEGERP (idx)) 275 else if (INTEGERP (idx))
276 /* Clobber the high bits that can be present on a machine 276 /* Clobber the high bits that can be present on a machine
277 with more than 24 bits of integer. */ 277 with more than 24 bits of integer. */
278 XFASTINT (idx) = XINT (idx) & ((1 << 24) - 1); 278 XFASTINT (idx) = XINT (idx) & (CHAR_META | (CHAR_META - 1));
279 279
280 { 280 {
281 Lisp_Object tail; 281 Lisp_Object tail;
282 Lisp_Object t_binding = Qnil; 282 Lisp_Object t_binding = Qnil;
283 283
373 if (XTYPE (idx) == Lisp_Symbol) 373 if (XTYPE (idx) == Lisp_Symbol)
374 idx = reorder_modifiers (idx); 374 idx = reorder_modifiers (idx);
375 else if (INTEGERP (idx)) 375 else if (INTEGERP (idx))
376 /* Clobber the high bits that can be present on a machine 376 /* Clobber the high bits that can be present on a machine
377 with more than 24 bits of integer. */ 377 with more than 24 bits of integer. */
378 XFASTINT (idx) = XINT (idx) & ((1 << 24) - 1); 378 XFASTINT (idx) = XINT (idx) & (CHAR_META | (CHAR_META - 1));
379 379
380 /* Scan the keymap for a binding of idx. */ 380 /* Scan the keymap for a binding of idx. */
381 { 381 {
382 Lisp_Object tail; 382 Lisp_Object tail;
383 383
1859 static int 1859 static int
1860 describe_vector_princ (elt) 1860 describe_vector_princ (elt)
1861 Lisp_Object elt; 1861 Lisp_Object elt;
1862 { 1862 {
1863 Fprinc (elt, Qnil); 1863 Fprinc (elt, Qnil);
1864 Fterpri (Qnil);
1864 } 1865 }
1865 1866
1866 DEFUN ("describe-vector", Fdescribe_vector, Sdescribe_vector, 1, 1, 0, 1867 DEFUN ("describe-vector", Fdescribe_vector, Sdescribe_vector, 1, 1, 0,
1867 "Print on `standard-output' a description of contents of VECTOR.\n\ 1868 "Insert a description of contents of VECTOR.\n\
1868 This is text showing the elements of vector matched against indices.") 1869 This is text showing the elements of vector matched against indices.")
1869 (vector) 1870 (vector)
1870 Lisp_Object vector; 1871 Lisp_Object vector;
1871 { 1872 {
1873 int count = specpdl_ptr - specpdl;
1874
1875 specbind (Qstandard_output, Fcurrent_buffer ());
1872 CHECK_VECTOR (vector, 0); 1876 CHECK_VECTOR (vector, 0);
1873 describe_vector (vector, Qnil, describe_vector_princ, 0, Qnil); 1877 describe_vector (vector, Qnil, describe_vector_princ, 0, Qnil);
1878
1879 return unbind_to (count, Qnil);
1874 } 1880 }
1875 1881
1876 describe_vector (vector, elt_prefix, elt_describer, partial, shadow) 1882 describe_vector (vector, elt_prefix, elt_describer, partial, shadow)
1877 register Lisp_Object vector; 1883 register Lisp_Object vector;
1878 Lisp_Object elt_prefix; 1884 Lisp_Object elt_prefix;