annotate src/disptab.h @ 88054:eae3aec0f807

2008-01-29 John Wiegley <johnw@newartisans.com> * url-auth.el (url-digest-auth): If the 'opaque' argument is not being used, don't add it to the response text. Also, changed an if so that the interaction between the PROMPT and OVERWRITE arguments can no longer result in the user being queried twice for the same login and password information.
author John Wiegley <johnw@newartisans.com>
date Tue, 29 Jan 2008 03:52:05 +0000
parents fc2bcd2a8aad
children 606f2d163a64
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Things for GLYPHS and glyph tables.
75227
e90d04cd455a Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 68651
diff changeset
2 Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005,
79759
fc2bcd2a8aad Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 78260
diff changeset
3 2006, 2007, 2008 Free Software Foundation, Inc.
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 This file is part of GNU Emacs.
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 GNU Emacs is free software; you can redistribute it and/or modify
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
78260
922696f363b0 Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents: 75227
diff changeset
9 the Free Software Foundation; either version 3, or (at your option)
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 any later version.
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 GNU General Public License for more details.
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 along with GNU Emacs; see the file COPYING. If not, write to
64084
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
20 Boston, MA 02110-1301, USA. */
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 /* Access the slots of a display-table, according to their purpose. */
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23
13183
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
24 #define DISP_TABLE_P(obj) \
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
25 (CHAR_TABLE_P (obj) \
17363
0fe9203c7a06 (DISP_TABLE_P): Don't use Lisp_Object as integer.
Karl Heuer <kwzh@gnu.org>
parents: 17332
diff changeset
26 && EQ (XCHAR_TABLE (obj)->purpose, Qdisplay_table) \
13183
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
27 && CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (obj)) == DISP_TABLE_EXTRA_SLOTS)
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
28
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
29 #define DISP_TABLE_EXTRA_SLOTS 6
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
30 #define DISP_TRUNC_GLYPH(dp) ((dp)->extras[0])
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
31 #define DISP_CONTINUE_GLYPH(dp) ((dp)->extras[1])
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
32 #define DISP_ESCAPE_GLYPH(dp) ((dp)->extras[2])
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
33 #define DISP_CTRL_GLYPH(dp) ((dp)->extras[3])
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
34 #define DISP_INVIS_VECTOR(dp) ((dp)->extras[4])
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
35 #define DISP_BORDER_GLYPH(dp) ((dp)->extras[5])
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
36
20309
51fb1f36e614 Add prototypes. Remove declaration of obsolete
Andreas Schwab <schwab@suse.de>
parents: 17363
diff changeset
37 extern Lisp_Object disp_char_vector P_ ((struct Lisp_Char_Table *, int));
17332
35269345d9ef (disp_char_vector): Extern it.
Kenichi Handa <handa@m17n.org>
parents: 17183
diff changeset
38
17116
321ebfc346eb (DISP_CHAR_VECTOR): Allow bare 8-bit in display-table.
Kenichi Handa <handa@m17n.org>
parents: 17029
diff changeset
39 #define DISP_CHAR_VECTOR(dp, c) \
17332
35269345d9ef (disp_char_vector): Extern it.
Kenichi Handa <handa@m17n.org>
parents: 17183
diff changeset
40 (SINGLE_BYTE_CHAR_P(c) ? (dp)->contents[c] : disp_char_vector ((dp), (c)))
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41
9406
a549857b7a13 * disptab.h (window_display_table): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 9143
diff changeset
42 /* Defined in window.c. */
20309
51fb1f36e614 Add prototypes. Remove declaration of obsolete
Andreas Schwab <schwab@suse.de>
parents: 17363
diff changeset
43 extern struct Lisp_Char_Table *window_display_table P_ ((struct window *));
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44
9406
a549857b7a13 * disptab.h (window_display_table): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 9143
diff changeset
45 /* Defined in indent.c. */
20309
51fb1f36e614 Add prototypes. Remove declaration of obsolete
Andreas Schwab <schwab@suse.de>
parents: 17363
diff changeset
46 extern struct Lisp_Char_Table *buffer_display_table P_ ((void));
9406
a549857b7a13 * disptab.h (window_display_table): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 9143
diff changeset
47
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 /* Display table to use for vectors that don't specify their own. */
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 extern Lisp_Object Vstandard_display_table;
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50
13183
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
51 /* This is the `purpose' slot of a display table. */
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
52 extern Lisp_Object Qdisplay_table;
6b79b1d9cddd (DISP_TABLE_P): Check the `purpose' slot.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
53
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 /* Vector of GLYPH definitions. Indexed by GLYPH number,
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 the contents are a string which is how to output the GLYPH. */
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 extern Lisp_Object Vglyph_table;
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 /* Return the current length of the GLYPH table,
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 or 0 if the table isn't currently valid. */
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 #define GLYPH_TABLE_LENGTH \
9143
069f8b6cdfe6 (GLYPH_TABLE_LENGTH, GLYPH_TABLE_BASE, GLYPH_SIMPLE_P, GLYPH_ALIAS_P): Use
Karl Heuer <kwzh@gnu.org>
parents: 8919
diff changeset
61 ((VECTORP (Vglyph_table)) ? XVECTOR (Vglyph_table)->size : 0)
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 /* Return the current base (for indexing) of the GLYPH table,
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 or 0 if the table isn't currently valid. */
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 #define GLYPH_TABLE_BASE \
9143
069f8b6cdfe6 (GLYPH_TABLE_LENGTH, GLYPH_TABLE_BASE, GLYPH_SIMPLE_P, GLYPH_ALIAS_P): Use
Karl Heuer <kwzh@gnu.org>
parents: 8919
diff changeset
66 ((VECTORP (Vglyph_table)) ? XVECTOR (Vglyph_table)->contents : 0)
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 /* Given BASE and LEN returned by the two previous macros,
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 return nonzero if the GLYPH code G should be output as a single
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 character with code G. Return zero if G has a string in the table. */
9143
069f8b6cdfe6 (GLYPH_TABLE_LENGTH, GLYPH_TABLE_BASE, GLYPH_SIMPLE_P, GLYPH_ALIAS_P): Use
Karl Heuer <kwzh@gnu.org>
parents: 8919
diff changeset
71 #define GLYPH_SIMPLE_P(base,len,g) ((g) >= (len) || !STRINGP (base[g]))
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 /* Given BASE and LEN returned by the two previous macros,
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 return nonzero if GLYPH code G is aliased to a different code. */
9143
069f8b6cdfe6 (GLYPH_TABLE_LENGTH, GLYPH_TABLE_BASE, GLYPH_SIMPLE_P, GLYPH_ALIAS_P): Use
Karl Heuer <kwzh@gnu.org>
parents: 8919
diff changeset
75 #define GLYPH_ALIAS_P(base,len,g) ((g) < (len) && INTEGERP (base[g]))
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77 /* Assuming that GLYPH_SIMPLE_P (BASE, LEN, G) is 1,
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 return the alias for G. */
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79 #define GLYPH_ALIAS(base, g) XINT (base[g])
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80
2725
507115aff66d * xdisp.c (display_text_line): Apply faces to characters according
Jim Blandy <jimb@redhat.com>
parents: 2012
diff changeset
81 /* 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
82 LENGTH), and set G to the final glyph. */
17183
00252a78ce4f (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
Kenichi Handa <handa@m17n.org>
parents: 17116
diff changeset
83 #define GLYPH_FOLLOW_ALIASES(base, length, g) \
00252a78ce4f (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
Kenichi Handa <handa@m17n.org>
parents: 17116
diff changeset
84 do { \
00252a78ce4f (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
Kenichi Handa <handa@m17n.org>
parents: 17116
diff changeset
85 while (GLYPH_ALIAS_P ((base), (length), (g))) \
00252a78ce4f (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
Kenichi Handa <handa@m17n.org>
parents: 17116
diff changeset
86 (g) = GLYPH_ALIAS ((base), (g)); \
00252a78ce4f (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
Kenichi Handa <handa@m17n.org>
parents: 17116
diff changeset
87 if (!GLYPH_CHAR_VALID_P (FAST_GLYPH_CHAR (g))) \
00252a78ce4f (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
Kenichi Handa <handa@m17n.org>
parents: 17116
diff changeset
88 g = FAST_MAKE_GLYPH (' ', FAST_GLYPH_FACE (g)); \
00252a78ce4f (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
Kenichi Handa <handa@m17n.org>
parents: 17116
diff changeset
89 } while (0)
00252a78ce4f (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
Kenichi Handa <handa@m17n.org>
parents: 17116
diff changeset
90
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 /* Assuming that GLYPH_SIMPLE_P (BASE, LEN, G) is 0,
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 return the length and the address of the character-sequence
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93 used for outputting GLYPH G. */
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 20309
diff changeset
94 #define GLYPH_LENGTH(base,g) SCHARS (base[g])
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 20309
diff changeset
95 #define GLYPH_STRING(base,g) SDATA (base[g])
484
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 /* GLYPH for a space character. */
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 #define SPACEGLYPH 040
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 #define NULL_GLYPH 00
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101
3165b2697c78 entered into RCS
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 #define GLYPH_FROM_CHAR(c) (c)
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 46370
diff changeset
103
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 46370
diff changeset
104 /* arch-tag: d7f792d2-f59c-4904-a91e-91522e3ab349
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 46370
diff changeset
105 (do not change this comment) */