X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmarker.c;h=0811ac03a337b91c59f279b9620db1c4356a39db;hb=dbfc38b11cb852dc18107ed3822f6efb13630a8b;hp=5f9db4a94ac985597047819eaf33081bc342d790;hpb=ea1ea793fe6e244ef5555ed983423a204101af13;p=chise%2Fxemacs-chise.git- diff --git a/src/marker.c b/src/marker.c index 5f9db4a..0811ac0 100644 --- a/src/marker.c +++ b/src/marker.c @@ -38,7 +38,7 @@ Boston, MA 02111-1307, USA. */ static Lisp_Object mark_marker (Lisp_Object obj) { - struct Lisp_Marker *marker = XMARKER (obj); + Lisp_Marker *marker = XMARKER (obj); Lisp_Object buf; /* DO NOT mark through the marker's chain. The buffer's markers chain does not preserve markers from gc; @@ -55,7 +55,7 @@ mark_marker (Lisp_Object obj) static void print_marker (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) { - struct Lisp_Marker *marker = XMARKER (obj); + Lisp_Marker *marker = XMARKER (obj); char buf[200]; if (print_readably) @@ -77,8 +77,8 @@ print_marker (Lisp_Object obj, Lisp_Object printcharfun, int escapeflag) static int marker_equal (Lisp_Object obj1, Lisp_Object obj2, int depth) { - struct Lisp_Marker *marker1 = XMARKER (obj1); - struct Lisp_Marker *marker2 = XMARKER (obj2); + Lisp_Marker *marker1 = XMARKER (obj1); + Lisp_Marker *marker2 = XMARKER (obj2); return ((marker1->buffer == marker2->buffer) && (marker1->memind == marker2->memind || @@ -96,14 +96,16 @@ marker_hash (Lisp_Object obj, int depth) } static const struct lrecord_description marker_description[] = { - { XD_LISP_OBJECT, offsetof(struct Lisp_Marker, next), 3 }, + { XD_LISP_OBJECT, offsetof (Lisp_Marker, next) }, + { XD_LISP_OBJECT, offsetof (Lisp_Marker, prev) }, + { XD_LISP_OBJECT, offsetof (Lisp_Marker, buffer) }, { XD_END } }; DEFINE_BASIC_LRECORD_IMPLEMENTATION ("marker", marker, mark_marker, print_marker, 0, marker_equal, marker_hash, marker_description, - struct Lisp_Marker); + Lisp_Marker); /* Operations on markers. */ @@ -140,7 +142,7 @@ Return `nil' if marker doesn't point anywhere. static void check_marker_circularities (struct buffer *buf) { - struct Lisp_Marker *tortoise, *hare; + Lisp_Marker *tortoise, *hare; tortoise = BUF_MARKERS (buf); hare = tortoise; @@ -171,7 +173,7 @@ set_marker_internal (Lisp_Object marker, Lisp_Object pos, Lisp_Object buffer, { Bufpos charno; struct buffer *b; - struct Lisp_Marker *m; + Lisp_Marker *m; int point_p; CHECK_MARKER (marker); @@ -287,7 +289,7 @@ set_marker_restricted (Lisp_Object marker, Lisp_Object pos, Lisp_Object buffer) void unchain_marker (Lisp_Object m) { - struct Lisp_Marker *marker = XMARKER (m); + Lisp_Marker *marker = XMARKER (m); struct buffer *b = marker->buffer; if (b == 0) @@ -314,7 +316,7 @@ unchain_marker (Lisp_Object m) Bytind bi_marker_position (Lisp_Object marker) { - struct Lisp_Marker *m = XMARKER (marker); + Lisp_Marker *m = XMARKER (marker); struct buffer *buf = m->buffer; Bytind pos; @@ -351,7 +353,7 @@ marker_position (Lisp_Object marker) void set_bi_marker_position (Lisp_Object marker, Bytind pos) { - struct Lisp_Marker *m = XMARKER (marker); + Lisp_Marker *m = XMARKER (marker); struct buffer *buf = m->buffer; if (!buf) @@ -458,7 +460,7 @@ Return t if there are markers pointing at POSITION in the current buffer. */ (position)) { - struct Lisp_Marker *marker; + Lisp_Marker *marker; Memind pos; /* A small optimization trick: convert POS to memind now, rather @@ -487,12 +489,12 @@ Return t if there are markers pointing at POSITION in the current buffer. int compute_buffer_marker_usage (struct buffer *b, struct overhead_stats *ovstats) { - struct Lisp_Marker *m; + Lisp_Marker *m; int total = 0; int overhead; for (m = BUF_MARKERS (b); m; m = m->next) - total += sizeof (struct Lisp_Marker); + total += sizeof (Lisp_Marker); ovstats->was_requested += total; overhead = fixed_type_block_overhead (total); /* #### claiming this is all malloc overhead is not really right, @@ -507,6 +509,8 @@ compute_buffer_marker_usage (struct buffer *b, struct overhead_stats *ovstats) void syms_of_marker (void) { + INIT_LRECORD_IMPLEMENTATION (marker); + DEFSUBR (Fmarker_position); DEFSUBR (Fmarker_buffer); DEFSUBR (Fset_marker); @@ -538,7 +542,7 @@ uninit_buffer_markers (struct buffer *b) { /* Unchain all markers of this buffer and leave them pointing nowhere. */ - REGISTER struct Lisp_Marker *m, *next; + REGISTER Lisp_Marker *m, *next; for (m = BUF_MARKERS (b); m; m = next) { m->buffer = 0;