From 75c5501b44db3d78af88972788ae77c45c4c9404 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Fri, 16 Apr 2004 19:33:45 +0000 Subject: (try_scrolling): Make sure `scroll-conservatively' is not too large before computing how much to scroll. --- src/ChangeLog | 5 +++++ src/xdisp.c | 6 ++++++ 2 files changed, 11 insertions(+) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index c9cf12dc159..df9484ce3de 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2004-04-16 Juanma Barranquero + + * xdisp.c (try_scrolling): Make sure `scroll-conservatively' is + not too large before computing how much to scroll. + 2004-04-14 Luc Teirlinck * fileio.c (Fverify_visited_file_modtime, Fvisited_file_modtime): diff --git a/src/xdisp.c b/src/xdisp.c index b1633132214..2cd1d548457 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -10879,6 +10879,12 @@ try_scrolling (window, just_this_one_p, scroll_conservatively, else this_scroll_margin = 0; + /* Force scroll_conservatively to have a reasonable value so it doesn't + cause an overflow while computing how much to scroll. */ + if (scroll_conservatively) + scroll_conservatively = min (scroll_conservatively, + MOST_POSITIVE_FIXNUM / FRAME_LINE_HEIGHT (f)); + /* Compute how much we should try to scroll maximally to bring point into view. */ if (scroll_step || scroll_conservatively || temp_scroll_step) -- cgit v1.2.1 From 20dc858387fa45c38052bcbc1ad4b5ec59806be4 Mon Sep 17 00:00:00 2001 From: Kim F. Storm Date: Fri, 16 Apr 2004 20:07:49 +0000 Subject: *** empty log message *** --- src/ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index df9484ce3de..5364408ae30 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2004-04-17 Kim F. Storm + + * image.c (PNG_BG_COLOR_SHIFT): Remove. + (png_load): Fix calculation of transparent background color on X + and W32 platforms. + 2004-04-16 Juanma Barranquero * xdisp.c (try_scrolling): Make sure `scroll-conservatively' is -- cgit v1.2.1 From 1f0268990d7d93acb6615494004bacb3160b0d68 Mon Sep 17 00:00:00 2001 From: Kim F. Storm Date: Fri, 16 Apr 2004 20:08:15 +0000 Subject: (PNG_BG_COLOR_SHIFT): Remove. (png_load): Fix calculation of transparent background color on X and W32 platforms. --- src/image.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/image.c b/src/image.c index 34db5e53367..66b004220d1 100644 --- a/src/image.c +++ b/src/image.c @@ -51,7 +51,6 @@ Boston, MA 02111-1307, USA. */ typedef struct x_bitmap_record Bitmap_Record; #define GET_PIXEL(ximg, x, y) XGetPixel(ximg, x, y) #define NO_PIXMAP None -#define PNG_BG_COLOR_SHIFT 0 #define RGB_PIXEL_COLOR unsigned long @@ -69,7 +68,6 @@ typedef struct x_bitmap_record Bitmap_Record; typedef struct w32_bitmap_record Bitmap_Record; #define GET_PIXEL(ximg, x, y) GetPixel(ximg, x, y) #define NO_PIXMAP 0 -#define PNG_BG_COLOR_SHIFT 0 #define RGB_PIXEL_COLOR COLORREF @@ -104,7 +102,6 @@ typedef struct mac_bitmap_record Bitmap_Record; #define GET_PIXEL(ximg, x, y) XGetPixel(ximg, x, y) #define NO_PIXMAP 0 -#define PNG_BG_COLOR_SHIFT 8 #define RGB_PIXEL_COLOR unsigned long @@ -1172,7 +1169,7 @@ four_corners_best (ximg, width, height) /* Return the `background' field of IMG. If IMG doesn't have one yet, it is guessed heuristically. If non-zero, XIMG is an existing XImage object (or device context with the image selected on W32) to - use for the heuristic. */ + use for the heuristic. */ RGB_PIXEL_COLOR image_background (img, f, ximg) @@ -1205,7 +1202,7 @@ image_background (img, f, ximg) if (free_ximg) Destroy_Image (ximg, prev); - + img->background_valid = 1; } @@ -2990,7 +2987,7 @@ xbm_load_image (f, img, contents, end) non_default_colors = 1; } - Create_Pixmap_From_Bitmap_Data (f, img, data, + Create_Pixmap_From_Bitmap_Data (f, img, data, foreground, background, non_default_colors); xfree (data); @@ -3857,7 +3854,7 @@ lookup_rgb_color (f, r, g, b) /* Assemble the pixel color. */ return pr | pg | pb; } - + for (p = ct_table[i]; p; p = p->next) if (p->r == r && p->g == g && p->b == b) break; @@ -4968,7 +4965,7 @@ pbm_load (f, img) x_destroy_x_image (ximg); /* X and W32 versions did it here, MAC version above. ++kfs - img->width = width; + img->width = width; img->height = height; */ UNGCPRO; @@ -5412,9 +5409,9 @@ png_load (f, img) png_color_16 user_bg; bzero (&user_bg, sizeof user_bg); - user_bg.red = color.red >> PNG_BG_COLOR_SHIFT; - user_bg.green = color.green >> PNG_BG_COLOR_SHIFT; - user_bg.blue = color.blue >> PNG_BG_COLOR_SHIFT; + user_bg.red = color.red >> 8; + user_bg.green = color.green >> 8; + user_bg.blue = color.blue >> 8; fn_png_set_background (png_ptr, &user_bg, PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); @@ -5438,9 +5435,9 @@ png_load (f, img) x_query_color (f, &color); bzero (&frame_background, sizeof frame_background); - frame_background.red = color.red; - frame_background.green = color.green; - frame_background.blue = color.blue; + frame_background.red = color.red >> 8; + frame_background.green = color.green >> 8; + frame_background.blue = color.blue >> 8; #endif /* HAVE_X_WINDOWS */ #ifdef HAVE_NTGUI @@ -5451,9 +5448,9 @@ png_load (f, img) x_query_color (f, &color); #endif bzero (&frame_background, sizeof frame_background); - frame_background.red = 256 * GetRValue (color); - frame_background.green = 256 * GetGValue (color); - frame_background.blue = 256 * GetBValue (color); + frame_background.red = GetRValue (color); + frame_background.green = GetGValue (color); + frame_background.blue = GetBValue (color); #endif /* HAVE_NTGUI */ #ifdef MAC_OS -- cgit v1.2.1 From 409368b902aab23359e740d1dd6851cf09d747eb Mon Sep 17 00:00:00 2001 From: Kim F. Storm Date: Fri, 16 Apr 2004 20:11:47 +0000 Subject: (update_overlay_arrows): Fix handling of up_to_date < 0. --- src/ChangeLog | 2 ++ src/xdisp.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index 5364408ae30..202108a022f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2004-04-17 Kim F. Storm + * xdisp.c (update_overlay_arrows): Fix handling of up_to_date < 0. + * image.c (PNG_BG_COLOR_SHIFT): Remove. (png_load): Fix calculation of transparent background color on X and W32 platforms. diff --git a/src/xdisp.c b/src/xdisp.c index 2cd1d548457..a6065b542b7 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -9428,7 +9428,7 @@ update_overlay_arrows (up_to_date) if (!SYMBOLP (var)) continue; - if (up_to_date) + if (up_to_date > 0) { Lisp_Object val = find_symbol_value (var); Fput (var, Qlast_arrow_position, -- cgit v1.2.1 From 60962ec4c24b192e169dd3e1c116ad537c03a299 Mon Sep 17 00:00:00 2001 From: Kim F. Storm Date: Fri, 16 Apr 2004 21:16:06 +0000 Subject: *** empty log message *** --- src/ChangeLog | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index 202108a022f..d2c53d913f3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,20 @@ 2004-04-17 Kim F. Storm + * keymap.c (Fkey_description): Add optional PREFIX arg. + Combine prefix with KEYS to make up the full key sequence to describe. + Correlate meta_prefix_char and following (simple) key to describe + as meta modifier. All callers changed. + (describe_map): Rename arg `keys' to `prefix'. Remove local + `elt_prefix' var. Use Fkey_description with prefix instead of + elt_prefix combined with Fsingle_key_description. + (describe_vector): Declare static. Replace arg `elt_prefix' with + `prefix'. Add KEYMAP_P arg. Add local var `elt_prefix'; use it + if !KEYMAP_P. Use Fkey_description with prefix instead of + Fsingle_key_description. + + * keymap.h (Fkey_description): Fix prototype. + (describe_vector): Remove prototype. + * xdisp.c (update_overlay_arrows): Fix handling of up_to_date < 0. * image.c (PNG_BG_COLOR_SHIFT): Remove. -- cgit v1.2.1 From f8d8ba4051ddb0dbb4b27347bb3a6776a211f7d2 Mon Sep 17 00:00:00 2001 From: Kim F. Storm Date: Fri, 16 Apr 2004 21:16:33 +0000 Subject: (Fkey_description): Add optional PREFIX arg. Combine prefix with KEYS to make up the full key sequence to describe. Correlate meta_prefix_char and following (simple) key to describe as meta modifier. All callers changed. (describe_map): Rename arg `keys' to `prefix'. Remove local `elt_prefix' var. Use Fkey_description with prefix instead of elt_prefix combined with Fsingle_key_description. (describe_vector): Declare static. Replace arg `elt_prefix' with `prefix'. Add KEYMAP_P arg. Add local var `elt_prefix'; use it if !KEYMAP_P. Use Fkey_description with prefix instead of Fsingle_key_description. --- src/keymap.c | 227 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 133 insertions(+), 94 deletions(-) (limited to 'src') diff --git a/src/keymap.c b/src/keymap.c index b181c3c5074..c9991c1874c 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -121,6 +121,9 @@ static void describe_translation P_ ((Lisp_Object, Lisp_Object)); static void describe_map P_ ((Lisp_Object, Lisp_Object, void (*) P_ ((Lisp_Object, Lisp_Object)), int, Lisp_Object, Lisp_Object*, int)); +static void describe_vector P_ ((Lisp_Object, Lisp_Object, Lisp_Object, + void (*) (Lisp_Object, Lisp_Object), int, + Lisp_Object, Lisp_Object, int *, int, int)); static void silly_event_symbol_error P_ ((Lisp_Object)); /* Keymap object support - constructors and predicates. */ @@ -687,7 +690,7 @@ map_keymap (map, fun, args, data, autoload) tail = XCDR (tail)) { Lisp_Object binding = XCAR (tail); - + if (CONSP (binding)) map_keymap_item (fun, args, XCAR (binding), XCDR (binding), data); else if (VECTORP (binding)) @@ -1160,7 +1163,7 @@ binding KEY to DEF is added at the front of KEYMAP. */) /* We must use Fkey_description rather than just passing key to error; key might be a vector, not a string. */ error ("Key sequence %s uses invalid prefix characters", - SDATA (Fkey_description (key))); + SDATA (Fkey_description (key, Qnil))); } } @@ -1791,9 +1794,9 @@ accessible_keymaps_1 (key, cmd, maps, tail, thisseq, is_metized) int meta_bit = meta_modifier; Lisp_Object last = make_number (XINT (Flength (thisseq)) - 1); tem = Fcopy_sequence (thisseq); - + Faset (tem, last, make_number (XINT (key) | meta_bit)); - + /* This new sequence is the same length as thisseq, so stick it in the list right after this one. */ @@ -1944,78 +1947,109 @@ Lisp_Object Qsingle_key_description, Qkey_description; /* This function cannot GC. */ -DEFUN ("key-description", Fkey_description, Skey_description, 1, 1, 0, +DEFUN ("key-description", Fkey_description, Skey_description, 1, 2, 0, doc: /* Return a pretty description of key-sequence KEYS. +Optional arg PREFIX is the sequence of keys leading up to KEYS. Control characters turn into "C-foo" sequences, meta into "M-foo" spaces are put between sequence elements, etc. */) - (keys) - Lisp_Object keys; + (keys, prefix) + Lisp_Object keys, prefix; { int len = 0; int i, i_byte; - Lisp_Object sep; - Lisp_Object *args = NULL; + Lisp_Object *args; + int size = Flength (keys); + Lisp_Object list; + Lisp_Object sep = build_string (" "); + Lisp_Object key; + int add_meta = 0; + + if (!NILP (prefix)) + size += Flength (prefix); + + /* This has one extra element at the end that we don't pass to Fconcat. */ + args = (Lisp_Object *) alloca (size * 4 * sizeof (Lisp_Object)); + + /* In effect, this computes + (mapconcat 'single-key-description keys " ") + but we shouldn't use mapconcat because it can do GC. */ - if (STRINGP (keys)) + next_list: + if (!NILP (prefix)) + list = prefix, prefix = Qnil; + else if (!NILP (keys)) + list = keys, keys = Qnil; + else { - Lisp_Object vector; - vector = Fmake_vector (Flength (keys), Qnil); - for (i = 0, i_byte = 0; i < SCHARS (keys); ) + if (add_meta) { - int c; - int i_before = i; - - FETCH_STRING_CHAR_ADVANCE (c, keys, i, i_byte); - if (SINGLE_BYTE_CHAR_P (c) && (c & 0200)) - c ^= 0200 | meta_modifier; - XSETFASTINT (AREF (vector, i_before), c); + args[len] = Fsingle_key_description (meta_prefix_char, Qnil); + len += 2; } - keys = vector; + else if (len == 0) + return empty_string; + return Fconcat (len - 1, args); } - if (VECTORP (keys)) - { - /* In effect, this computes - (mapconcat 'single-key-description keys " ") - but we shouldn't use mapconcat because it can do GC. */ + if (STRINGP (list)) + size = SCHARS (list); + else if (VECTORP (list)) + size = XVECTOR (list)->size; + else if (CONSP (list)) + size = Flength (list); + else + wrong_type_argument (Qarrayp, list); - len = XVECTOR (keys)->size; - sep = build_string (" "); - /* This has one extra element at the end that we don't pass to Fconcat. */ - args = (Lisp_Object *) alloca (len * 2 * sizeof (Lisp_Object)); + i = i_byte = 0; - for (i = 0; i < len; i++) + while (i < size) + { + if (STRINGP (list)) { - args[i * 2] = Fsingle_key_description (AREF (keys, i), Qnil); - args[i * 2 + 1] = sep; + int c; + FETCH_STRING_CHAR_ADVANCE (c, list, i, i_byte); + if (SINGLE_BYTE_CHAR_P (c) && (c & 0200)) + c ^= 0200 | meta_modifier; + XSETFASTINT (key, c); + } + else if (VECTORP (list)) + { + key = AREF (list, i++); + } + else + { + key = XCAR (list); + list = XCDR (list); + i++; } - } - else if (CONSP (keys)) - { - /* In effect, this computes - (mapconcat 'single-key-description keys " ") - but we shouldn't use mapconcat because it can do GC. */ - - len = XFASTINT (Flength (keys)); - sep = build_string (" "); - /* This has one extra element at the end that we don't pass to Fconcat. */ - args = (Lisp_Object *) alloca (len * 2 * sizeof (Lisp_Object)); - for (i = 0; i < len; i++) + if (add_meta) + { + if (!INTEGERP (key) + || EQ (key, meta_prefix_char) + || (XINT (key) & meta_modifier)) + { + args[len++] = Fsingle_key_description (meta_prefix_char, Qnil); + args[len++] = sep; + if (EQ (key, meta_prefix_char)) + continue; + } + else + XSETINT (key, (XINT (key) | meta_modifier) & ~0x80); + add_meta = 0; + } + else if (EQ (key, meta_prefix_char)) { - args[i * 2] = Fsingle_key_description (XCAR (keys), Qnil); - args[i * 2 + 1] = sep; - keys = XCDR (keys); + add_meta = 1; + continue; } + args[len++] = Fsingle_key_description (key, Qnil); + args[len++] = sep; } - else - keys = wrong_type_argument (Qarrayp, keys); - - if (len == 0) - return empty_string; - return Fconcat (len * 2 - 1, args); + goto next_list; } + char * push_key_description (c, p, force_multibyte) register unsigned int c; @@ -2937,7 +2971,7 @@ key binding\n\ if (!NILP (prefix)) { insert_string (" Starting With "); - insert1 (Fkey_description (prefix)); + insert1 (Fkey_description (prefix, Qnil)); } insert_string (":\n"); } @@ -3062,7 +3096,7 @@ describe_translation (definition, args) } else if (STRINGP (definition) || VECTORP (definition)) { - insert1 (Fkey_description (definition)); + insert1 (Fkey_description (definition, Qnil)); insert_string ("\n"); } else if (KEYMAPP (definition)) @@ -3072,20 +3106,19 @@ describe_translation (definition, args) } /* Describe the contents of map MAP, assuming that this map itself is - reached by the sequence of prefix keys KEYS (a string or vector). + reached by the sequence of prefix keys PREFIX (a string or vector). PARTIAL, SHADOW, NOMENU are as in `describe_map_tree' above. */ static void -describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu) +describe_map (map, prefix, elt_describer, partial, shadow, seen, nomenu) register Lisp_Object map; - Lisp_Object keys; + Lisp_Object prefix; void (*elt_describer) P_ ((Lisp_Object, Lisp_Object)); int partial; Lisp_Object shadow; Lisp_Object *seen; int nomenu; { - Lisp_Object elt_prefix; Lisp_Object tail, definition, event; Lisp_Object tem; Lisp_Object suppress; @@ -3095,15 +3128,6 @@ describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu) suppress = Qnil; - if (!NILP (keys) && XFASTINT (Flength (keys)) > 0) - { - /* Call Fkey_description first, to avoid GC bug for the other string. */ - tem = Fkey_description (keys); - elt_prefix = concat2 (tem, build_string (" ")); - } - else - elt_prefix = Qnil; - if (partial) suppress = intern ("suppress-keymap"); @@ -3113,7 +3137,7 @@ describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu) kludge = Fmake_vector (make_number (1), Qnil); definition = Qnil; - GCPRO3 (elt_prefix, definition, kludge); + GCPRO3 (prefix, definition, kludge); for (tail = map; CONSP (tail); tail = XCDR (tail)) { @@ -3122,13 +3146,13 @@ describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu) if (VECTORP (XCAR (tail)) || CHAR_TABLE_P (XCAR (tail))) describe_vector (XCAR (tail), - elt_prefix, Qnil, elt_describer, partial, shadow, map, - (int *)0, 0); + prefix, Qnil, elt_describer, partial, shadow, map, + (int *)0, 0, 1); else if (CONSP (XCAR (tail))) { event = XCAR (XCAR (tail)); - /* Ignore bindings whose "keys" are not really valid events. + /* Ignore bindings whose "prefix" are not really valid events. (We get these in the frames and buffers menu.) */ if (!(SYMBOLP (event) || INTEGERP (event))) continue; @@ -3167,11 +3191,8 @@ describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu) first = 0; } - if (!NILP (elt_prefix)) - insert1 (elt_prefix); - /* THIS gets the string to describe the character EVENT. */ - insert1 (Fsingle_key_description (event, Qnil)); + insert1 (Fkey_description (kludge, prefix)); /* Print a description of the definition of this character. elt_describer will take care of spacing out far enough @@ -3184,9 +3205,9 @@ describe_map (map, keys, elt_describer, partial, shadow, seen, nomenu) using an inherited keymap. So skip anything we've already encountered. */ tem = Fassq (tail, *seen); - if (CONSP (tem) && !NILP (Fequal (XCAR (tem), keys))) + if (CONSP (tem) && !NILP (Fequal (XCAR (tem), prefix))) break; - *seen = Fcons (Fcons (tail, keys), *seen); + *seen = Fcons (Fcons (tail, prefix), *seen); } } @@ -3214,7 +3235,7 @@ This is text showing the elements of vector matched against indices. */) specbind (Qstandard_output, Fcurrent_buffer ()); CHECK_VECTOR_OR_CHAR_TABLE (vector); describe_vector (vector, Qnil, describer, describe_vector_princ, 0, - Qnil, Qnil, (int *)0, 0); + Qnil, Qnil, (int *)0, 0, 0); return unbind_to (count, Qnil); } @@ -3249,28 +3270,32 @@ This is text showing the elements of vector matched against indices. */) indices at higher levels in this char-table, and CHAR_TABLE_DEPTH says how many levels down we have gone. + KEYMAP_P is 1 if vector is known to be a keymap, so map ESC to M-. + ARGS is simply passed as the second argument to ELT_DESCRIBER. */ -void -describe_vector (vector, elt_prefix, args, elt_describer, +static void +describe_vector (vector, prefix, args, elt_describer, partial, shadow, entire_map, - indices, char_table_depth) + indices, char_table_depth, keymap_p) register Lisp_Object vector; - Lisp_Object elt_prefix, args; + Lisp_Object prefix, args; void (*elt_describer) P_ ((Lisp_Object, Lisp_Object)); int partial; Lisp_Object shadow; Lisp_Object entire_map; int *indices; int char_table_depth; + int keymap_p; { Lisp_Object definition; Lisp_Object tem2; + Lisp_Object elt_prefix = Qnil; register int i; Lisp_Object suppress; Lisp_Object kludge; int first = 1; - struct gcpro gcpro1, gcpro2, gcpro3; + struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; /* Range of elements to be handled. */ int from, to; /* A flag to tell if a leaf in this level of char-table is not a @@ -3286,11 +3311,23 @@ describe_vector (vector, elt_prefix, args, elt_describer, definition = Qnil; + if (!keymap_p) + { + /* Call Fkey_description first, to avoid GC bug for the other string. */ + if (!NILP (prefix) && XFASTINT (Flength (prefix)) > 0) + { + Lisp_Object tem; + tem = Fkey_description (prefix, Qnil); + elt_prefix = concat2 (tem, build_string (" ")); + } + prefix = Qnil; + } + /* This vector gets used to present single keys to Flookup_key. Since that is done once per vector element, we don't want to cons up a fresh vector every time. */ kludge = Fmake_vector (make_number (1), Qnil); - GCPRO3 (elt_prefix, definition, kludge); + GCPRO4 (elt_prefix, prefix, definition, kludge); if (partial) suppress = intern ("suppress-keymap"); @@ -3383,12 +3420,13 @@ describe_vector (vector, elt_prefix, args, elt_describer, else character = i; + ASET (kludge, 0, make_number (character)); + /* If this binding is shadowed by some other map, ignore it. */ if (!NILP (shadow) && complete_char) { Lisp_Object tem; - ASET (kludge, 0, make_number (character)); tem = shadow_lookup (shadow, kludge, Qt); if (!NILP (tem)) continue; @@ -3400,7 +3438,6 @@ describe_vector (vector, elt_prefix, args, elt_describer, { Lisp_Object tem; - ASET (kludge, 0, make_number (character)); tem = Flookup_key (entire_map, kludge, Qt); if (!EQ (tem, definition)) @@ -3441,7 +3478,7 @@ describe_vector (vector, elt_prefix, args, elt_describer, else if (CHAR_TABLE_P (vector)) { if (complete_char) - insert1 (Fsingle_key_description (make_number (character), Qnil)); + insert1 (Fkey_description (kludge, prefix)); else { /* Print the information for this character set. */ @@ -3457,7 +3494,7 @@ describe_vector (vector, elt_prefix, args, elt_describer, } else { - insert1 (Fsingle_key_description (make_number (character), Qnil)); + insert1 (Fkey_description (kludge, prefix)); } /* If we find a sub char-table within a char-table, @@ -3466,9 +3503,9 @@ describe_vector (vector, elt_prefix, args, elt_describer, if (CHAR_TABLE_P (vector) && SUB_CHAR_TABLE_P (definition)) { insert ("\n", 1); - describe_vector (definition, elt_prefix, args, elt_describer, + describe_vector (definition, prefix, args, elt_describer, partial, shadow, entire_map, - indices, char_table_depth + 1); + indices, char_table_depth + 1, keymap_p); continue; } @@ -3506,6 +3543,8 @@ describe_vector (vector, elt_prefix, args, elt_describer, { insert (" .. ", 4); + ASET (kludge, 0, make_number (i)); + if (!NILP (elt_prefix)) insert1 (elt_prefix); @@ -3513,7 +3552,7 @@ describe_vector (vector, elt_prefix, args, elt_describer, { if (char_table_depth == 0) { - insert1 (Fsingle_key_description (make_number (i), Qnil)); + insert1 (Fkey_description (kludge, prefix)); } else if (complete_char) { @@ -3532,7 +3571,7 @@ describe_vector (vector, elt_prefix, args, elt_describer, } else { - insert1 (Fsingle_key_description (make_number (i), Qnil)); + insert1 (Fkey_description (kludge, prefix)); } } -- cgit v1.2.1 From b378e2c73668ca964ee7d195e2667cf3a1bee853 Mon Sep 17 00:00:00 2001 From: Kim F. Storm Date: Fri, 16 Apr 2004 21:17:02 +0000 Subject: (Fkey_description): Fix prototype. (describe_vector): Remove prototype. --- src/keymap.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src') diff --git a/src/keymap.h b/src/keymap.h index 2a34061593f..214ba605c76 100644 --- a/src/keymap.h +++ b/src/keymap.h @@ -30,15 +30,12 @@ EXFUN (Fdefine_key, 3); EXFUN (Flookup_key, 3); EXFUN (Fcommand_remapping, 1); EXFUN (Fkey_binding, 3); -EXFUN (Fkey_description, 1); +EXFUN (Fkey_description, 2); EXFUN (Fsingle_key_description, 2); EXFUN (Fwhere_is_internal, 5); extern Lisp_Object access_keymap P_ ((Lisp_Object, Lisp_Object, int, int, int)); extern Lisp_Object get_keyelt P_ ((Lisp_Object, int)); extern Lisp_Object get_keymap P_ ((Lisp_Object, int, int)); -extern void describe_vector P_ ((Lisp_Object, Lisp_Object, Lisp_Object, - void (*) (Lisp_Object, Lisp_Object), int, - Lisp_Object, Lisp_Object, int *, int)); extern void describe_map_tree P_ ((Lisp_Object, int, Lisp_Object, Lisp_Object, char *, int, int, int)); extern int current_minor_maps P_ ((Lisp_Object **, Lisp_Object **)); -- cgit v1.2.1 From a1bfe073ea1774b5f14b77b37a08ebb7e1f23c90 Mon Sep 17 00:00:00 2001 From: Kim F. Storm Date: Fri, 16 Apr 2004 21:19:16 +0000 Subject: (Fkey_description): Change callers. --- src/callint.c | 4 ++-- src/doc.c | 2 +- src/keyboard.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/callint.c b/src/callint.c index 50090db8b28..a3e4984fd16 100644 --- a/src/callint.c +++ b/src/callint.c @@ -612,7 +612,7 @@ supply if the command inquires which events were used to invoke it. */) Qnil, Qnil, Qnil, Qnil); unbind_to (speccount1, Qnil); teml = args[i]; - visargs[i] = Fkey_description (teml); + visargs[i] = Fkey_description (teml, Qnil); /* If the key sequence ends with a down-event, discard the following up-event. */ @@ -639,7 +639,7 @@ supply if the command inquires which events were used to invoke it. */) args[i] = Fread_key_sequence (build_string (callint_message), Qnil, Qt, Qnil, Qnil); teml = args[i]; - visargs[i] = Fkey_description (teml); + visargs[i] = Fkey_description (teml, Qnil); unbind_to (speccount1, Qnil); /* If the key sequence ends with a down-event, diff --git a/src/doc.c b/src/doc.c index d4d749ab585..a0b840637e0 100644 --- a/src/doc.c +++ b/src/doc.c @@ -808,7 +808,7 @@ thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ int } else { /* function is on a key */ - tem = Fkey_description (tem); + tem = Fkey_description (tem, Qnil); goto subst_string; } } diff --git a/src/keyboard.c b/src/keyboard.c index 3e58a2a75a8..c158ea2fced 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -7407,7 +7407,7 @@ parse_menu_item (item, notreal, inmenubar) newcache = chkcache; if (chkcache) { - tem = Fkey_description (tem); + tem = Fkey_description (tem, Qnil); if (CONSP (prefix)) { if (STRINGP (XCAR (prefix))) @@ -9806,7 +9806,7 @@ DEFUN ("execute-extended-command", Fexecute_extended_command, Sexecute_extended_ int count = SPECPDL_INDEX (); record_unwind_protect (pop_message_unwind, Qnil); - binding = Fkey_description (bindings); + binding = Fkey_description (bindings, Qnil); newmessage = (char *) alloca (SCHARS (SYMBOL_NAME (function)) -- cgit v1.2.1 From da879ae8709e8521849feb05e7c45bbd760d4a19 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 16 Apr 2004 23:56:04 +0000 Subject: *** empty log message *** --- src/ChangeLog | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index d2c53d913f3..ae4aa212bda 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -26,6 +26,10 @@ * xdisp.c (try_scrolling): Make sure `scroll-conservatively' is not too large before computing how much to scroll. +2004-04-15 Stefan Monnier + + * dired.c (Ffile_attributes): Don't pass extra nil arg to file-handler. + 2004-04-14 Luc Teirlinck * fileio.c (Fverify_visited_file_modtime, Fvisited_file_modtime): @@ -58,6 +62,11 @@ centering_position = 0. Clear desired matrix before retrying with centering_position = 0. +2004-04-13 Stefan Monnier + + * syntax.c (scan_lists): Simplify backward string scan. + Fix off-by-one boundary check for string and comment fences. + 2004-04-13 Joe Buehler * sheap.c, unexcw.c: New files. -- cgit v1.2.1 From 5a72efd483ec5223a4e7773d801fad6c637bafe1 Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Sat, 17 Apr 2004 02:04:27 +0000 Subject: (Fbuffer_base_buffer): Doc fix. --- src/ChangeLog | 4 ++++ src/buffer.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index ae4aa212bda..702f3be6046 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2004-04-16 Luc Teirlinck + + * buffer.c (Fbuffer_base_buffer): Doc fix. + 2004-04-17 Kim F. Storm * keymap.c (Fkey_description): Add optional PREFIX arg. diff --git a/src/buffer.c b/src/buffer.c index ca74dda73bf..6e67f07cf38 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -832,7 +832,8 @@ No argument or nil as argument means use the current buffer. */) DEFUN ("buffer-base-buffer", Fbuffer_base_buffer, Sbuffer_base_buffer, 0, 1, 0, doc: /* Return the base buffer of indirect buffer BUFFER. -If BUFFER is not indirect, return nil. */) +If BUFFER is not indirect, return nil. +BUFFER defaults to the current buffer. */) (buffer) register Lisp_Object buffer; { -- cgit v1.2.1