summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2011-08-09 18:13:57 -0400
committerChong Yidong <cyd@stupidchicken.com>2011-08-09 18:13:57 -0400
commit5fb2246ca81d1132d70b02e503e2297b471d64c0 (patch)
tree568a27155c760ffaf7145c0d5573c225211a8f8e
parent3f3944ac00abb4fd2bb7bff1eb268e5860f85062 (diff)
parent1b3d531f9c51e73589fdcc92b19468efd712ee66 (diff)
downloademacs-5fb2246ca81d1132d70b02e503e2297b471d64c0.tar.gz
Merge from emacs-23 branch
-rw-r--r--lisp/ChangeLog10
-rw-r--r--lisp/hi-lock.el4
-rw-r--r--lisp/xt-mouse.el13
-rw-r--r--src/ChangeLog12
-rw-r--r--src/fontset.c8
-rw-r--r--src/unexmacosx.c37
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;