Mercurial > hg > xemacs-beta
comparison src/redisplay-output.c @ 800:a5954632b187
[xemacs-hg @ 2002-03-31 08:27:14 by ben]
more fixes, first crack at finishing behavior implementation
TODO.ben-mule-21-5: Update.
configure.in: Fix for new error-checking types.
make-mswin-unicode.pl: Don't be fucked up by CRLF. Output code
to force errors when nonintercepted Windows calls issued.
behavior.el, dumped-lisp.el, menubar-items.el: Add support for saving using custom. Load into a dumped XEmacs.
Correct :title to :short-doc in accordance with behavior-defs.el.
Add a submenu under Options for turning on/off behaviors.
cl-macs.el: Properly document `loop'. Fix a minor bug in keymap iteration and
add support for bit-vector iteration.
lisp-mode.el: Rearrange and add items for macro expanding.
menubar-items.el: Document connection between these two functions.
window.el: Port stuff from GNU 21.1.
config.inc.samp, xemacs.mak: Separate out and add new variable for controlling error-checking.
s/windowsnt.h: Use new ERROR_CHECK_ALL; not related to DEBUG_XEMACS.
alloc.c, backtrace.h, buffer.c, buffer.h, bytecode.c, callproc.c, casetab.c, charset.h, chartab.c, cmdloop.c, config.h.in, console-msw.c, console-stream.c, console-tty.c, console.c, console.h, data.c, device-msw.c, device.c, device.h, dired-msw.c, dired.c, dumper.c, editfns.c, eldap.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, file-coding.h, fileio.c, frame-msw.c, frame.c, frame.h, glyphs-gtk.c, glyphs-msw.c, glyphs-shared.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, insdel.c, intl-auto-encap-win32.c, intl-auto-encap-win32.h, intl-encap-win32.c, intl-win32.c, keymap.c, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-x.c, menubar.c, mule-coding.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, opaque.c, print.c, process-nt.c, process-unix.c, process.c, rangetab.c, redisplay-msw.c, redisplay-output.c, redisplay.c, regex.c, scrollbar-msw.c, select-msw.c, signal.c, specifier.c, specifier.h, symbols.c, sysdep.c, syswindows.h, text.c, text.h, toolbar-msw.c, tooltalk.c, ui-gtk.c, unicode.c, window.c: Redo error-checking macros: ERROR_CHECK_TYPECHECK ->
ERROR_CHECK_TYPES, ERROR_CHECK_CHARBPOS -> ERROR_CHECK_TEXT, add
ERROR_CHECK_DISPLAY, ERROR_CHECK_STRUCTURES. Document these in
config.h.in. Fix code to follow docs. Fix *_checking_assert()
in accordance with new names.
Attempt to fix periodic redisplay crash freeing display line
structures. Add first implementation of sledgehammer redisplay
check.
Redo print_*() to use write_fmt_string(), write_fmt_string_lisp().
Fix bug in md5 handling.
Rename character-to-unicode to char-to-unicode; same for
unicode-to-char{acter}.
Move chartab documentation to `make-char-table'.
Some header cleanup.
Clean up remaining places where nonintercepted Windows calls are
being used.
automated/mule-tests.el: Fix for new Unicode support.
author | ben |
---|---|
date | Sun, 31 Mar 2002 08:30:17 +0000 |
parents | e38acbeb1cae |
children | 6504113e7c2d |
comparison
equal
deleted
inserted
replaced
799:03d9f9084848 | 800:a5954632b187 |
---|---|
105 void | 105 void |
106 sync_display_line_structs (struct window *w, int line, int do_blocks, | 106 sync_display_line_structs (struct window *w, int line, int do_blocks, |
107 display_line_dynarr *cdla, | 107 display_line_dynarr *cdla, |
108 display_line_dynarr *ddla) | 108 display_line_dynarr *ddla) |
109 { | 109 { |
110 int cdla_len = Dynarr_length (cdla); | |
111 | |
112 struct display_line dl, *clp, *dlp; | 110 struct display_line dl, *clp, *dlp; |
113 int db_elt; | 111 int db_elt; |
112 int local = 0; | |
114 | 113 |
115 dlp = Dynarr_atp (ddla, line); | 114 dlp = Dynarr_atp (ddla, line); |
116 if (line >= Dynarr_largest (cdla)) | 115 if (line >= Dynarr_largest (cdla)) |
117 { | 116 { |
118 clp = &dl; | 117 clp = &dl; |
119 clp->display_blocks = Dynarr_new (display_block); | 118 clp->display_blocks = Dynarr_new (display_block); |
119 local = 1; | |
120 } | 120 } |
121 else | 121 else |
122 { | 122 { |
123 clp = Dynarr_atp (cdla, line); | 123 clp = Dynarr_atp (cdla, line); |
124 if (clp->display_blocks) | 124 if (clp->display_blocks) |
141 clp->display_blocks = tdb; | 141 clp->display_blocks = tdb; |
142 clp->left_glyphs = 0; | 142 clp->left_glyphs = 0; |
143 clp->right_glyphs = 0; | 143 clp->right_glyphs = 0; |
144 } | 144 } |
145 | 145 |
146 if (!do_blocks && line >= cdla_len) | 146 if (do_blocks || line < Dynarr_length (cdla)) |
147 { | 147 { |
148 Dynarr_add (cdla, *clp); | 148 for (db_elt = 0; db_elt < Dynarr_length (dlp->display_blocks); db_elt++) |
149 return; | 149 { |
150 } | 150 struct display_block db, *cdb; |
151 | 151 struct display_block *ddb = Dynarr_atp (dlp->display_blocks, db_elt); |
152 for (db_elt = 0; db_elt < Dynarr_length (dlp->display_blocks); db_elt++) | 152 |
153 { | 153 if (db_elt >= Dynarr_largest (clp->display_blocks)) |
154 struct display_block db, *cdb; | 154 { |
155 struct display_block *ddb = Dynarr_atp (dlp->display_blocks, db_elt); | 155 cdb = &db; |
156 | 156 memcpy (cdb, ddb, sizeof (struct display_block)); |
157 if (db_elt >= Dynarr_largest (clp->display_blocks)) | 157 cdb->runes = Dynarr_new (rune); |
158 { | 158 Dynarr_add (clp->display_blocks, *cdb); |
159 cdb = &db; | 159 } |
160 memcpy (cdb, ddb, sizeof (struct display_block)); | 160 else |
161 cdb->runes = Dynarr_new (rune); | 161 { |
162 Dynarr_add (clp->display_blocks, *cdb); | 162 rune_dynarr *tr; |
163 } | 163 |
164 else | 164 cdb = Dynarr_atp (clp->display_blocks, db_elt); |
165 { | 165 tr = cdb->runes; |
166 rune_dynarr *tr; | 166 memcpy (cdb, ddb, sizeof (struct display_block)); |
167 | 167 cdb->runes = tr; |
168 cdb = Dynarr_atp (clp->display_blocks, db_elt); | 168 Dynarr_increment (clp->display_blocks); |
169 tr = cdb->runes; | 169 } |
170 memcpy (cdb, ddb, sizeof (struct display_block)); | 170 |
171 cdb->runes = tr; | 171 sync_rune_structs (w, cdb->runes, ddb->runes); |
172 Dynarr_increment (clp->display_blocks); | 172 } |
173 } | 173 } |
174 | 174 |
175 sync_rune_structs (w, cdb->runes, ddb->runes); | 175 if (local) |
176 } | |
177 | |
178 if (line >= cdla_len) | |
179 Dynarr_add (cdla, *clp); | 176 Dynarr_add (cdla, *clp); |
177 else if (line >= Dynarr_length (cdla)) | |
178 { | |
179 assert (line == Dynarr_length (cdla)); | |
180 Dynarr_increment (cdla); | |
181 } | |
180 } | 182 } |
181 | 183 |
182 /***************************************************************************** | 184 /***************************************************************************** |
183 compare_runes | 185 compare_runes |
184 | 186 |