comparison src/marker.c @ 20:859a2309aef8 r19-15b93

Import from CVS: tag r19-15b93
author cvs
date Mon, 13 Aug 2007 08:50:05 +0200
parents 376386a54a3c
children 0e522484dd2a
comparison
equal deleted inserted replaced
19:ac1f612d5250 20:859a2309aef8
104 } 104 }
105 105
106 106
107 /* Operations on markers. */ 107 /* Operations on markers. */
108 108
109 DEFUN ("marker-buffer", Fmarker_buffer, Smarker_buffer, 1, 1, 0 /* 109 DEFUN ("marker-buffer", Fmarker_buffer, 1, 1, 0, /*
110 Return the buffer that MARKER points into, or nil if none. 110 Return the buffer that MARKER points into, or nil if none.
111 Returns nil if MARKER points into a dead buffer. 111 Returns nil if MARKER points into a dead buffer.
112 */ ) 112 */
113 (marker) 113 (marker))
114 Lisp_Object marker;
115 { 114 {
116 Lisp_Object buf; 115 Lisp_Object buf;
117 CHECK_MARKER (marker); 116 CHECK_MARKER (marker);
118 if (XMARKER (marker)->buffer) 117 if (XMARKER (marker)->buffer)
119 { 118 {
123 return buf; 122 return buf;
124 } 123 }
125 return Qnil; 124 return Qnil;
126 } 125 }
127 126
128 DEFUN ("marker-position", Fmarker_position, Smarker_position, 1, 1, 0 /* 127 DEFUN ("marker-position", Fmarker_position, 1, 1, 0, /*
129 Return the position MARKER points at, as a character number. 128 Return the position MARKER points at, as a character number.
130 Returns `nil' if marker doesn't point anywhere. 129 Returns `nil' if marker doesn't point anywhere.
131 */ ) 130 */
132 (marker) 131 (marker))
133 Lisp_Object marker;
134 { 132 {
135 CHECK_MARKER (marker); 133 CHECK_MARKER (marker);
136 if (XMARKER (marker)->buffer) 134 if (XMARKER (marker)->buffer)
137 { 135 {
138 return (make_int (marker_position (marker))); 136 return (make_int (marker_position (marker)));
259 257
260 return marker; 258 return marker;
261 } 259 }
262 260
263 261
264 DEFUN ("set-marker", Fset_marker, Sset_marker, 2, 3, 0 /* 262 DEFUN ("set-marker", Fset_marker, 2, 3, 0, /*
265 Position MARKER before character number NUMBER in BUFFER. 263 Position MARKER before character number NUMBER in BUFFER.
266 BUFFER defaults to the current buffer. 264 BUFFER defaults to the current buffer.
267 If NUMBER is nil, makes marker point nowhere. 265 If NUMBER is nil, makes marker point nowhere.
268 Then it no longer slows down editing in any buffer. 266 Then it no longer slows down editing in any buffer.
269 If this marker was returned by (point-marker t), then changing its position 267 If this marker was returned by (point-marker t), then changing its position
270 moves point. You cannot change its buffer or make it point nowhere. 268 moves point. You cannot change its buffer or make it point nowhere.
271 Returns MARKER. 269 Returns MARKER.
272 */ ) 270 */
273 (marker, number, buffer) 271 (marker, number, buffer))
274 Lisp_Object marker, number, buffer;
275 { 272 {
276 return set_marker_internal (marker, number, buffer, 0); 273 return set_marker_internal (marker, number, buffer, 0);
277 } 274 }
278 275
279 276
397 } 394 }
398 395
399 RETURN_NOT_REACHED (Qnil) /* not reached */ 396 RETURN_NOT_REACHED (Qnil) /* not reached */
400 } 397 }
401 398
402 DEFUN ("copy-marker", Fcopy_marker, Scopy_marker, 1, 2, 0 /* 399 DEFUN ("copy-marker", Fcopy_marker, 1, 2, 0, /*
403 Return a new marker pointing at the same place as MARKER. 400 Return a new marker pointing at the same place as MARKER.
404 If argument is a number, makes a new marker pointing 401 If argument is a number, makes a new marker pointing
405 at that position in the current buffer. 402 at that position in the current buffer.
406 The optional argument TYPE specifies the insertion type of the new marker; 403 The optional argument TYPE specifies the insertion type of the new marker;
407 see `marker-insertion-type'. 404 see `marker-insertion-type'.
408 */ ) 405 */
409 (marker, type) 406 (marker, type))
410 Lisp_Object marker, type;
411 { 407 {
412 return copy_marker_1 (marker, type, 0); 408 return copy_marker_1 (marker, type, 0);
413 } 409 }
414 410
415 Lisp_Object 411 Lisp_Object
416 noseeum_copy_marker (Lisp_Object marker, Lisp_Object type) 412 noseeum_copy_marker (Lisp_Object marker, Lisp_Object type)
417 { 413 {
418 return copy_marker_1 (marker, type, 1); 414 return copy_marker_1 (marker, type, 1);
419 } 415 }
420 416
421 DEFUN ("marker-insertion-type", Fmarker_insertion_type, 417 DEFUN ("marker-insertion-type", Fmarker_insertion_type, 1, 1, 0, /*
422 Smarker_insertion_type, 1, 1, 0 /*
423 Return insertion type of MARKER: t if it stays after inserted text. 418 Return insertion type of MARKER: t if it stays after inserted text.
424 nil means the marker stays before text inserted there. 419 nil means the marker stays before text inserted there.
425 */ ) 420 */
426 (marker) 421 (marker))
427 register Lisp_Object marker;
428 { 422 {
429 CHECK_MARKER (marker); 423 CHECK_MARKER (marker);
430 return XMARKER (marker)->insertion_type ? Qt : Qnil; 424 return XMARKER (marker)->insertion_type ? Qt : Qnil;
431 } 425 }
432 426
433 DEFUN ("set-marker-insertion-type", Fset_marker_insertion_type, 427 DEFUN ("set-marker-insertion-type", Fset_marker_insertion_type, 2, 2, 0, /*
434 Sset_marker_insertion_type, 2, 2, 0 /*
435 Set the insertion-type of MARKER to TYPE. 428 Set the insertion-type of MARKER to TYPE.
436 If TYPE is t, it means the marker advances when you insert text at it. 429 If TYPE is t, it means the marker advances when you insert text at it.
437 If TYPE is nil, it means the marker stays behind when you insert text at it. 430 If TYPE is nil, it means the marker stays behind when you insert text at it.
438 */ ) 431 */
439 (marker, type) 432 (marker, type))
440 Lisp_Object marker, type;
441 { 433 {
442 CHECK_MARKER (marker); 434 CHECK_MARKER (marker);
443 435
444 XMARKER (marker)->insertion_type = ! NILP (type); 436 XMARKER (marker)->insertion_type = ! NILP (type);
445 return type; 437 return type;
468 460
469 461
470 void 462 void
471 syms_of_marker (void) 463 syms_of_marker (void)
472 { 464 {
473 defsubr (&Smarker_position); 465 DEFSUBR (Fmarker_position);
474 defsubr (&Smarker_buffer); 466 DEFSUBR (Fmarker_buffer);
475 defsubr (&Sset_marker); 467 DEFSUBR (Fset_marker);
476 defsubr (&Scopy_marker); 468 DEFSUBR (Fcopy_marker);
477 defsubr (&Smarker_insertion_type); 469 DEFSUBR (Fmarker_insertion_type);
478 defsubr (&Sset_marker_insertion_type); 470 DEFSUBR (Fset_marker_insertion_type);
479 } 471 }
480 472
481 void init_buffer_markers (struct buffer *b); 473 void init_buffer_markers (struct buffer *b);
482 void 474 void
483 init_buffer_markers (struct buffer *b) 475 init_buffer_markers (struct buffer *b)