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