diff options
-rw-r--r-- | lisp/ChangeLog | 10 | ||||
-rw-r--r-- | lisp/hi-lock.el | 4 | ||||
-rw-r--r-- | lisp/xt-mouse.el | 13 | ||||
-rw-r--r-- | src/ChangeLog | 12 | ||||
-rw-r--r-- | src/fontset.c | 8 | ||||
-rw-r--r-- | src/unexmacosx.c | 37 |
6 files changed, 78 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8b2fc034e2c..430fbbe13cf 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2011-08-09 Chong Yidong <cyd@stupidchicken.com> + + * hi-lock.el (hi-lock-unface-buffer): Fix interactive spec + (Bug#7554). + +2011-08-09 Andreas Schwab <schwab@linux-m68k.org> + + * xt-mouse.el (xterm-mouse-event-read): Try to recover the raw + character. (Bug#6594) + 2011-08-08 Chong Yidong <cyd@stupidchicken.com> * image-dired.el: Don't use find-file for temporary work (Bug#7895). diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index a0b5844582b..a254abe33ac 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -461,7 +461,9 @@ interactive functions. \(See `hi-lock-interactive-patterns'.\) \\<minibuffer-local-must-match-map>Use \\[minibuffer-complete] to complete a partially typed regexp. \(See info node `Minibuffer History'.\)" (interactive - (if (and (display-popup-menus-p) (not last-nonmenu-event)) + (if (and (display-popup-menus-p) + (listp last-nonmenu-event) + use-dialog-box) (catch 'snafu (or (x-popup-menu diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el index 403aa5d158b..eca5f813ca2 100644 --- a/lisp/xt-mouse.el +++ b/lisp/xt-mouse.el @@ -120,10 +120,17 @@ ;; read xterm sequences above ascii 127 (#x7f) (defun xterm-mouse-event-read () + ;; We get the characters decoded by the keyboard coding system. Try + ;; to recover the raw character. (let ((c (read-char))) - (if (> c #x3FFF80) - (+ 128 (- c #x3FFF80)) - c))) + (cond ;; If meta-flag is t we get a meta character + ((>= c ?\M-\^@) + (- c (- ?\M-\^@ 128))) + ;; Reencode the character in the keyboard coding system, if + ;; this is a non-ASCII character. + ((>= c #x80) + (aref (encode-coding-string (string c) (keyboard-coding-system)) 0)) + (t c)))) (defun xterm-mouse-truncate-wrap (f) "Truncate with wrap-around." diff --git a/src/ChangeLog b/src/ChangeLog index 57cc2ea41f0..f097cbcc379 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,15 @@ +2011-08-09 Andreas Schwab <schwab@linux-m68k.org> + + * fontset.c (fontset_get_font_group): Add proper type checks. + (Bug#9172) + +2011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS + and LC_VERSION_MIN_MACOSX. + (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function. + (dump_it) [LC_FUNCTION_STARTS]: Use it. + 2011-08-08 Eli Zaretskii <eliz@gnu.org> * xdisp.c (forward_to_next_line_start): Allow to use the diff --git a/src/fontset.c b/src/fontset.c index 74eb61d2665..c8ae1e74848 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -447,7 +447,7 @@ reorder_font_vector (Lisp_Object font_group, struct font *font) /* Return a font-group (actually a cons (-1 . FONT-GROUP-VECTOR)) for character C in FONTSET. If C is -1, return a fallback font-group. If C is not -1, the value may be Qt (FONTSET doesn't have a font - for C even in the fallback group, or 0 (a font for C may be found + for C even in the fallback group), or 0 (a font for C may be found only in the fallback group). */ static Lisp_Object @@ -465,7 +465,9 @@ fontset_get_font_group (Lisp_Object fontset, int c) if (! NILP (font_group)) return font_group; base_fontset = FONTSET_BASE (fontset); - if (c >= 0) + if (NILP (base_fontset)) + font_group = Qnil; + else if (c >= 0) font_group = char_table_ref_and_range (base_fontset, c, &from, &to); else font_group = FONTSET_FALLBACK (base_fontset); @@ -476,6 +478,8 @@ fontset_get_font_group (Lisp_Object fontset, int c) char_table_set_range (fontset, from, to, font_group); return font_group; } + if (!VECTORP (font_group)) + return font_group; font_group = Fcopy_sequence (font_group); for (i = 0; i < ASIZE (font_group); i++) if (! NILP (AREF (font_group, i))) diff --git a/src/unexmacosx.c b/src/unexmacosx.c index 04e3edf463e..0751eeacb9b 100644 --- a/src/unexmacosx.c +++ b/src/unexmacosx.c @@ -599,6 +599,16 @@ print_load_command_name (int lc) printf ("LC_DYLD_INFO_ONLY"); break; #endif +#ifdef LC_VERSION_MIN_MACOSX + case LC_VERSION_MIN_MACOSX: + printf ("LC_VERSION_MIN_MACOSX"); + break; +#endif +#ifdef LC_FUNCTION_STARTS + case LC_FUNCTION_STARTS: + printf ("LC_FUNCTION_STARTS"); + break; +#endif default: printf ("unknown "); } @@ -1135,6 +1145,28 @@ copy_dyld_info (struct load_command *lc, long delta) } #endif +#ifdef LC_FUNCTION_STARTS +/* Copy a LC_FUNCTION_STARTS load command from the input file to the + output file, adjusting the data offset field. */ +static void +copy_linkedit_data (struct load_command *lc, long delta) +{ + struct linkedit_data_command *ldp = (struct linkedit_data_command *) lc; + + if (ldp->dataoff > 0) + ldp->dataoff += delta; + + printf ("Writing "); + print_load_command_name (lc->cmd); + printf (" command\n"); + + if (!unexec_write (curr_header_offset, lc, lc->cmdsize)) + unexec_error ("cannot write linkedit data command to header"); + + curr_header_offset += lc->cmdsize; +} +#endif + /* Copy other kinds of load commands from the input file to the output file, ones that do not require adjustments of file offsets. */ static void @@ -1207,6 +1239,11 @@ dump_it (void) copy_dyld_info (lca[i], linkedit_delta); break; #endif +#ifdef LC_FUNCTION_STARTS + case LC_FUNCTION_STARTS: + copy_linkedit_data (lca[i], linkedit_delta); + break; +#endif default: copy_other (lca[i]); break; |