aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChong Yidong2011-08-09 18:13:11 -0400
committerChong Yidong2011-08-09 18:13:11 -0400
commit7be1c708c5abc7dea388d45454bd19bff07b7943 (patch)
tree4d86b007b24388f25e83515bd86c42d14de9b77a /src
parentebb552ed380b9f04e0c6b29374b3d32435837951 (diff)
parent8d96c9a4e700ad17921f8d2c90f4244bfa4b98b1 (diff)
downloademacs-7be1c708c5abc7dea388d45454bd19bff07b7943.tar.gz
emacs-7be1c708c5abc7dea388d45454bd19bff07b7943.zip
Merge from emacs-23 branch
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog12
-rw-r--r--src/fontset.c8
-rw-r--r--src/unexmacosx.c37
3 files changed, 55 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4d493eab7b1..af9586037d7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,15 @@
12011-08-09 Andreas Schwab <schwab@linux-m68k.org>
2
3 * fontset.c (fontset_get_font_group): Add proper type checks.
4 (Bug#9172)
5
62011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7
8 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
9 and LC_VERSION_MIN_MACOSX.
10 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
11 (dump_it) [LC_FUNCTION_STARTS]: Use it.
12
12011-08-08 Eli Zaretskii <eliz@gnu.org> 132011-08-08 Eli Zaretskii <eliz@gnu.org>
2 14
3 * xdisp.c (forward_to_next_line_start): Allow to use the 15 * 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)
447/* Return a font-group (actually a cons (-1 . FONT-GROUP-VECTOR)) for 447/* Return a font-group (actually a cons (-1 . FONT-GROUP-VECTOR)) for
448 character C in FONTSET. If C is -1, return a fallback font-group. 448 character C in FONTSET. If C is -1, return a fallback font-group.
449 If C is not -1, the value may be Qt (FONTSET doesn't have a font 449 If C is not -1, the value may be Qt (FONTSET doesn't have a font
450 for C even in the fallback group, or 0 (a font for C may be found 450 for C even in the fallback group), or 0 (a font for C may be found
451 only in the fallback group). */ 451 only in the fallback group). */
452 452
453static Lisp_Object 453static Lisp_Object
@@ -465,7 +465,9 @@ fontset_get_font_group (Lisp_Object fontset, int c)
465 if (! NILP (font_group)) 465 if (! NILP (font_group))
466 return font_group; 466 return font_group;
467 base_fontset = FONTSET_BASE (fontset); 467 base_fontset = FONTSET_BASE (fontset);
468 if (c >= 0) 468 if (NILP (base_fontset))
469 font_group = Qnil;
470 else if (c >= 0)
469 font_group = char_table_ref_and_range (base_fontset, c, &from, &to); 471 font_group = char_table_ref_and_range (base_fontset, c, &from, &to);
470 else 472 else
471 font_group = FONTSET_FALLBACK (base_fontset); 473 font_group = FONTSET_FALLBACK (base_fontset);
@@ -476,6 +478,8 @@ fontset_get_font_group (Lisp_Object fontset, int c)
476 char_table_set_range (fontset, from, to, font_group); 478 char_table_set_range (fontset, from, to, font_group);
477 return font_group; 479 return font_group;
478 } 480 }
481 if (!VECTORP (font_group))
482 return font_group;
479 font_group = Fcopy_sequence (font_group); 483 font_group = Fcopy_sequence (font_group);
480 for (i = 0; i < ASIZE (font_group); i++) 484 for (i = 0; i < ASIZE (font_group); i++)
481 if (! NILP (AREF (font_group, i))) 485 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)
599 printf ("LC_DYLD_INFO_ONLY"); 599 printf ("LC_DYLD_INFO_ONLY");
600 break; 600 break;
601#endif 601#endif
602#ifdef LC_VERSION_MIN_MACOSX
603 case LC_VERSION_MIN_MACOSX:
604 printf ("LC_VERSION_MIN_MACOSX");
605 break;
606#endif
607#ifdef LC_FUNCTION_STARTS
608 case LC_FUNCTION_STARTS:
609 printf ("LC_FUNCTION_STARTS");
610 break;
611#endif
602 default: 612 default:
603 printf ("unknown "); 613 printf ("unknown ");
604 } 614 }
@@ -1135,6 +1145,28 @@ copy_dyld_info (struct load_command *lc, long delta)
1135} 1145}
1136#endif 1146#endif
1137 1147
1148#ifdef LC_FUNCTION_STARTS
1149/* Copy a LC_FUNCTION_STARTS load command from the input file to the
1150 output file, adjusting the data offset field. */
1151static void
1152copy_linkedit_data (struct load_command *lc, long delta)
1153{
1154 struct linkedit_data_command *ldp = (struct linkedit_data_command *) lc;
1155
1156 if (ldp->dataoff > 0)
1157 ldp->dataoff += delta;
1158
1159 printf ("Writing ");
1160 print_load_command_name (lc->cmd);
1161 printf (" command\n");
1162
1163 if (!unexec_write (curr_header_offset, lc, lc->cmdsize))
1164 unexec_error ("cannot write linkedit data command to header");
1165
1166 curr_header_offset += lc->cmdsize;
1167}
1168#endif
1169
1138/* Copy other kinds of load commands from the input file to the output 1170/* Copy other kinds of load commands from the input file to the output
1139 file, ones that do not require adjustments of file offsets. */ 1171 file, ones that do not require adjustments of file offsets. */
1140static void 1172static void
@@ -1207,6 +1239,11 @@ dump_it (void)
1207 copy_dyld_info (lca[i], linkedit_delta); 1239 copy_dyld_info (lca[i], linkedit_delta);
1208 break; 1240 break;
1209#endif 1241#endif
1242#ifdef LC_FUNCTION_STARTS
1243 case LC_FUNCTION_STARTS:
1244 copy_linkedit_data (lca[i], linkedit_delta);
1245 break;
1246#endif
1210 default: 1247 default:
1211 copy_other (lca[i]); 1248 copy_other (lca[i]);
1212 break; 1249 break;