summaryrefslogtreecommitdiff
path: root/src/cmds.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2011-03-06 02:27:06 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2011-03-06 02:27:06 -0800
commit7831777b8a9e8d2f68bd17058359ea8849d66f70 (patch)
tree633cc6fdd638927360ff83619a32def87ed02b4c /src/cmds.c
parent179b8720a2e5c37d18ab8f601b982fdcabd19626 (diff)
downloademacs-7831777b8a9e8d2f68bd17058359ea8849d66f70.tar.gz
current_column: Now returns EMACS_INT, fixing some iftc.
* bytecode.c (Fbyte_code): Don't cast current_column () to int. * cmds.c (internal_self_insert): Likewise. * indent.c (Fcurrent_column): Likewise. * keymap.c (describe_command): Likewise. * minibuf.c (read_minibuf): Likewise. * indent.c (Fcurrent_indentation): Don't cast position_indentation () to int. * xdisp.c (redisplay_internal, redisplay_window, decode_mode_spec): Likewise. * cmds.c (internal_self_insert): Declare locals to be EMACS_INT, not int or double, if they might contain a column number. * indent.c (current_column, Findent_to, indented_beyond_p): (compute_motion, vmotion): Likewise. * keymap.c (describe_command): Likewise. * xdisp.c (pint2str): Likewise. * indent.c (last_known_column): Now EMACS_INT, not int. * minibuf.c (minibuf_prompt_width): Likewise. * indent.c (current_column, current_column_1, position_indentation): Return EMACS_INT, not double. * lisp.h (current_column): Likewise. * indent.c (indented_beyond_p): Last arg is now EMACS_INT, not double. All callers changed. * lisp.h (indented_beyond_p): Likewise.
Diffstat (limited to 'src/cmds.c')
-rw-r--r--src/cmds.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/cmds.c b/src/cmds.c
index 7e0eec99bef..5e6884c0807 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -381,19 +381,22 @@ internal_self_insert (int c, EMACS_INT n)
{
EMACS_INT pos = PT;
EMACS_INT pos_byte = PT_BYTE;
+
+ /* FIXME: Check for integer overflow when calculating
+ target_clm and actual_clm. */
+
/* Column the cursor should be placed at after this insertion.
The correct value should be calculated only when necessary. */
- int target_clm = ((int) current_column () /* iftc */
- + n * (int) XINT (Fchar_width (make_number (c))));
+ EMACS_INT target_clm = (current_column ()
+ + n * XINT (Fchar_width (make_number (c))));
/* The actual cursor position after the trial of moving
to column TARGET_CLM. It is greater than TARGET_CLM
if the TARGET_CLM is middle of multi-column
character. In that case, the new point is set after
that character. */
- int actual_clm
- = (int) XFASTINT (Fmove_to_column (make_number (target_clm),
- Qnil));
+ EMACS_INT actual_clm
+ = XFASTINT (Fmove_to_column (make_number (target_clm), Qnil));
chars_to_delete = PT - pos;