diff src/lisp.h @ 2:ac2d302a0011 r19-15b2

Import from CVS: tag r19-15b2
author cvs
date Mon, 13 Aug 2007 08:46:35 +0200
parents 376386a54a3c
children 9ee227acff29
line wrap: on
line diff
--- a/src/lisp.h	Mon Aug 13 08:45:53 2007 +0200
+++ b/src/lisp.h	Mon Aug 13 08:46:35 2007 +0200
@@ -649,7 +649,7 @@
 /* unsafe! */
 #define POINTER_TYPE_P(type) ((type) != Lisp_Int)
 
-/* This should be the underlying type intowhich a Lisp_Object must fit.
+/* This should be the underlying type into which a Lisp_Object must fit.
    In a strict ANSI world, this must be `int', since ANSI says you can't
    use bitfields on any type other than `int'.  However, on a machine
    where `int' and `long' are not the same size, this should be the
@@ -820,7 +820,7 @@
 #ifdef LRECORD_STRING
   struct lrecord_header lheader;
 #endif
-  long _size;
+  Bytecount _size;
   Bufbyte *_data;
   Lisp_Object plist;
 };
@@ -852,8 +852,11 @@
 # define charcount_to_bytecount(ptr, len) (len)
 
 #define string_length(s) ((s)->_size)
+#define XSTRING_length(s) string_length (XSTRING (s))
 #define string_data(s) ((s)->_data + 0)
+#define XSTRING_data(s) string_data (XSTRING (s))
 #define string_byte(s, i) ((s)->_data[i] + 0)
+#define XSTRING_byte(s, i) string_byte (XSTRING (s), i)
 #define string_byte_addr(s, i) (&((s)->_data[i]))
 #define set_string_length(s, len) do { (s)->_size = (len); } while (0)
 #define set_string_data(s, ptr) do { (s)->_data = (ptr); } while (0)
@@ -876,7 +879,7 @@
 #endif
   long size;
   /* next is now chained through v->contents[size], terminated by Qzero.
-   * This means that pure vectors don't need a "next" */
+     This means that pure vectors don't need a "next" */
   /* struct Lisp_Vector *next; */
   Lisp_Object contents[1];
 };