summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog40
-rw-r--r--src/character.c28
-rw-r--r--src/character.h8
-rw-r--r--src/composite.c32
-rw-r--r--src/composite.h11
-rw-r--r--src/editfns.c9
-rw-r--r--src/intervals.c3
-rw-r--r--src/intervals.h2
-rw-r--r--src/lisp.h2
-rw-r--r--src/xdisp.c30
10 files changed, 103 insertions, 62 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 04f35d36ecf..f532a6c19f4 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,17 +1,44 @@
2010-09-23 Eli Zaretskii <eliz@gnu.org>
- * font.c (font_intern_prop): Use EMACS_INT for string length
- variables.
+ * xdisp.c (check_point_in_composition, reconsider_clip_changes):
+ Use EMACS_INT for buffer position variables and arguments.
+
+ * composite.c (get_composition_id, find_composition)
+ (run_composition_function, compose_text)
+ (composition_gstring_width, autocmp_chars)
+ (composition_update_it, Ffind_composition_internal): Use EMACS_INT
+ for buffer positions and string length variables and arguments.
+
+ * composite.h (get_composition_id, find_composition, compose_text)
+ (composition_gstring_width): Adjust prototypes.
+
+ * editfns.c (Fformat): Use EMACS_INT for string size variables.
+
+ * xdisp.c (store_mode_line_noprop, display_mode_element): Use
+ EMACS_INT for string positions.
+
+ * intervals.c (get_property_and_range): Use EMACS_INT for buffer
+ position arguments.
+
+ * intervals.h (get_property_and_range): Adjust prototype.
* character.c (parse_str_as_multibyte, str_as_multibyte)
(parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
- (string_count_byte8, string_escape_byte8): Use EMACS_INT for
- string length arguments, variables, and return values.
+ (string_count_byte8, string_escape_byte8, c_string_width)
+ (strwidth, lisp_string_width, multibyte_chars_in_text): Use
+ EMACS_INT for string length variables and arguments.
* character.h (parse_str_as_multibyte, str_as_multibyte)
- (parse_str_to_multibyte, str_to_multibyte, str_as_unibyte): Adjust
+ (parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
+ (c_string_width, strwidth, lisp_string_width): Adjust
prototypes.
+ * font.c (font_intern_prop): Use EMACS_INT for string length
+ variables.
+
+ * font.c (font_intern_prop): Use EMACS_INT for string length
+ variables.
+
* fns.c (Fstring_as_multibyte): Use EMACS_INT for string length
variables.
@@ -33,7 +60,8 @@
* lisp.h (make_string, make_unibyte_string, make_multibyte_string)
(make_string_from_bytes, make_specified_string_string)
- (make_pure_string, string_bytes): Adjust prototypes.
+ (make_pure_string, string_bytes, check_point_in_composition):
+ Adjust prototypes.
2010-09-22 Eli Zaretskii <eliz@gnu.org>
diff --git a/src/character.c b/src/character.c
index 90f6be10067..d80f8139486 100644
--- a/src/character.c
+++ b/src/character.c
@@ -378,11 +378,12 @@ usage: (char-width CHAR) */)
characters and bytes of the substring in *NCHARS and *NBYTES
respectively. */
-int
-c_string_width (const unsigned char *str, int len, int precision, int *nchars, int *nbytes)
+EMACS_INT
+c_string_width (const unsigned char *str, EMACS_INT len, int precision,
+ EMACS_INT *nchars, EMACS_INT *nbytes)
{
- int i = 0, i_byte = 0;
- int width = 0;
+ EMACS_INT i = 0, i_byte = 0;
+ EMACS_INT width = 0;
struct Lisp_Char_Table *dp = buffer_display_table ();
while (i_byte < len)
@@ -429,8 +430,8 @@ c_string_width (const unsigned char *str, int len, int precision, int *nchars, i
current buffer. The width is measured by how many columns it
occupies on the screen. */
-int
-strwidth (const unsigned char *str, int len)
+EMACS_INT
+strwidth (const unsigned char *str, EMACS_INT len)
{
return c_string_width (str, len, -1, NULL, NULL);
}
@@ -442,17 +443,18 @@ strwidth (const unsigned char *str, int len)
PRECISION, and set number of characters and bytes of the substring
in *NCHARS and *NBYTES respectively. */
-int
-lisp_string_width (Lisp_Object string, int precision, int *nchars, int *nbytes)
+EMACS_INT
+lisp_string_width (Lisp_Object string, int precision,
+ EMACS_INT *nchars, EMACS_INT *nbytes)
{
- int len = SCHARS (string);
+ EMACS_INT len = SCHARS (string);
/* This set multibyte to 0 even if STRING is multibyte when it
contains only ascii and eight-bit-graphic, but that's
intentional. */
int multibyte = len < SBYTES (string);
unsigned char *str = SDATA (string);
- int i = 0, i_byte = 0;
- int width = 0;
+ EMACS_INT i = 0, i_byte = 0;
+ EMACS_INT width = 0;
struct Lisp_Char_Table *dp = buffer_display_table ();
while (i < len)
@@ -570,11 +572,11 @@ EMACS_INT
multibyte_chars_in_text (const unsigned char *ptr, EMACS_INT nbytes)
{
const unsigned char *endp = ptr + nbytes;
- int chars = 0;
+ EMACS_INT chars = 0;
while (ptr < endp)
{
- int len = MULTIBYTE_LENGTH (ptr, endp);
+ EMACS_INT len = MULTIBYTE_LENGTH (ptr, endp);
if (len == 0)
abort ();
diff --git a/src/character.h b/src/character.h
index cbc4d6b3121..aea1a47a1f6 100644
--- a/src/character.h
+++ b/src/character.h
@@ -612,9 +612,11 @@ extern EMACS_INT str_to_multibyte (unsigned char *, EMACS_INT, EMACS_INT);
extern EMACS_INT str_as_unibyte (unsigned char *, EMACS_INT);
extern EMACS_INT str_to_unibyte (const unsigned char *, unsigned char *,
EMACS_INT, int);
-extern int strwidth (const unsigned char *, int);
-extern int c_string_width (const unsigned char *, int, int, int *, int *);
-extern int lisp_string_width (Lisp_Object, int, int *, int *);
+extern EMACS_INT strwidth (const unsigned char *, EMACS_INT);
+extern EMACS_INT c_string_width (const unsigned char *, EMACS_INT, int,
+ EMACS_INT *, EMACS_INT *);
+extern EMACS_INT lisp_string_width (Lisp_Object, int,
+ EMACS_INT *, EMACS_INT *);
extern Lisp_Object Vprintable_chars;
diff --git a/src/composite.c b/src/composite.c
index bc5a67ef6e2..8849f5274b0 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -180,7 +180,8 @@ Lisp_Object composition_temp;
If the composition is invalid, return -1. */
int
-get_composition_id (int charpos, int bytepos, int nchars, Lisp_Object prop, Lisp_Object string)
+get_composition_id (EMACS_INT charpos, EMACS_INT bytepos, EMACS_INT nchars,
+ Lisp_Object prop, Lisp_Object string)
{
Lisp_Object id, length, components, key, *key_contents;
int glyph_len;
@@ -188,7 +189,8 @@ get_composition_id (int charpos, int bytepos, int nchars, Lisp_Object prop, Lisp
int hash_index;
unsigned hash_code;
struct composition *cmp;
- int i, ch;
+ EMACS_INT i;
+ int ch;
/* PROP should be
Form-A: ((LENGTH . COMPONENTS) . MODIFICATION-FUNC)
@@ -290,7 +292,7 @@ get_composition_id (int charpos, int bytepos, int nchars, Lisp_Object prop, Lisp
&& VECTORP (AREF (components, 0)))
{
/* COMPONENTS is a glyph-string. */
- int len = ASIZE (key);
+ EMACS_UINT len = ASIZE (key);
for (i = 1; i < len; i++)
if (! VECTORP (AREF (key, i)))
@@ -298,7 +300,7 @@ get_composition_id (int charpos, int bytepos, int nchars, Lisp_Object prop, Lisp
}
else if (VECTORP (components) || CONSP (components))
{
- int len = XVECTOR (key)->size;
+ EMACS_UINT len = XVECTOR (key)->size;
/* The number of elements should be odd. */
if ((len % 2) == 0)
@@ -427,7 +429,9 @@ get_composition_id (int charpos, int bytepos, int nchars, Lisp_Object prop, Lisp
This doesn't check the validity of composition. */
int
-find_composition (int pos, int limit, EMACS_INT *start, EMACS_INT *end, Lisp_Object *prop, Lisp_Object object)
+find_composition (EMACS_INT pos, EMACS_INT limit,
+ EMACS_INT *start, EMACS_INT *end,
+ Lisp_Object *prop, Lisp_Object object)
{
Lisp_Object val;
@@ -465,7 +469,7 @@ find_composition (int pos, int limit, EMACS_INT *start, EMACS_INT *end, Lisp_Obj
FROM and TO with property PROP. */
static void
-run_composition_function (int from, int to, Lisp_Object prop)
+run_composition_function (EMACS_INT from, EMACS_INT to, Lisp_Object prop)
{
Lisp_Object func;
EMACS_INT start, end;
@@ -628,7 +632,8 @@ make_composition_value_copy (Lisp_Object list)
indices START and END in STRING. */
void
-compose_text (int start, int end, Lisp_Object components, Lisp_Object modification_func, Lisp_Object string)
+compose_text (EMACS_INT start, EMACS_INT end, Lisp_Object components,
+ Lisp_Object modification_func, Lisp_Object string)
{
Lisp_Object prop;
@@ -735,7 +740,8 @@ composition_gstring_p (Lisp_Object gstring)
}
int
-composition_gstring_width (Lisp_Object gstring, int from, int to, struct font_metrics *metrics)
+composition_gstring_width (Lisp_Object gstring, EMACS_INT from, EMACS_INT to,
+ struct font_metrics *metrics)
{
Lisp_Object *glyph;
int width = 0;
@@ -907,7 +913,7 @@ autocmp_chars (Lisp_Object rule, EMACS_INT charpos, EMACS_INT bytepos, EMACS_INT
EMACS_INT to;
EMACS_INT pt = PT, pt_byte = PT_BYTE;
Lisp_Object re, font_object, lgstring;
- int len;
+ EMACS_INT len;
record_unwind_save_match_data ();
re = AREF (rule, 0);
@@ -1397,7 +1403,7 @@ composition_update_it (struct composition_it *cmp_it, EMACS_INT charpos, EMACS_I
/* automatic composition */
Lisp_Object gstring = composition_gstring_from_id (cmp_it->id);
Lisp_Object glyph;
- int from, to;
+ EMACS_INT from;
if (cmp_it->nglyphs == 0)
{
@@ -1879,9 +1885,9 @@ See `find-composition' for more details. */)
id = COMPOSITION_ID (prop);
else
{
- int start_byte = (NILP (string)
- ? CHAR_TO_BYTE (start)
- : string_char_to_byte (string, start));
+ EMACS_INT start_byte = (NILP (string)
+ ? CHAR_TO_BYTE (start)
+ : string_char_to_byte (string, start));
id = get_composition_id (start, start_byte, end - start, prop, string);
}
diff --git a/src/composite.h b/src/composite.h
index 554ab554115..157d90caf05 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -212,15 +212,16 @@ extern Lisp_Object Vauto_composition_function;
extern Lisp_Object Qauto_composition_function;
extern Lisp_Object Vcomposition_function_table;
-extern int get_composition_id (int, int, int, Lisp_Object, Lisp_Object);
-extern int find_composition (int, int, EMACS_INT *, EMACS_INT *, Lisp_Object *,
- Lisp_Object);
+extern int get_composition_id (EMACS_INT, EMACS_INT, EMACS_INT,
+ Lisp_Object, Lisp_Object);
+extern int find_composition (EMACS_INT, EMACS_INT, EMACS_INT *, EMACS_INT *,
+ Lisp_Object *, Lisp_Object);
extern void update_compositions (EMACS_INT, EMACS_INT, int);
extern void make_composition_value_copy (Lisp_Object);
extern void compose_region (int, int, Lisp_Object, Lisp_Object,
Lisp_Object);
extern void syms_of_composite (void);
-extern void compose_text (int, int, Lisp_Object, Lisp_Object,
+extern void compose_text (EMACS_INT, EMACS_INT, Lisp_Object, Lisp_Object,
Lisp_Object);
/* Macros for lispy glyph-string. This is completely different from
@@ -306,7 +307,7 @@ struct font_metrics;
extern Lisp_Object composition_gstring_put_cache (Lisp_Object, int);
extern Lisp_Object composition_gstring_from_id (int);
extern int composition_gstring_p (Lisp_Object);
-extern int composition_gstring_width (Lisp_Object, int, int,
+extern int composition_gstring_width (Lisp_Object, EMACS_INT, EMACS_INT,
struct font_metrics *);
extern void composition_compute_stop_pos (struct composition_it *,
diff --git a/src/editfns.c b/src/editfns.c
index 8822dec5101..33bd793a17d 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -3609,7 +3609,7 @@ usage: (format STRING &rest OBJECTS) */)
if (*format++ == '%')
{
int thissize = 0;
- int actual_width = 0;
+ EMACS_INT actual_width = 0;
unsigned char *this_format_start = format - 1;
int field_width = 0;
@@ -3851,8 +3851,8 @@ usage: (format STRING &rest OBJECTS) */)
/* handle case (precision[n] >= 0) */
int width, padding;
- int nbytes, start, end;
- int nchars_string;
+ EMACS_INT nbytes, start, end;
+ EMACS_INT nchars_string;
/* lisp_string_width ignores a precision of 0, but GNU
libc functions print 0 characters when the precision
@@ -3863,7 +3863,8 @@ usage: (format STRING &rest OBJECTS) */)
if (precision[n] == 0)
width = nchars_string = nbytes = 0;
else if (precision[n] > 0)
- width = lisp_string_width (args[n], precision[n], &nchars_string, &nbytes);
+ width = lisp_string_width (args[n], precision[n],
+ &nchars_string, &nbytes);
else
{ /* no precision spec given for this argument */
width = lisp_string_width (args[n], -1, NULL, NULL);
diff --git a/src/intervals.c b/src/intervals.c
index 86cbe1effcc..4d7d92fb70a 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -2246,7 +2246,8 @@ move_if_not_intangible (int position)
nil means the current buffer. */
int
-get_property_and_range (int pos, Lisp_Object prop, Lisp_Object *val, EMACS_INT *start, EMACS_INT *end, Lisp_Object object)
+get_property_and_range (EMACS_INT pos, Lisp_Object prop, Lisp_Object *val,
+ EMACS_INT *start, EMACS_INT *end, Lisp_Object object)
{
INTERVAL i, prev, next;
diff --git a/src/intervals.h b/src/intervals.h
index 612c1a99848..3430804660b 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -276,7 +276,7 @@ extern int compare_string_intervals (Lisp_Object, Lisp_Object);
extern Lisp_Object textget (Lisp_Object, Lisp_Object);
extern Lisp_Object lookup_char_property (Lisp_Object, Lisp_Object, int);
extern void move_if_not_intangible (int);
-extern int get_property_and_range (int, Lisp_Object, Lisp_Object *,
+extern int get_property_and_range (EMACS_INT, Lisp_Object, Lisp_Object *,
EMACS_INT *, EMACS_INT *, Lisp_Object);
extern Lisp_Object get_local_map (int, struct buffer *, Lisp_Object);
extern INTERVAL update_interval (INTERVAL, int);
diff --git a/src/lisp.h b/src/lisp.h
index f36d1836110..3633b3bc855 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2673,7 +2673,7 @@ extern void update_echo_area (void);
extern void truncate_echo_area (int);
extern void redisplay (void);
extern int check_point_in_composition
- (struct buffer *, int, struct buffer *, int);
+ (struct buffer *, EMACS_INT, struct buffer *, EMACS_INT);
extern void redisplay_preserve_echo_area (int);
extern void prepare_menu_bars (void);
diff --git a/src/xdisp.c b/src/xdisp.c
index be6ff1254eb..d55e736f162 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -9628,7 +9628,7 @@ static int
store_mode_line_noprop (const unsigned char *str, int field_width, int precision)
{
int n = 0;
- int dummy, nbytes;
+ EMACS_INT dummy, nbytes;
/* Copy at most PRECISION chars from STR. */
nbytes = strlen (str);
@@ -11378,8 +11378,8 @@ overlay_arrow_at_row (struct it *it, struct glyph_row *row)
position. BUF and PT are the current point buffer and position. */
int
-check_point_in_composition (struct buffer *prev_buf, int prev_pt,
- struct buffer *buf, int pt)
+check_point_in_composition (struct buffer *prev_buf, EMACS_INT prev_pt,
+ struct buffer *buf, EMACS_INT pt)
{
EMACS_INT start, end;
Lisp_Object prop;
@@ -11432,7 +11432,7 @@ reconsider_clip_changes (struct window *w, struct buffer *b)
if (!b->clip_changed
&& BUFFERP (w->buffer) && !NILP (w->window_end_valid))
{
- int pt;
+ EMACS_INT pt;
if (w == XWINDOW (selected_window))
pt = BUF_PT (current_buffer);
@@ -18377,7 +18377,7 @@ display_mode_element (struct it *it, int depth, int field_width, int precision,
{
/* A string: output it and check for %-constructs within it. */
unsigned char c;
- int offset = 0;
+ EMACS_INT offset = 0;
if (SCHARS (elt) > 0
&& (!NILP (props) || risky))
@@ -18474,7 +18474,7 @@ display_mode_element (struct it *it, int depth, int field_width, int precision,
&& (mode_line_target != MODE_LINE_DISPLAY
|| it->current_x < it->last_visible_x))
{
- int last_offset = offset;
+ EMACS_INT last_offset = offset;
/* Advance to end of string or next format specifier. */
while ((c = SREF (elt, offset++)) != '\0' && c != '%')
@@ -18482,7 +18482,7 @@ display_mode_element (struct it *it, int depth, int field_width, int precision,
if (offset - 1 != last_offset)
{
- int nchars, nbytes;
+ EMACS_INT nchars, nbytes;
/* Output to end of string or up to '%'. Field width
is length of string. Don't output more than
@@ -18501,11 +18501,11 @@ display_mode_element (struct it *it, int depth, int field_width, int precision,
break;
case MODE_LINE_STRING:
{
- int bytepos = last_offset;
- int charpos = string_byte_to_char (elt, bytepos);
- int endpos = (precision <= 0
- ? string_byte_to_char (elt, offset)
- : charpos + nchars);
+ EMACS_INT bytepos = last_offset;
+ EMACS_INT charpos = string_byte_to_char (elt, bytepos);
+ EMACS_INT endpos = (precision <= 0
+ ? string_byte_to_char (elt, offset)
+ : charpos + nchars);
n += store_mode_line_string (NULL,
Fsubstring (elt, make_number (charpos),
@@ -18515,8 +18515,8 @@ display_mode_element (struct it *it, int depth, int field_width, int precision,
break;
case MODE_LINE_DISPLAY:
{
- int bytepos = last_offset;
- int charpos = string_byte_to_char (elt, bytepos);
+ EMACS_INT bytepos = last_offset;
+ EMACS_INT charpos = string_byte_to_char (elt, bytepos);
if (precision <= 0)
nchars = string_byte_to_char (elt, offset) - charpos;
@@ -18529,7 +18529,7 @@ display_mode_element (struct it *it, int depth, int field_width, int precision,
}
else /* c == '%' */
{
- int percent_position = offset;
+ EMACS_INT percent_position = offset;
/* Get the specified minimum width. Zero means
don't pad. */