Mercurial > emacs
annotate src/disptab.h @ 4413:5a00cec8e9b0
(fill-region-as-paragraph): When we take one word
after the fill column, don't stop at period with just one space.
When checking whether at beginning of line, if no fill prefix,
ignore intervening whitespace.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 02 Aug 1993 05:55:56 +0000 |
parents | e94a593c3952 |
children | 644f69fe736e |
rev | line source |
---|---|
484 | 1 /* Things for GLYPHS and glyph tables. |
2961 | 2 Copyright (C) 1993 Free Software Foundation, Inc. |
484 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
8 the Free Software Foundation; either version 1, or (at your option) | |
9 any later version. | |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
19 | |
20 /* Access the slots of a display-table, according to their purpose. */ | |
21 | |
22 #define DISP_TABLE_SIZE 261 | |
23 #define DISP_TRUNC_GLYPH(dp) ((dp)->contents[256]) | |
24 #define DISP_CONTINUE_GLYPH(dp) ((dp)->contents[257]) | |
25 #define DISP_ESCAPE_GLYPH(dp) ((dp)->contents[258]) | |
26 #define DISP_CTRL_GLYPH(dp) ((dp)->contents[259]) | |
2012
a6d7c2f161cf
(DISP_INVIS_VECTOR): Renamed from DISP_INVIS_ROPE.
Richard M. Stallman <rms@gnu.org>
parents:
484
diff
changeset
|
27 #define DISP_INVIS_VECTOR(dp) ((dp)->contents[260]) |
a6d7c2f161cf
(DISP_INVIS_VECTOR): Renamed from DISP_INVIS_ROPE.
Richard M. Stallman <rms@gnu.org>
parents:
484
diff
changeset
|
28 #define DISP_CHAR_VECTOR(dp, c) ((dp)->contents[c]) |
484 | 29 |
30 extern struct Lisp_Vector *window_display_table (); | |
31 | |
32 /* Display table to use for vectors that don't specify their own. */ | |
33 extern Lisp_Object Vstandard_display_table; | |
34 | |
35 /* Vector of GLYPH definitions. Indexed by GLYPH number, | |
36 the contents are a string which is how to output the GLYPH. */ | |
37 extern Lisp_Object Vglyph_table; | |
38 | |
39 /* Return the current length of the GLYPH table, | |
40 or 0 if the table isn't currently valid. */ | |
41 #define GLYPH_TABLE_LENGTH \ | |
42 ((XTYPE (Vglyph_table) == Lisp_Vector) \ | |
43 ? XVECTOR (Vglyph_table)->size : 0) | |
44 | |
45 /* Return the current base (for indexing) of the GLYPH table, | |
46 or 0 if the table isn't currently valid. */ | |
47 #define GLYPH_TABLE_BASE \ | |
48 ((XTYPE (Vglyph_table) == Lisp_Vector) \ | |
49 ? XVECTOR (Vglyph_table)->contents : 0) | |
50 | |
51 /* Given BASE and LEN returned by the two previous macros, | |
52 return nonzero if the GLYPH code G should be output as a single | |
53 character with code G. Return zero if G has a string in the table. */ | |
54 #define GLYPH_SIMPLE_P(base,len,g) \ | |
55 ((g) >= (len) || XTYPE (base[g]) != Lisp_String) | |
56 | |
57 /* Given BASE and LEN returned by the two previous macros, | |
58 return nonzero if GLYPH code G is aliased to a different code. */ | |
59 #define GLYPH_ALIAS_P(base,len,g) \ | |
60 ((g) < (len) && XTYPE (base[g]) == Lisp_Int) | |
61 | |
62 /* Assuming that GLYPH_SIMPLE_P (BASE, LEN, G) is 1, | |
63 return the alias for G. */ | |
64 #define GLYPH_ALIAS(base, g) XINT (base[g]) | |
65 | |
2725
507115aff66d
* xdisp.c (display_text_line): Apply faces to characters according
Jim Blandy <jimb@redhat.com>
parents:
2012
diff
changeset
|
66 /* Follow all aliases for G in the glyph table given by (BASE, |
507115aff66d
* xdisp.c (display_text_line): Apply faces to characters according
Jim Blandy <jimb@redhat.com>
parents:
2012
diff
changeset
|
67 LENGTH), and set G to the final glyph. */ |
507115aff66d
* xdisp.c (display_text_line): Apply faces to characters according
Jim Blandy <jimb@redhat.com>
parents:
2012
diff
changeset
|
68 #define GLYPH_FOLLOW_ALIASES(base, length, g) \ |
507115aff66d
* xdisp.c (display_text_line): Apply faces to characters according
Jim Blandy <jimb@redhat.com>
parents:
2012
diff
changeset
|
69 while (GLYPH_ALIAS_P ((base), (length), (g))) \ |
507115aff66d
* xdisp.c (display_text_line): Apply faces to characters according
Jim Blandy <jimb@redhat.com>
parents:
2012
diff
changeset
|
70 (g) = GLYPH_ALIAS ((base), (g)); |
507115aff66d
* xdisp.c (display_text_line): Apply faces to characters according
Jim Blandy <jimb@redhat.com>
parents:
2012
diff
changeset
|
71 |
484 | 72 /* Assuming that GLYPH_SIMPLE_P (BASE, LEN, G) is 0, |
73 return the length and the address of the character-sequence | |
74 used for outputting GLYPH G. */ | |
75 #define GLYPH_LENGTH(base,g) XSTRING (base[g])->size | |
76 #define GLYPH_STRING(base,g) XSTRING (base[g])->data | |
77 | |
78 /* GLYPH for a space character. */ | |
79 | |
80 #define SPACEGLYPH 040 | |
81 #define NULL_GLYPH 00 | |
82 | |
83 #define GLYPH_FROM_CHAR(c) (c) | |
84 | |
85 extern int glyphlen (); | |
86 extern void str_to_glyph_cpy (); | |
87 extern void str_to_glyph_ncpy (); | |
88 extern void glyph_to_str_cpy (); |