Mercurial > hg > xemacs-beta
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) |