comparison src/buffer.c @ 563:183866b06e0b

[xemacs-hg @ 2001-05-24 07:50:48 by ben] Makefile.in.in, abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c, casetab.c, chartab.c, cmdloop.c, cmds.c, console-msw.c, console-msw.h, console-stream.c, console-tty.c, console-x.c, console.c, data.c, database.c, debug.c, device-gtk.c, device-msw.c, device-tty.c, device-x.c, device.c, dialog-gtk.c, dialog-msw.c, dialog-x.c, dialog.c, dired-msw.c, dired.c, doc.c, doprnt.c, dragdrop.c, editfns.c, eldap.c, eldap.h, elhash.c, emacs-widget-accessors.c, emacs.c, emodules.c, esd.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, fileio.c, filelock.c, floatfns.c, fns.c, font-lock.c, frame-gtk.c, frame-x.c, frame.c, general-slots.h, glade.c, glyphs-gtk.c, glyphs-msw.c, glyphs-widget.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gui-gtk.c, gui-x.c, gui.c, gutter.c, hpplay.c, indent.c, input-method-xlib.c, insdel.c, intl.c, keymap.c, libsst.c, libsst.h, linuxplay.c, lisp.h, lread.c, lstream.c, lstream.h, macros.c, marker.c, md5.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, miscplay.c, miscplay.h, mule-ccl.c, mule-charset.c, mule-wnnfns.c, mule.c, nas.c, ntplay.c, ntproc.c, objects-gtk.c, objects-msw.c, objects-x.c, objects.c, postgresql.c, print.c, process-nt.c, process-unix.c, process.c, ralloc.c, rangetab.c, redisplay.c, scrollbar.c, search.c, select-gtk.c, select-x.c, select.c, sgiplay.c, sheap.c, sound.c, specifier.c, sunplay.c, symbols.c, symeval.h, symsinit.h, syntax.c, sysdep.c, toolbar-msw.c, toolbar.c, tooltalk.c, ui-byhand.c, ui-gtk.c, undo.c, unexaix.c, unexapollo.c, unexconvex.c, unexec.c, widget.c, win32.c, window.c: -- defsymbol -> DEFSYMBOL. -- add an error type to all errors. -- eliminate the error functions in eval.c that let you just use Qerror as the type. -- redo the error API to be more consistent, sensibly named, and easier to use. -- redo the error hierarchy somewhat. create new errors: structure-formation-error, gui-error, invalid-constant, stack-overflow, out-of-memory, process-error, network-error, sound-error, printing-unreadable-object, base64-conversion- error; coding-system-error renamed to text-conversion error; some others. -- fix Mule problems in error strings in emodules.c, tooltalk.c. -- fix error handling in mswin open-network-stream. -- Mule-ize all sound files and clean up the headers. -- nativesound.h -> sound.h and used for all sound files. -- move some shared stuff into glyphs-shared.c: first attempt at eliminating some of the massive GTK code duplication. xemacs.mak: add glyphs-shared.c. xemacs-faq.texi: document how to debug X errors subr.el: fix doc string to reflect reality
author ben
date Thu, 24 May 2001 07:51:33 +0000
parents ed498ef2108b
children 001628b7a5b3
comparison
equal deleted inserted replaced
562:c775bd016b32 563:183866b06e0b
258 struct buffer *b = XBUFFER (obj); 258 struct buffer *b = XBUFFER (obj);
259 259
260 if (print_readably) 260 if (print_readably)
261 { 261 {
262 if (!BUFFER_LIVE_P (b)) 262 if (!BUFFER_LIVE_P (b))
263 error ("printing unreadable object #<killed buffer>"); 263 printing_unreadable_object ("#<killed buffer>");
264 else 264 else
265 error ("printing unreadable object #<buffer %s>", 265 printing_unreadable_object ("#<buffer %s>", XSTRING_DATA (b->name));
266 XSTRING_DATA (b->name));
267 } 266 }
268 else if (!BUFFER_LIVE_P (b)) 267 else if (!BUFFER_LIVE_P (b))
269 write_c_string ("#<killed buffer>", printcharfun); 268 write_c_string ("#<killed buffer>", printcharfun);
270 else if (escapeflag) 269 else if (escapeflag)
271 { 270 {
304 303
305 static void 304 static void
306 nsberror (Lisp_Object spec) 305 nsberror (Lisp_Object spec)
307 { 306 {
308 if (STRINGP (spec)) 307 if (STRINGP (spec))
309 error ("No buffer named %s", XSTRING_DATA (spec)); 308 invalid_argument ("No buffer named", spec);
310 signal_simple_error ("Invalid buffer argument", spec); 309 invalid_argument ("Invalid buffer argument", spec);
311 } 310 }
312 311
313 DEFUN ("buffer-list", Fbuffer_list, 0, 1, 0, /* 312 DEFUN ("buffer-list", Fbuffer_list, 0, 1, 0, /*
314 Return a list of all existing live buffers. 313 Return a list of all existing live buffers.
315 The order is specific to the selected frame; if the optional FRAME 314 The order is specific to the selected frame; if the optional FRAME
617 buf = Fget_buffer (name); 616 buf = Fget_buffer (name);
618 if (!NILP (buf)) 617 if (!NILP (buf))
619 return buf; 618 return buf;
620 619
621 if (XSTRING_LENGTH (name) == 0) 620 if (XSTRING_LENGTH (name) == 0)
622 error ("Empty string for buffer name is not allowed"); 621 invalid_argument ("Empty string for buffer name is not allowed",
622 Qunbound);
623 623
624 b = allocate_buffer (); 624 b = allocate_buffer ();
625 625
626 b->text = &b->own_text; 626 b->text = &b->own_text;
627 b->base_buffer = 0; 627 b->base_buffer = 0;
658 translated. */ 658 translated. */
659 #endif 659 #endif
660 CHECK_STRING (name); 660 CHECK_STRING (name);
661 name = LISP_GETTEXT (name); 661 name = LISP_GETTEXT (name);
662 if (!NILP (Fget_buffer (name))) 662 if (!NILP (Fget_buffer (name)))
663 signal_simple_error ("Buffer name already in use", name); 663 invalid_argument ("Buffer name already in use", name);
664 if (XSTRING_LENGTH (name) == 0) 664 if (XSTRING_LENGTH (name) == 0)
665 error ("Empty string for buffer name is not allowed"); 665 invalid_argument ("Empty string for buffer name is not allowed", Qunbound);
666 666
667 b = allocate_buffer (); 667 b = allocate_buffer ();
668 668
669 b->base_buffer = BUFFER_BASE_BUFFER (XBUFFER (base_buffer)); 669 b->base_buffer = BUFFER_BASE_BUFFER (XBUFFER (base_buffer));
670 670
946 #endif 946 #endif
947 CHECK_STRING (newname); 947 CHECK_STRING (newname);
948 newname = LISP_GETTEXT (newname); 948 newname = LISP_GETTEXT (newname);
949 949
950 if (XSTRING_LENGTH (newname) == 0) 950 if (XSTRING_LENGTH (newname) == 0)
951 error ("Empty string is invalid as a buffer name"); 951 invalid_argument ("Empty string is invalid as a buffer name", Qunbound);
952 952
953 tem = Fget_buffer (newname); 953 tem = Fget_buffer (newname);
954 /* Don't short-circuit if UNIQUE is t. That is a useful way to rename 954 /* Don't short-circuit if UNIQUE is t. That is a useful way to rename
955 the buffer automatically so you can create another with the original name. 955 the buffer automatically so you can create another with the original name.
956 It makes UNIQUE equivalent to 956 It makes UNIQUE equivalent to
961 if (!NILP (tem)) 961 if (!NILP (tem))
962 { 962 {
963 if (!NILP (unique)) 963 if (!NILP (unique))
964 newname = Fgenerate_new_buffer_name (newname, current_buffer->name); 964 newname = Fgenerate_new_buffer_name (newname, current_buffer->name);
965 else 965 else
966 error ("Buffer name \"%s\" is in use", 966 invalid_argument ("Buffer name is in use", newname);
967 XSTRING_DATA (newname));
968 } 967 }
969 968
970 current_buffer->name = newname; 969 current_buffer->name = newname;
971 970
972 /* Catch redisplay's attention. Unless we do this, the modelines for 971 /* Catch redisplay's attention. Unless we do this, the modelines for
1496 */ 1495 */
1497 (buffer)) 1496 (buffer))
1498 { 1497 {
1499 buffer = get_buffer (buffer, 0); 1498 buffer = get_buffer (buffer, 0);
1500 if (NILP (buffer)) 1499 if (NILP (buffer))
1501 error ("Selecting deleted or non-existent buffer"); 1500 invalid_operation ("Selecting deleted or non-existent buffer", Qunbound);
1502 set_buffer_internal (XBUFFER (buffer)); 1501 set_buffer_internal (XBUFFER (buffer));
1503 return buffer; 1502 return buffer;
1504 } 1503 }
1505 1504
1506 1505
1584 1583
1585 if (!NILP (before)) 1584 if (!NILP (before))
1586 before = get_buffer (before, 1); 1585 before = get_buffer (before, 1);
1587 1586
1588 if (EQ (before, buffer)) 1587 if (EQ (before, buffer))
1589 error ("Cannot place a buffer before itself"); 1588 invalid_operation ("Cannot place a buffer before itself", Qunbound);
1590 1589
1591 bury_buffer_1 (buffer, before, &Vbuffer_alist); 1590 bury_buffer_1 (buffer, before, &Vbuffer_alist);
1592 bury_buffer_1 (buffer, before, &selected_frame ()->buffer_alist); 1591 bury_buffer_1 (buffer, before, &selected_frame ()->buffer_alist);
1593 1592
1594 return Qnil; 1593 return Qnil;
1923 size_in_bytes = Lstream_read (reader, tempbuf, sizeof (tempbuf)); 1922 size_in_bytes = Lstream_read (reader, tempbuf, sizeof (tempbuf));
1924 1923
1925 if (size_in_bytes == 0) 1924 if (size_in_bytes == 0)
1926 break; 1925 break;
1927 else if (size_in_bytes < 0) 1926 else if (size_in_bytes < 0)
1928 error ("Error converting to external format"); 1927 signal_error (Qtext_conversion_error, "Error converting to external format", Qunbound);
1929 1928
1930 size_in_bytes = Lstream_write (writer, tempbuf, size_in_bytes); 1929 size_in_bytes = Lstream_write (writer, tempbuf, size_in_bytes);
1931 1930
1932 if (size_in_bytes <= 0) 1931 if (size_in_bytes <= 0)
1933 error ("Error converting to external format"); 1932 signal_error (Qtext_conversion_error, "Error converting to external format", Qunbound);
1934 } 1933 }
1935 1934
1936 /* Closing writer will close any stream at the other end of writer. */ 1935 /* Closing writer will close any stream at the other end of writer. */
1937 Lstream_close (writer); 1936 Lstream_close (writer);
1938 Lstream_close (reader); 1937 Lstream_close (reader);
2061 size_in_bytes = Lstream_read (reader, tempbuf, sizeof (tempbuf)); 2060 size_in_bytes = Lstream_read (reader, tempbuf, sizeof (tempbuf));
2062 2061
2063 if (size_in_bytes == 0) 2062 if (size_in_bytes == 0)
2064 break; 2063 break;
2065 else if (size_in_bytes < 0) 2064 else if (size_in_bytes < 0)
2066 error ("Error converting to internal format"); 2065 signal_error (Qtext_conversion_error, "Error converting to internal format", Qunbound);
2067 2066
2068 size_in_bytes = Lstream_write (writer, tempbuf, size_in_bytes); 2067 size_in_bytes = Lstream_write (writer, tempbuf, size_in_bytes);
2069 2068
2070 if (size_in_bytes <= 0) 2069 if (size_in_bytes <= 0)
2071 error ("Error converting to internal format"); 2070 signal_error (Qtext_conversion_error, "Error converting to internal format", Qunbound);
2072 } 2071 }
2073 2072
2074 /* Closing writer will close any stream at the other end of writer. */ 2073 /* Closing writer will close any stream at the other end of writer. */
2075 Lstream_close (writer); 2074 Lstream_close (writer);
2076 Lstream_close (reader); 2075 Lstream_close (reader);
2095 void 2094 void
2096 syms_of_buffer (void) 2095 syms_of_buffer (void)
2097 { 2096 {
2098 INIT_LRECORD_IMPLEMENTATION (buffer); 2097 INIT_LRECORD_IMPLEMENTATION (buffer);
2099 2098
2100 defsymbol (&Qbuffer_live_p, "buffer-live-p"); 2099 DEFSYMBOL (Qbuffer_live_p);
2101 defsymbol (&Qbuffer_or_string_p, "buffer-or-string-p"); 2100 DEFSYMBOL (Qbuffer_or_string_p);
2102 defsymbol (&Qmode_class, "mode-class"); 2101 DEFSYMBOL (Qmode_class);
2103 defsymbol (&Qrename_auto_save_file, "rename-auto-save-file"); 2102 DEFSYMBOL (Qrename_auto_save_file);
2104 defsymbol (&Qkill_buffer_hook, "kill-buffer-hook"); 2103 DEFSYMBOL (Qkill_buffer_hook);
2105 defsymbol (&Qpermanent_local, "permanent-local"); 2104 DEFSYMBOL (Qpermanent_local);
2106 2105
2107 defsymbol (&Qfirst_change_hook, "first-change-hook"); 2106 DEFSYMBOL (Qfirst_change_hook);
2108 defsymbol (&Qbefore_change_functions, "before-change-functions"); 2107 DEFSYMBOL (Qbefore_change_functions);
2109 defsymbol (&Qafter_change_functions, "after-change-functions"); 2108 DEFSYMBOL (Qafter_change_functions);
2110 2109
2111 /* #### Obsolete, for compatibility */ 2110 /* #### Obsolete, for compatibility */
2112 defsymbol (&Qbefore_change_function, "before-change-function"); 2111 DEFSYMBOL (Qbefore_change_function);
2113 defsymbol (&Qafter_change_function, "after-change-function"); 2112 DEFSYMBOL (Qafter_change_function);
2114 2113
2115 defsymbol (&Qdefault_directory, "default-directory"); 2114 DEFSYMBOL (Qdefault_directory);
2116 2115
2117 defsymbol (&Qget_file_buffer, "get-file-buffer"); 2116 DEFSYMBOL (Qget_file_buffer);
2118 defsymbol (&Qchange_major_mode_hook, "change-major-mode-hook"); 2117 DEFSYMBOL (Qchange_major_mode_hook);
2119 2118
2120 defsymbol (&Qfundamental_mode, "fundamental-mode"); 2119 DEFSYMBOL (Qfundamental_mode);
2121 2120
2122 defsymbol (&Qfind_file_compare_truenames, "find-file-compare-truenames"); 2121 DEFSYMBOL (Qfind_file_compare_truenames);
2123 2122
2124 defsymbol (&Qswitch_to_buffer, "switch-to-buffer"); 2123 DEFSYMBOL (Qswitch_to_buffer);
2125 2124
2126 DEFSUBR (Fbufferp); 2125 DEFSUBR (Fbufferp);
2127 DEFSUBR (Fbuffer_live_p); 2126 DEFSUBR (Fbuffer_live_p);
2128 DEFSUBR (Fbuffer_list); 2127 DEFSUBR (Fbuffer_list);
2129 DEFSUBR (Fdecode_buffer); 2128 DEFSUBR (Fdecode_buffer);