diff options
author | Paul Eggert <[email protected]> | 2011-11-06 13:12:10 -0800 |
---|---|---|
committer | Paul Eggert <[email protected]> | 2011-11-06 13:12:10 -0800 |
commit | cb41b32a2325b0bd6e12d62cc82f2bc6dd00047a (patch) | |
tree | cac980e6ca70924145e6b79705a252c8e4f49a57 /src/intervals.c | |
parent | b70413668a72cbc36fba7d505131a71a847d602b (diff) |
Fix some portability problems with 'inline'.
* dispextern.h (window_box, window_box_height, window_text_bottom_y)
(window_box_width, window_box_left, window_box_left_offset)
(window_box_right, window_box_right_offset): Declare extern.
Otherwise, these inline functions do not conform to C99 and
are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
<http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
* intervals.c (adjust_intervals_for_insertion)
(adjust_intervals_for_deletion): Now extern, because otherwise the
extern inline functions 'offset_intervals' couldn't refer to it.
(static_offset_intervals): Remove.
(offset_intervals): Rewrite using the old contents of
static_offset_intervals. The old version didn't conform to C99
because an extern inline function contained a reference to an
identifier with static linkage.
Diffstat (limited to 'src/intervals.c')
-rw-r--r-- | src/intervals.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/intervals.c b/src/intervals.c index 1f3f8cf793..be1bdfb905 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -52,6 +52,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #define TMEM(sym, set) (CONSP (set) ? ! NILP (Fmemq (sym, set)) : ! NILP (set)) +extern INTERVAL adjust_intervals_for_insertion (INTERVAL, + EMACS_INT, EMACS_INT); +extern void adjust_intervals_for_deletion (struct buffer *, + EMACS_INT, EMACS_INT); + static Lisp_Object merge_properties_sticky (Lisp_Object, Lisp_Object); static INTERVAL merge_interval_right (INTERVAL); static INTERVAL reproduce_tree (INTERVAL, INTERVAL); @@ -798,7 +803,7 @@ update_interval (register INTERVAL i, EMACS_INT pos) and check the hungry bits of both. Then add the length going back up to the root. */ -static INTERVAL +INTERVAL adjust_intervals_for_insertion (INTERVAL tree, EMACS_INT position, EMACS_INT length) { @@ -859,7 +864,7 @@ adjust_intervals_for_insertion (INTERVAL tree, EMACS_INT position, interval. Another possibility would be to create a new interval for this text, and make it have the merged properties of both ends. */ -static INTERVAL +INTERVAL adjust_intervals_for_insertion (INTERVAL tree, EMACS_INT position, EMACS_INT length) { @@ -1369,7 +1374,7 @@ interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from, text. The deletion is effected at position START (which is a buffer position, i.e. origin 1). */ -static void +void adjust_intervals_for_deletion (struct buffer *buffer, EMACS_INT start, EMACS_INT length) { @@ -1425,9 +1430,8 @@ adjust_intervals_for_deletion (struct buffer *buffer, compiler that does not allow calling a static function (here, adjust_intervals_for_deletion) from a non-static inline function. */ -static inline void -static_offset_intervals (struct buffer *buffer, EMACS_INT start, - EMACS_INT length) +inline void +offset_intervals (struct buffer *buffer, EMACS_INT start, EMACS_INT length) { if (NULL_INTERVAL_P (BUF_INTERVALS (buffer)) || length == 0) return; @@ -1440,12 +1444,6 @@ static_offset_intervals (struct buffer *buffer, EMACS_INT start, adjust_intervals_for_deletion (buffer, start, -length); } } - -inline void -offset_intervals (struct buffer *buffer, EMACS_INT start, EMACS_INT length) -{ - static_offset_intervals (buffer, start, length); -} /* Merge interval I with its lexicographic successor. The resulting interval is returned, and has the properties of the original |