diff options
| author | Eli Zaretskii | 2011-06-18 16:28:53 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2011-06-18 16:28:53 +0300 |
| commit | cc7245e4b5d277bff1cb5cf9af249955ff1f8e10 (patch) | |
| tree | 42f57439012331b350fc9ccf657c9442978a5df2 /src | |
| parent | 1ace72676cb6749c45c5dd6462457fc2cea2988c (diff) | |
| download | emacs-cc7245e4b5d277bff1cb5cf9af249955ff1f8e10.tar.gz emacs-cc7245e4b5d277bff1cb5cf9af249955ff1f8e10.zip | |
Tried and abandoned idea of displaying mode line and tool/menu-bars R2L.
Added those features to etc/TODO wishlist.
Fixed src/.gdbinit for changes in Lisp vector structures.
src/.gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
(xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
and vector-like objects.
Diffstat (limited to 'src')
| -rw-r--r-- | src/.gdbinit | 16 | ||||
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/xdisp.c | 8 |
3 files changed, 17 insertions, 11 deletions
diff --git a/src/.gdbinit b/src/.gdbinit index 2cf5663df91..0f51a00ea76 100644 --- a/src/.gdbinit +++ b/src/.gdbinit | |||
| @@ -677,7 +677,7 @@ end | |||
| 677 | 677 | ||
| 678 | define xvectype | 678 | define xvectype |
| 679 | xgetptr $ | 679 | xgetptr $ |
| 680 | set $size = ((struct Lisp_Vector *) $ptr)->size | 680 | set $size = ((struct Lisp_Vector *) $ptr)->header.size |
| 681 | output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~gdb_array_mark_flag | 681 | output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~gdb_array_mark_flag |
| 682 | echo \n | 682 | echo \n |
| 683 | end | 683 | end |
| @@ -818,7 +818,7 @@ end | |||
| 818 | define xvector | 818 | define xvector |
| 819 | xgetptr $ | 819 | xgetptr $ |
| 820 | print (struct Lisp_Vector *) $ptr | 820 | print (struct Lisp_Vector *) $ptr |
| 821 | output ($->size > 50) ? 0 : ($->contents[0])@($->size & ~gdb_array_mark_flag) | 821 | output ($->header.size > 50) ? 0 : ($->contents[0])@($->header.size & ~gdb_array_mark_flag) |
| 822 | echo \n | 822 | echo \n |
| 823 | end | 823 | end |
| 824 | document xvector | 824 | document xvector |
| @@ -853,7 +853,7 @@ end | |||
| 853 | define xcompiled | 853 | define xcompiled |
| 854 | xgetptr $ | 854 | xgetptr $ |
| 855 | print (struct Lisp_Vector *) $ptr | 855 | print (struct Lisp_Vector *) $ptr |
| 856 | output ($->contents[0])@($->size & 0xff) | 856 | output ($->contents[0])@($->header.size & 0xff) |
| 857 | end | 857 | end |
| 858 | document xcompiled | 858 | document xcompiled |
| 859 | Print $ as a compiled function pointer. | 859 | Print $ as a compiled function pointer. |
| @@ -903,7 +903,7 @@ define xchartable | |||
| 903 | print (struct Lisp_Char_Table *) $ptr | 903 | print (struct Lisp_Char_Table *) $ptr |
| 904 | printf "Purpose: " | 904 | printf "Purpose: " |
| 905 | xprintsym $->purpose | 905 | xprintsym $->purpose |
| 906 | printf " %d extra slots", ($->size & 0x1ff) - 68 | 906 | printf " %d extra slots", ($->header.size & 0x1ff) - 68 |
| 907 | echo \n | 907 | echo \n |
| 908 | end | 908 | end |
| 909 | document xchartable | 909 | document xchartable |
| @@ -927,7 +927,7 @@ end | |||
| 927 | define xboolvector | 927 | define xboolvector |
| 928 | xgetptr $ | 928 | xgetptr $ |
| 929 | print (struct Lisp_Bool_Vector *) $ptr | 929 | print (struct Lisp_Bool_Vector *) $ptr |
| 930 | output ($->size > 256) ? 0 : ($->data[0])@((($->size & ~gdb_array_mark_flag) + 7)/ 8) | 930 | output ($->header.size > 256) ? 0 : ($->data[0])@((($->header.size & ~gdb_array_mark_flag) + 7)/ 8) |
| 931 | echo \n | 931 | echo \n |
| 932 | end | 932 | end |
| 933 | document xboolvector | 933 | document xboolvector |
| @@ -1093,7 +1093,7 @@ define xpr | |||
| 1093 | # end | 1093 | # end |
| 1094 | end | 1094 | end |
| 1095 | if $type == Lisp_Vectorlike | 1095 | if $type == Lisp_Vectorlike |
| 1096 | set $size = ((struct Lisp_Vector *) $ptr)->size | 1096 | set $size = ((struct Lisp_Vector *) $ptr)->header.size |
| 1097 | if ($size & PVEC_FLAG) | 1097 | if ($size & PVEC_FLAG) |
| 1098 | set $vec = (enum pvec_type) ($size & PVEC_TYPE_MASK) | 1098 | set $vec = (enum pvec_type) ($size & PVEC_TYPE_MASK) |
| 1099 | if $vec == PVEC_NORMAL_VECTOR | 1099 | if $vec == PVEC_NORMAL_VECTOR |
| @@ -1202,7 +1202,7 @@ end | |||
| 1202 | 1202 | ||
| 1203 | define xfont | 1203 | define xfont |
| 1204 | xgetptr $ | 1204 | xgetptr $ |
| 1205 | set $size = (((struct Lisp_Vector *) $ptr)->size & 0x1FF) | 1205 | set $size = (((struct Lisp_Vector *) $ptr)->header.size & 0x1FF) |
| 1206 | if $size == FONT_SPEC_MAX | 1206 | if $size == FONT_SPEC_MAX |
| 1207 | print (struct font_spec *) $ptr | 1207 | print (struct font_spec *) $ptr |
| 1208 | else | 1208 | else |
| @@ -1229,7 +1229,7 @@ define xbacktrace | |||
| 1229 | printf "0x%x ", $ptr | 1229 | printf "0x%x ", $ptr |
| 1230 | if $type == Lisp_Vectorlike | 1230 | if $type == Lisp_Vectorlike |
| 1231 | xgetptr (*$bt->function) | 1231 | xgetptr (*$bt->function) |
| 1232 | set $size = ((struct Lisp_Vector *) $ptr)->size | 1232 | set $size = ((struct Lisp_Vector *) $ptr)->header.size |
| 1233 | output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~gdb_array_mark_flag | 1233 | output ($size & PVEC_FLAG) ? (enum pvec_type) ($size & PVEC_TYPE_MASK) : $size & ~gdb_array_mark_flag |
| 1234 | else | 1234 | else |
| 1235 | printf "Lisp type %d", $type | 1235 | printf "Lisp type %d", $type |
diff --git a/src/ChangeLog b/src/ChangeLog index ba829af4026..b560528a1d6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,9 @@ | |||
| 1 | 2011-06-18 Eli Zaretskii <eliz@gnu.org> | 1 | 2011-06-18 Eli Zaretskii <eliz@gnu.org> |
| 2 | 2 | ||
| 3 | * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector) | ||
| 4 | (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors | ||
| 5 | and vector-like objects. | ||
| 6 | |||
| 3 | * xdisp.c (face_before_or_after_it_pos): Support bidi iteration. | 7 | * xdisp.c (face_before_or_after_it_pos): Support bidi iteration. |
| 4 | (next_element_from_c_string): Handle the case of the first string | 8 | (next_element_from_c_string): Handle the case of the first string |
| 5 | character that is not the first one in the visual order. | 9 | character that is not the first one in the visual order. |
diff --git a/src/xdisp.c b/src/xdisp.c index ea55cdcc3d2..7aafab4f32c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -18833,7 +18833,11 @@ display_mode_line (struct window *w, enum face_id face_id, Lisp_Object format) | |||
| 18833 | /* Force the mode-line to be displayed in the default face. */ | 18833 | /* Force the mode-line to be displayed in the default face. */ |
| 18834 | it.base_face_id = it.face_id = DEFAULT_FACE_ID; | 18834 | it.base_face_id = it.face_id = DEFAULT_FACE_ID; |
| 18835 | 18835 | ||
| 18836 | /* FIXME: This should take its value from a user option. */ | 18836 | /* FIXME: This should be controlled by a user option. But |
| 18837 | supporting such an option is not trivial, since the mode line is | ||
| 18838 | made up of many separate strings, most of which are normally | ||
| 18839 | unibyte, and unibyte strings currently don't get reordered for | ||
| 18840 | display. */ | ||
| 18837 | it.paragraph_embedding = L2R; | 18841 | it.paragraph_embedding = L2R; |
| 18838 | 18842 | ||
| 18839 | record_unwind_protect (unwind_format_mode_line, | 18843 | record_unwind_protect (unwind_format_mode_line, |
| @@ -18941,8 +18945,6 @@ display_mode_element (struct it *it, int depth, int field_width, int precision, | |||
| 18941 | int n = 0, field, prec; | 18945 | int n = 0, field, prec; |
| 18942 | int literal = 0; | 18946 | int literal = 0; |
| 18943 | 18947 | ||
| 18944 | it->paragraph_embedding = L2R; | ||
| 18945 | |||
| 18946 | tail_recurse: | 18948 | tail_recurse: |
| 18947 | if (depth > 100) | 18949 | if (depth > 100) |
| 18948 | elt = build_string ("*too-deep*"); | 18950 | elt = build_string ("*too-deep*"); |