From 71376d4b88555139065d6ac862734d7e5c14f043 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 1 Jan 2013 23:57:00 -0800 Subject: [PATCH] Simplify via eabs. * dired.c (file_name_completion): * doc.c (get_doc_string): * floatfns.c (round2): * font.c (font_score, font_delete_unmatched): * fringe.c (compute_fringe_widths): * lread.c (read_list): * minibuf.c (Ftry_completion): * term.c (tty_ins_del_lines): * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1): Use eabs (x) rather than open-coding it as (x < 0 ? -x : x). --- src/ChangeLog | 14 ++++++++++++++ src/dired.c | 5 +---- src/doc.c | 9 ++++----- src/floatfns.c | 4 ++-- src/font.c | 13 +++---------- src/fringe.c | 4 ++-- src/lread.c | 3 +-- src/minibuf.c | 7 +------ src/term.c | 4 ++-- src/xterm.c | 6 ++---- 10 files changed, 32 insertions(+), 37 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e5d663b746..183d972834 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,17 @@ +2013-01-02 Paul Eggert + + Simplify via eabs. + * dired.c (file_name_completion): + * doc.c (get_doc_string): + * floatfns.c (round2): + * font.c (font_score, font_delete_unmatched): + * fringe.c (compute_fringe_widths): + * lread.c (read_list): + * minibuf.c (Ftry_completion): + * term.c (tty_ins_del_lines): + * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1): + Use eabs (x) rather than open-coding it as (x < 0 ? -x : x). + 2012-12-31 Eli Zaretskii * w32.c (unsetenv): Set up the string passed to _putenv diff --git a/src/dired.c b/src/dired.c index 1fda9e8b37..d9868d76b5 100644 --- a/src/dired.c +++ b/src/dired.c @@ -671,10 +671,7 @@ file_name_completion (Lisp_Object file, Lisp_Object dirname, bool all_flag, name, zero, make_number (compare), completion_ignore_case ? Qt : Qnil); - ptrdiff_t matchsize - = (EQ (cmp, Qt) ? compare - : XINT (cmp) < 0 ? - XINT (cmp) - 1 - : XINT (cmp) - 1); + ptrdiff_t matchsize = EQ (cmp, Qt) ? compare : eabs (XINT (cmp)) - 1; if (completion_ignore_case) { diff --git a/src/doc.c b/src/doc.c index 76008295ad..8b71b62952 100644 --- a/src/doc.c +++ b/src/doc.c @@ -83,24 +83,23 @@ get_doc_string (Lisp_Object filepos, bool unibyte, bool definition) ptrdiff_t minsize; int offset; EMACS_INT position; - Lisp_Object file, tem; + Lisp_Object file, tem, pos; USE_SAFE_ALLOCA; if (INTEGERP (filepos)) { file = Vdoc_file_name; - position = XINT (filepos); + pos = filepos; } else if (CONSP (filepos)) { file = XCAR (filepos); - position = XINT (XCDR (filepos)); + pos = XCDR (filepos); } else return Qnil; - if (position < 0) - position = - position; + position = eabs (XINT (pos)); if (!STRINGP (Vdoc_directory)) return Qnil; diff --git a/src/floatfns.c b/src/floatfns.c index 645a595760..16d6d2382b 100644 --- a/src/floatfns.c +++ b/src/floatfns.c @@ -399,8 +399,8 @@ round2 (EMACS_INT i1, EMACS_INT i2) odd. */ EMACS_INT q = i1 / i2; EMACS_INT r = i1 % i2; - EMACS_INT abs_r = r < 0 ? -r : r; - EMACS_INT abs_r1 = (i2 < 0 ? -i2 : i2) - abs_r; + EMACS_INT abs_r = eabs (r); + EMACS_INT abs_r1 = eabs (i2) - abs_r; return q + (abs_r + (q & 1) <= abs_r1 ? 0 : (i2 ^ r) < 0 ? -1 : 1); } diff --git a/src/font.c b/src/font.c index f6b6fa026c..19d6541463 100644 --- a/src/font.c +++ b/src/font.c @@ -2101,9 +2101,7 @@ font_score (Lisp_Object entity, Lisp_Object *spec_prop) { EMACS_INT diff = ((XINT (AREF (entity, i)) >> 8) - (XINT (spec_prop[i]) >> 8)); - if (diff < 0) - diff = - diff; - score |= min (diff, 127) << sort_shift_bits[i]; + score |= min (eabs (diff), 127) << sort_shift_bits[i]; } /* Score the size. Maximum difference is 127. */ @@ -2118,10 +2116,7 @@ font_score (Lisp_Object entity, Lisp_Object *spec_prop) if (CONSP (Vface_font_rescale_alist)) pixel_size *= font_rescale_ratio (entity); - diff = pixel_size - XINT (AREF (entity, FONT_SIZE_INDEX)); - if (diff < 0) - diff = - diff; - diff <<= 1; + diff = eabs (pixel_size - XINT (AREF (entity, FONT_SIZE_INDEX))) << 1; if (! NILP (spec_prop[FONT_DPI_INDEX]) && ! EQ (spec_prop[FONT_DPI_INDEX], AREF (entity, FONT_DPI_INDEX))) diff |= 1; @@ -2671,9 +2666,7 @@ font_delete_unmatched (Lisp_Object vec, Lisp_Object spec, int size) { int diff = XINT (AREF (entity, FONT_SIZE_INDEX)) - size; - if (diff != 0 - && (diff < 0 ? -diff > FONT_PIXEL_SIZE_QUANTUM - : diff > FONT_PIXEL_SIZE_QUANTUM)) + if (eabs (diff) > FONT_PIXEL_SIZE_QUANTUM) prop = FONT_SPEC_MAX; } if (prop < FONT_SPEC_MAX diff --git a/src/fringe.c b/src/fringe.c index ce31fd0176..ace9727224 100644 --- a/src/fringe.c +++ b/src/fringe.c @@ -1360,8 +1360,8 @@ compute_fringe_widths (struct frame *f, int redraw) if (left_fringe_width || right_fringe_width) { - int left_wid = left_fringe_width >= 0 ? left_fringe_width : -left_fringe_width; - int right_wid = right_fringe_width >= 0 ? right_fringe_width : -right_fringe_width; + int left_wid = eabs (left_fringe_width); + int right_wid = eabs (right_fringe_width); int conf_wid = left_wid + right_wid; int font_wid = FRAME_COLUMN_WIDTH (f); int cols = (left_wid + right_wid + font_wid-1) / font_wid; diff --git a/src/lread.c b/src/lread.c index 2f385797ca..0db83f37ac 100644 --- a/src/lread.c +++ b/src/lread.c @@ -3569,9 +3569,8 @@ read_list (bool flag, Lisp_Object readcharfun) doc string, caller must make it multibyte. */ - EMACS_INT pos = XINT (XCDR (val)); /* Position is negative for user variables. */ - if (pos < 0) pos = -pos; + EMACS_INT pos = eabs (XINT (XCDR (val))); if (pos >= saved_doc_string_position && pos < (saved_doc_string_position + saved_doc_string_length)) diff --git a/src/minibuf.c b/src/minibuf.c index dcc4af37c1..73c32c0ec3 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1398,12 +1398,7 @@ is used to further constrain the set of candidates. */) eltstring, zero, make_number (compare), completion_ignore_case ? Qt : Qnil); - if (EQ (tem, Qt)) - matchsize = compare; - else if (XINT (tem) < 0) - matchsize = - XINT (tem) - 1; - else - matchsize = XINT (tem) - 1; + matchsize = EQ (tem, Qt) ? compare : eabs (XINT (tem)) - 1; if (completion_ignore_case) { diff --git a/src/term.c b/src/term.c index 241875de52..b93e21b98c 100644 --- a/src/term.c +++ b/src/term.c @@ -953,8 +953,8 @@ tty_ins_del_lines (struct frame *f, int vpos, int n) const char *single = n > 0 ? tty->TS_ins_line : tty->TS_del_line; const char *scroll = n > 0 ? tty->TS_rev_scroll : tty->TS_fwd_scroll; - register int i = n > 0 ? n : -n; - register char *buf; + int i = eabs (n); + char *buf; /* If the lines below the insertion are being pushed into the end of the window, this is the same as clearing; diff --git a/src/xterm.c b/src/xterm.c index 374b628745..864d51dac7 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -2236,8 +2236,7 @@ x_draw_image_foreground (struct glyph_string *s) nothing here for mouse-face. */ if (s->hl == DRAW_CURSOR) { - int relief = s->img->relief; - if (relief < 0) relief = -relief; + int relief = eabs (s->img->relief); XDrawRectangle (s->display, s->window, s->gc, x - relief, y - relief, s->slice.width + relief*2 - 1, @@ -2368,8 +2367,7 @@ x_draw_image_foreground_1 (struct glyph_string *s, Pixmap pixmap) nothing here for mouse-face. */ if (s->hl == DRAW_CURSOR) { - int r = s->img->relief; - if (r < 0) r = -r; + int r = eabs (s->img->relief); XDrawRectangle (s->display, s->window, s->gc, x - r, y - r, s->slice.width + r*2 - 1, s->slice.height + r*2 - 1); -- 2.20.1