comparison src/undo.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 8de8e3f6228a
children fdefd0186b75
comparison
equal deleted inserted replaced
562:c775bd016b32 563:183866b06e0b
472 { 472 {
473 /* Element (BEG . END) means range was inserted. */ 473 /* Element (BEG . END) means range was inserted. */
474 474
475 if (XINT (car) < BUF_BEGV (current_buffer) 475 if (XINT (car) < BUF_BEGV (current_buffer)
476 || XINT (cdr) > BUF_ZV (current_buffer)) 476 || XINT (cdr) > BUF_ZV (current_buffer))
477 error ("Changes to be undone are outside visible portion of buffer"); 477 signal_error (Qinvalid_operation, "Changes to be undone are outside visible portion of buffer", Qunbound);
478 /* Set point first thing, so that undoing this undo 478 /* Set point first thing, so that undoing this undo
479 does not send point back to where it is now. */ 479 does not send point back to where it is now. */
480 Fgoto_char (car, Qnil); 480 Fgoto_char (car, Qnil);
481 Fdelete_region (car, cdr, Qnil); 481 Fdelete_region (car, cdr, Qnil);
482 } 482 }
487 int pos = XINT (cdr); 487 int pos = XINT (cdr);
488 488
489 if (pos < 0) 489 if (pos < 0)
490 { 490 {
491 if (-pos < BUF_BEGV (current_buffer) || -pos > BUF_ZV (current_buffer)) 491 if (-pos < BUF_BEGV (current_buffer) || -pos > BUF_ZV (current_buffer))
492 error ("Changes to be undone are outside visible portion of buffer"); 492 signal_error (Qinvalid_operation, "Changes to be undone are outside visible portion of buffer", Qunbound);
493 BUF_SET_PT (current_buffer, -pos); 493 BUF_SET_PT (current_buffer, -pos);
494 Finsert (1, &membuf); 494 Finsert (1, &membuf);
495 } 495 }
496 else 496 else
497 { 497 {
498 if (pos < BUF_BEGV (current_buffer) || pos > BUF_ZV (current_buffer)) 498 if (pos < BUF_BEGV (current_buffer) || pos > BUF_ZV (current_buffer))
499 error ("Changes to be undone are outside visible portion of buffer"); 499 signal_error (Qinvalid_operation, "Changes to be undone are outside visible portion of buffer", Qunbound);
500 BUF_SET_PT (current_buffer, pos); 500 BUF_SET_PT (current_buffer, pos);
501 501
502 /* Insert before markers so that if the mark is 502 /* Insert before markers so that if the mark is
503 currently on the boundary of this deletion, it 503 currently on the boundary of this deletion, it
504 ends up on the other side of the now-undeleted 504 ends up on the other side of the now-undeleted
525 else if (EXTENTP (next)) 525 else if (EXTENTP (next))
526 Fdetach_extent (next); 526 Fdetach_extent (next);
527 else 527 else
528 { 528 {
529 rotten: 529 rotten:
530 signal_simple_continuable_error 530 signal_continuable_error
531 ("Something rotten in the state of undo", next); 531 (Qinvalid_state,
532 "Something rotten in the state of undo", next);
532 } 533 }
533 } 534 }
534 arg--; 535 arg--;
535 } 536 }
536 537
541 void 542 void
542 syms_of_undo (void) 543 syms_of_undo (void)
543 { 544 {
544 DEFSUBR (Fprimitive_undo); 545 DEFSUBR (Fprimitive_undo);
545 DEFSUBR (Fundo_boundary); 546 DEFSUBR (Fundo_boundary);
546 defsymbol (&Qinhibit_read_only, "inhibit-read-only"); 547 DEFSYMBOL (Qinhibit_read_only);
547 } 548 }
548 549
549 void 550 void
550 reinit_vars_of_undo (void) 551 reinit_vars_of_undo (void)
551 { 552 {