Mercurial > hg > xemacs-beta
comparison src/marker.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 | 576fb035e263 |
children | fdefd0186b75 |
comparison
equal
deleted
inserted
replaced
562:c775bd016b32 | 563:183866b06e0b |
---|---|
57 { | 57 { |
58 Lisp_Marker *marker = XMARKER (obj); | 58 Lisp_Marker *marker = XMARKER (obj); |
59 char buf[200]; | 59 char buf[200]; |
60 | 60 |
61 if (print_readably) | 61 if (print_readably) |
62 error ("printing unreadable object #<marker 0x%lx>", (long) marker); | 62 printing_unreadable_object ("#<marker 0x%lx>", (long) marker); |
63 | 63 |
64 write_c_string (GETTEXT ("#<marker "), printcharfun); | 64 write_c_string (GETTEXT ("#<marker "), printcharfun); |
65 if (!marker->buffer) | 65 if (!marker->buffer) |
66 write_c_string (GETTEXT ("in no buffer"), printcharfun); | 66 write_c_string (GETTEXT ("in no buffer"), printcharfun); |
67 else | 67 else |
184 make this marker point nowhere. */ | 184 make this marker point nowhere. */ |
185 if (NILP (position) || | 185 if (NILP (position) || |
186 (MARKERP (position) && !XMARKER (position)->buffer)) | 186 (MARKERP (position) && !XMARKER (position)->buffer)) |
187 { | 187 { |
188 if (point_p) | 188 if (point_p) |
189 signal_simple_error ("Can't make point-marker point nowhere", | 189 invalid_operation ("Can't make point-marker point nowhere", |
190 marker); | 190 marker); |
191 if (XMARKER (marker)->buffer) | 191 if (XMARKER (marker)->buffer) |
192 unchain_marker (marker); | 192 unchain_marker (marker); |
193 return marker; | 193 return marker; |
194 } | 194 } |
195 | 195 |
202 b = XBUFFER (buffer); | 202 b = XBUFFER (buffer); |
203 /* If buffer is dead, set marker to point nowhere. */ | 203 /* If buffer is dead, set marker to point nowhere. */ |
204 if (!BUFFER_LIVE_P (XBUFFER (buffer))) | 204 if (!BUFFER_LIVE_P (XBUFFER (buffer))) |
205 { | 205 { |
206 if (point_p) | 206 if (point_p) |
207 signal_simple_error | 207 invalid_operation |
208 ("Can't move point-marker in a killed buffer", marker); | 208 ("Can't move point-marker in a killed buffer", marker); |
209 if (XMARKER (marker)->buffer) | 209 if (XMARKER (marker)->buffer) |
210 unchain_marker (marker); | 210 unchain_marker (marker); |
211 return marker; | 211 return marker; |
212 } | 212 } |
229 if (point_p) | 229 if (point_p) |
230 { | 230 { |
231 #ifndef moving_point_by_moving_its_marker_is_a_bug | 231 #ifndef moving_point_by_moving_its_marker_is_a_bug |
232 BUF_SET_PT (b, charno); /* this will move the marker */ | 232 BUF_SET_PT (b, charno); /* this will move the marker */ |
233 #else /* It's not a feature, so it must be a bug */ | 233 #else /* It's not a feature, so it must be a bug */ |
234 signal_simple_error ("DEBUG: attempt to move point via point-marker", | 234 invalid_operation ("DEBUG: attempt to move point via point-marker", |
235 marker); | 235 marker); |
236 #endif | 236 #endif |
237 } | 237 } |
238 else | 238 else |
239 { | 239 { |
240 m->memind = bufpos_to_memind (b, charno); | 240 m->memind = bufpos_to_memind (b, charno); |
241 } | 241 } |
242 | 242 |
243 if (m->buffer != b) | 243 if (m->buffer != b) |
244 { | 244 { |
245 if (point_p) | 245 if (point_p) |
246 signal_simple_error ("Can't change buffer of point-marker", marker); | 246 invalid_operation ("Can't change buffer of point-marker", marker); |
247 if (m->buffer != 0) | 247 if (m->buffer != 0) |
248 unchain_marker (marker); | 248 unchain_marker (marker); |
249 m->buffer = b; | 249 m->buffer = b; |
250 marker_next (m) = BUF_MARKERS (b); | 250 marker_next (m) = BUF_MARKERS (b); |
251 marker_prev (m) = 0; | 251 marker_prev (m) = 0; |
325 Lisp_Marker *m = XMARKER (marker); | 325 Lisp_Marker *m = XMARKER (marker); |
326 struct buffer *buf = m->buffer; | 326 struct buffer *buf = m->buffer; |
327 Bytind pos; | 327 Bytind pos; |
328 | 328 |
329 if (!buf) | 329 if (!buf) |
330 error ("Marker does not point anywhere"); | 330 invalid_argument ("Marker does not point anywhere", Qunbound); |
331 | 331 |
332 /* FSF claims that marker indices could end up denormalized, i.e. | 332 /* FSF claims that marker indices could end up denormalized, i.e. |
333 in the gap. This is way bogus if it ever happens, and means | 333 in the gap. This is way bogus if it ever happens, and means |
334 something fucked up elsewhere. Since I've overhauled all this | 334 something fucked up elsewhere. Since I've overhauled all this |
335 shit, I don't think this can happen. In any case, the following | 335 shit, I don't think this can happen. In any case, the following |
349 marker_position (Lisp_Object marker) | 349 marker_position (Lisp_Object marker) |
350 { | 350 { |
351 struct buffer *buf = XMARKER (marker)->buffer; | 351 struct buffer *buf = XMARKER (marker)->buffer; |
352 | 352 |
353 if (!buf) | 353 if (!buf) |
354 error ("Marker does not point anywhere"); | 354 invalid_argument ("Marker does not point anywhere", Qunbound); |
355 | 355 |
356 return bytind_to_bufpos (buf, bi_marker_position (marker)); | 356 return bytind_to_bufpos (buf, bi_marker_position (marker)); |
357 } | 357 } |
358 | 358 |
359 void | 359 void |
361 { | 361 { |
362 Lisp_Marker *m = XMARKER (marker); | 362 Lisp_Marker *m = XMARKER (marker); |
363 struct buffer *buf = m->buffer; | 363 struct buffer *buf = m->buffer; |
364 | 364 |
365 if (!buf) | 365 if (!buf) |
366 error ("Marker does not point anywhere"); | 366 invalid_argument ("Marker does not point anywhere", Qunbound); |
367 | 367 |
368 #ifdef ERROR_CHECK_BUFPOS | 368 #ifdef ERROR_CHECK_BUFPOS |
369 if (pos < BI_BUF_BEG (buf) || pos > BI_BUF_Z (buf)) | 369 if (pos < BI_BUF_BEG (buf) || pos > BI_BUF_Z (buf)) |
370 abort (); | 370 abort (); |
371 #endif | 371 #endif |
377 set_marker_position (Lisp_Object marker, Bufpos pos) | 377 set_marker_position (Lisp_Object marker, Bufpos pos) |
378 { | 378 { |
379 struct buffer *buf = XMARKER (marker)->buffer; | 379 struct buffer *buf = XMARKER (marker)->buffer; |
380 | 380 |
381 if (!buf) | 381 if (!buf) |
382 error ("Marker does not point anywhere"); | 382 invalid_argument ("Marker does not point anywhere", Qunbound); |
383 | 383 |
384 set_bi_marker_position (marker, bufpos_to_bytind (buf, pos)); | 384 set_bi_marker_position (marker, bufpos_to_bytind (buf, pos)); |
385 } | 385 } |
386 | 386 |
387 static Lisp_Object | 387 static Lisp_Object |