changeset 91807:507bcfb4342c

* coding.c (coding_set_destination): Use BEG_BYTE rather than hardcoding 1. (detect_coding_system): * lisp.h (detect_coding_system, chars_in_text, multibyte_chars_in_text) (string_char_to_byte, string_byte_to_char, insert_from_gap): * insdel.c (insert_from_gap): * fns.c (string_char_byte_cache_charpos, string_char_byte_cache_bytepos) (string_char_to_byte, string_byte_to_char, string_make_multibyte) (string_to_multibyte): * character.c (chars_in_text, multibyte_chars_in_text): * fileio.c (Finsert_file_contents): Use EMACS_INT for buffer positions.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 12 Feb 2008 21:35:15 +0000
parents 6c0a55931b1c
children 72f7da265a92
files src/ChangeLog src/character.c src/coding.c src/fileio.c src/fns.c src/insdel.c src/lisp.h
diffstat 7 files changed, 49 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Feb 12 21:29:33 2008 +0000
+++ b/src/ChangeLog	Tue Feb 12 21:35:15 2008 +0000
@@ -1,5 +1,16 @@
 2008-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* coding.c (coding_set_destination): Use BEG_BYTE rather than hardcoding 1.
+	(detect_coding_system):
+	* lisp.h (detect_coding_system, chars_in_text, multibyte_chars_in_text)
+	(string_char_to_byte, string_byte_to_char, insert_from_gap):
+	* insdel.c (insert_from_gap):
+	* fns.c (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
+	(string_char_to_byte, string_byte_to_char, string_make_multibyte)
+	(string_to_multibyte):
+	* character.c (chars_in_text, multibyte_chars_in_text):
+	* fileio.c (Finsert_file_contents): Use EMACS_INT for buffer positions.
+
 	* character.h (FETCH_STRING_CHAR_ADVANCE)
 	(FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
 	(FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Use SDATA and SREF.
--- a/src/character.c	Tue Feb 12 21:29:33 2008 +0000
+++ b/src/character.c	Tue Feb 12 21:35:15 2008 +0000
@@ -568,10 +568,10 @@
    However, if the current buffer has enable-multibyte-characters =
    nil, we treat each byte as a character.  */
 
-int
+EMACS_INT
 chars_in_text (ptr, nbytes)
      const unsigned char *ptr;
-     int nbytes;
+     EMACS_INT nbytes;
 {
   /* current_buffer is null at early stages of Emacs initialization.  */
   if (current_buffer == 0
@@ -586,10 +586,10 @@
    sequences while assuming that there's no invalid sequence.  It
    ignores enable-multibyte-characters.  */
 
-int
+EMACS_INT
 multibyte_chars_in_text (ptr, nbytes)
      const unsigned char *ptr;
-     int nbytes;
+     EMACS_INT nbytes;
 {
   const unsigned char *endp = ptr + nbytes;
   int chars = 0;
--- a/src/coding.c	Tue Feb 12 21:29:33 2008 +0000
+++ b/src/coding.c	Tue Feb 12 21:35:15 2008 +0000
@@ -999,7 +999,7 @@
     {
       if (coding->src_pos < 0)
 	{
-	  coding->destination = BEG_ADDR + coding->dst_pos_byte - 1;
+	  coding->destination = BEG_ADDR + coding->dst_pos_byte - BEG_BYTE;
 	  coding->dst_bytes = (GAP_END_ADDR
 			       - (coding->src_bytes - coding->consumed)
 			       - coding->destination);
@@ -1009,7 +1009,7 @@
 	  /* We are sure that coding->dst_pos_byte is before the gap
 	     of the buffer. */
 	  coding->destination = (BUF_BEG_ADDR (XBUFFER (coding->dst_object))
-				 + coding->dst_pos_byte - 1);
+				 + coding->dst_pos_byte - BEG_BYTE);
 	  coding->dst_bytes = (BUF_GAP_END_ADDR (XBUFFER (coding->dst_object))
 			       - coding->destination);
 	}
@@ -7329,7 +7329,8 @@
 detect_coding_system (src, src_chars, src_bytes, highest, multibytep,
 		      coding_system)
      const unsigned char *src;
-     int src_chars, src_bytes, highest;
+     EMACS_INT src_chars, src_bytes;
+     int highest;
      int multibytep;
      Lisp_Object coding_system;
 {
--- a/src/fileio.c	Tue Feb 12 21:29:33 2008 +0000
+++ b/src/fileio.c	Tue Feb 12 21:35:15 2008 +0000
@@ -4183,12 +4183,12 @@
      in a more optimized way.  */
   if (!NILP (replace) && ! replace_handled && BEGV < ZV)
     {
-      int same_at_start = BEGV_BYTE;
-      int same_at_end = ZV_BYTE;
-      int same_at_start_charpos;
-      int inserted_chars;
-      int overlap;
-      int bufpos;
+      EMACS_INT same_at_start = BEGV_BYTE;
+      EMACS_INT same_at_end = ZV_BYTE;
+      EMACS_INT same_at_start_charpos;
+      EMACS_INT inserted_chars;
+      EMACS_INT overlap;
+      EMACS_INT bufpos;
       unsigned char *decoded;
       int temp;
       int this_count = SPECPDL_INDEX ();
--- a/src/fns.c	Tue Feb 12 21:29:33 2008 +0000
+++ b/src/fns.c	Tue Feb 12 21:35:15 2008 +0000
@@ -786,8 +786,8 @@
 }
 
 static Lisp_Object string_char_byte_cache_string;
-static int string_char_byte_cache_charpos;
-static int string_char_byte_cache_bytepos;
+static EMACS_INT string_char_byte_cache_charpos;
+static EMACS_INT string_char_byte_cache_bytepos;
 
 void
 clear_string_char_byte_cache ()
@@ -795,16 +795,16 @@
   string_char_byte_cache_string = Qnil;
 }
 
-/* Return the character index corresponding to CHAR_INDEX in STRING.  */
-
-int
+/* Return the byte index corresponding to CHAR_INDEX in STRING.  */
+
+EMACS_INT
 string_char_to_byte (string, char_index)
      Lisp_Object string;
-     int char_index;
+     EMACS_INT char_index;
 {
-  int i_byte;
-  int best_below, best_below_byte;
-  int best_above, best_above_byte;
+  EMACS_INT i_byte;
+  EMACS_INT best_below, best_below_byte;
+  EMACS_INT best_above, best_above_byte;
 
   best_below = best_below_byte = 0;
   best_above = SCHARS (string);
@@ -859,14 +859,14 @@
 
 /* Return the character index corresponding to BYTE_INDEX in STRING.  */
 
-int
+EMACS_INT
 string_byte_to_char (string, byte_index)
      Lisp_Object string;
-     int byte_index;
+     EMACS_INT byte_index;
 {
-  int i, i_byte;
-  int best_below, best_below_byte;
-  int best_above, best_above_byte;
+  EMACS_INT i, i_byte;
+  EMACS_INT best_below, best_below_byte;
+  EMACS_INT best_above, best_above_byte;
 
   best_below = best_below_byte = 0;
   best_above = SCHARS (string);
@@ -930,7 +930,7 @@
      Lisp_Object string;
 {
   unsigned char *buf;
-  int nbytes;
+  EMACS_INT nbytes;
   Lisp_Object ret;
   USE_SAFE_ALLOCA;
 
@@ -964,7 +964,7 @@
      Lisp_Object string;
 {
   unsigned char *buf;
-  int nbytes;
+  EMACS_INT nbytes;
   Lisp_Object ret;
   USE_SAFE_ALLOCA;
 
--- a/src/insdel.c	Tue Feb 12 21:29:33 2008 +0000
+++ b/src/insdel.c	Tue Feb 12 21:35:15 2008 +0000
@@ -1172,7 +1172,7 @@
 
 void
 insert_from_gap (nchars, nbytes)
-     register int nchars, nbytes;
+     register EMACS_INT nchars, nbytes;
 {
   if (NILP (current_buffer->enable_multibyte_characters))
     nchars = nbytes;
--- a/src/lisp.h	Tue Feb 12 21:29:33 2008 +0000
+++ b/src/lisp.h	Tue Feb 12 21:35:15 2008 +0000
@@ -2281,8 +2281,8 @@
 EXFUN (Fupdate_coding_systems_internal, 0);
 EXFUN (Fencode_coding_string, 4);
 EXFUN (Fdecode_coding_string, 4);
-extern Lisp_Object detect_coding_system P_ ((const unsigned char *, int,
-					     int, int, int, Lisp_Object));
+extern Lisp_Object detect_coding_system P_ ((const unsigned char *, EMACS_INT,
+					     EMACS_INT, int, int, Lisp_Object));
 extern void init_coding P_ ((void));
 extern void init_coding_once P_ ((void));
 extern void syms_of_coding P_ ((void));
@@ -2296,8 +2296,8 @@
 EXFUN (Fchar_bytes, 1);
 EXFUN (Fchar_width, 1);
 EXFUN (Fstring, MANY);
-extern int chars_in_text P_ ((const unsigned char *, int));
-extern int multibyte_chars_in_text P_ ((const unsigned char *, int));
+extern EMACS_INT chars_in_text P_ ((const unsigned char *, EMACS_INT));
+extern EMACS_INT multibyte_chars_in_text P_ ((const unsigned char *, EMACS_INT));
 extern int multibyte_char_to_unibyte P_ ((int, Lisp_Object));
 extern int multibyte_char_to_unibyte_safe P_ ((int));
 extern Lisp_Object Qcharset;
@@ -2403,8 +2403,8 @@
 extern Lisp_Object assq_no_quit P_ ((Lisp_Object, Lisp_Object));
 extern Lisp_Object assoc_no_quit P_ ((Lisp_Object, Lisp_Object));
 extern void clear_string_char_byte_cache P_ ((void));
-extern int string_char_to_byte P_ ((Lisp_Object, int));
-extern int string_byte_to_char P_ ((Lisp_Object, int));
+extern EMACS_INT string_char_to_byte P_ ((Lisp_Object, EMACS_INT));
+extern EMACS_INT string_byte_to_char P_ ((Lisp_Object, EMACS_INT));
 extern Lisp_Object string_make_multibyte P_ ((Lisp_Object));
 extern Lisp_Object string_to_multibyte P_ ((Lisp_Object));
 extern Lisp_Object string_make_unibyte P_ ((Lisp_Object));
@@ -2448,7 +2448,7 @@
 extern void insert_and_inherit P_ ((const unsigned char *, int));
 extern void insert_1 P_ ((const unsigned char *, int, int, int, int));
 extern void insert_1_both P_ ((const unsigned char *, int, int, int, int, int));
-extern void insert_from_gap P_ ((int, int));
+extern void insert_from_gap P_ ((EMACS_INT, EMACS_INT));
 extern void insert_from_string P_ ((Lisp_Object, int, int, int, int, int));
 extern void insert_from_buffer P_ ((struct buffer *, int, int, int));
 extern void insert_char P_ ((int));