comparison src/window.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 6728e641994e
comparison
equal deleted inserted replaced
799:03d9f9084848 800:a5954632b187
28 28
29 #include <config.h> 29 #include <config.h>
30 #include "lisp.h" 30 #include "lisp.h"
31 31
32 #include "buffer.h" 32 #include "buffer.h"
33 #include "commands.h"
34 #include "device.h"
35 #include "elhash.h"
33 #include "faces.h" 36 #include "faces.h"
34 #include "frame.h" 37 #include "frame.h"
38 #include "glyphs.h"
39 #include "gutter.h"
35 #include "objects.h" 40 #include "objects.h"
36 #include "glyphs.h"
37 #include "redisplay.h" 41 #include "redisplay.h"
38 #include "window.h" 42 #include "window.h"
39 #include "elhash.h"
40 #include "commands.h"
41 #include "gutter.h"
42 43
43 Lisp_Object Qwindowp, Qwindow_live_p, Qwindow_configurationp; 44 Lisp_Object Qwindowp, Qwindow_live_p, Qwindow_configurationp;
44 Lisp_Object Qdisplay_buffer; 45 Lisp_Object Qdisplay_buffer;
45 46
46 #ifdef MEMORY_USAGE_STATS 47 #ifdef MEMORY_USAGE_STATS
162 } 163 }
163 164
164 static void 165 static void
165 print_window (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) 166 print_window (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag)
166 { 167 {
167 char buf[200];
168
169 if (print_readably) 168 if (print_readably)
170 printing_unreadable_object ("#<window 0x%x>", XWINDOW (obj)->header.uid); 169 printing_unreadable_object ("#<window 0x%x>", XWINDOW (obj)->header.uid);
171 170
172 write_c_string ("#<window", printcharfun); 171 write_c_string ("#<window", printcharfun);
173 if (!NILP (XWINDOW (obj)->buffer)) 172 if (!NILP (XWINDOW (obj)->buffer))
174 { 173 {
175 Lisp_Object name = XBUFFER (XWINDOW (obj)->buffer)->name; 174 Lisp_Object name = XBUFFER (XWINDOW (obj)->buffer)->name;
176 write_c_string (" on ", printcharfun); 175 write_fmt_string_lisp (printcharfun, " on %S", 1, name);
177 print_internal (name, printcharfun, 1); 176 }
178 } 177 write_fmt_string (printcharfun, " 0x%x>", XWINDOW (obj)->header.uid);
179 sprintf (buf, " 0x%x>", XWINDOW (obj)->header.uid);
180 write_c_string (buf, printcharfun);
181 } 178 }
182 179
183 static void 180 static void
184 finalize_window (void *header, int for_disksave) 181 finalize_window (void *header, int for_disksave)
185 { 182 {
4887 /* Map MAPFUN over the windows in F. CLOSURE is passed to each 4884 /* Map MAPFUN over the windows in F. CLOSURE is passed to each
4888 invocation of MAPFUN. If any invocation of MAPFUN returns 4885 invocation of MAPFUN. If any invocation of MAPFUN returns
4889 non-zero, the mapping is halted. Otherwise, map_windows() maps 4886 non-zero, the mapping is halted. Otherwise, map_windows() maps
4890 over all windows in F. 4887 over all windows in F.
4891 4888
4889 If F is null, map over all frames on all devices and consoles.
4890
4892 If MAPFUN creates or deletes windows, the behavior is undefined. */ 4891 If MAPFUN creates or deletes windows, the behavior is undefined. */
4893 4892
4894 int 4893 int
4895 map_windows (struct frame *f, int (*mapfun) (struct window *w, void *closure), 4894 map_windows (struct frame *f, int (*mapfun) (struct window *w, void *closure),
4896 void *closure) 4895 void *closure)
5154 5153
5155 static void 5154 static void
5156 print_window_config (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) 5155 print_window_config (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag)
5157 { 5156 {
5158 struct window_config *config = XWINDOW_CONFIGURATION (obj); 5157 struct window_config *config = XWINDOW_CONFIGURATION (obj);
5159 char buf[200];
5160 if (print_readably) 5158 if (print_readably)
5161 printing_unreadable_object ("#<window-configuration 0x%x>", 5159 printing_unreadable_object ("#<window-configuration 0x%x>",
5162 config->header.uid); 5160 config->header.uid);
5163 write_c_string ("#<window-configuration ", printcharfun); 5161 write_c_string ("#<window-configuration ", printcharfun);
5164 sprintf (buf, "0x%x>", config->header.uid); 5162 write_fmt_string (printcharfun, "0x%x>", config->header.uid);
5165 write_c_string (buf, printcharfun);
5166 } 5163 }
5167 5164
5168 DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION ("window-configuration", 5165 DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION ("window-configuration",
5169 window_configuration, 5166 window_configuration,
5170 mark_window_config, 5167 mark_window_config,