[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/indent.c
From: |
Kim F . Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/indent.c |
Date: |
Mon, 02 Aug 2004 11:09:39 -0400 |
Index: emacs/src/indent.c
diff -c emacs/src/indent.c:1.161 emacs/src/indent.c:1.162
*** emacs/src/indent.c:1.161 Sun May 2 16:57:32 2004
--- emacs/src/indent.c Mon Aug 2 15:06:06 2004
***************
*** 1131,1136 ****
--- 1131,1139 ----
WIDTH is the number of columns available to display text;
compute_motion uses this to handle continuation lines and such.
+ If WIDTH is -1, use width of window's text area adjusted for
+ continuation glyph when needed.
+
HSCROLL is the number of columns not being displayed at the left
margin; this is usually taken from a window's hscroll member.
TAB_OFFSET is the number of columns of the first tab that aren't
***************
*** 1245,1250 ****
--- 1248,1264 ----
if (tab_width <= 0 || tab_width > 1000)
tab_width = 8;
+ /* Negative width means use all available text columns. */
+ if (width < 0)
+ {
+ width = window_box_text_cols (win);
+ /* We must make room for continuation marks if we don't have fringes.
*/
+ #ifdef HAVE_WINDOW_SYSTEM
+ if (!FRAME_WINDOW_P (XFRAME (win->frame)))
+ #endif
+ width -= 1;
+ }
+
immediate_quit = 1;
QUIT;
***************
*** 1368,1374 ****
{
if (hscroll
|| (truncate_partial_width_windows
! && width + 1 < FRAME_COLS (XFRAME (WINDOW_FRAME (win))))
|| !NILP (current_buffer->truncate_lines))
{
/* Truncating: skip to newline, unless we are already past
--- 1382,1388 ----
{
if (hscroll
|| (truncate_partial_width_windows
! && width < FRAME_COLS (XFRAME (WINDOW_FRAME (win))))
|| !NILP (current_buffer->truncate_lines))
{
/* Truncating: skip to newline, unless we are already past
***************
*** 1737,1748 ****
to position TO or position TOPOS--another cons of the form (HPOS . VPOS)--
and return the ending buffer position and screen location.
There are three additional arguments:
WIDTH is the number of columns available to display text;
! this affects handling of continuation lines.
! This is usually the value returned by `window-width', less one (to allow
! for the continuation glyph).
OFFSETS is either nil or a cons cell (HSCROLL . TAB-OFFSET).
HSCROLL is the number of columns not being displayed at the left
--- 1751,1764 ----
to position TO or position TOPOS--another cons of the form (HPOS . VPOS)--
and return the ending buffer position and screen location.
+ If TOPOS is nil, the actual width and height of the window's
+ text area are used.
+
There are three additional arguments:
WIDTH is the number of columns available to display text;
! this affects handling of continuation lines. A value of nil
! corresponds to the actual number of available text columns.
OFFSETS is either nil or a cons cell (HSCROLL . TAB-OFFSET).
HSCROLL is the number of columns not being displayed at the left
***************
*** 1774,1779 ****
--- 1790,1796 ----
Lisp_Object from, frompos, to, topos;
Lisp_Object width, offsets, window;
{
+ struct window *w;
Lisp_Object bufpos, hpos, vpos, prevhpos;
struct position *pos;
int hscroll, tab_offset;
***************
*** 1783,1792 ****
CHECK_NUMBER_CAR (frompos);
CHECK_NUMBER_CDR (frompos);
CHECK_NUMBER_COERCE_MARKER (to);
! CHECK_CONS (topos);
! CHECK_NUMBER_CAR (topos);
! CHECK_NUMBER_CDR (topos);
! CHECK_NUMBER (width);
if (!NILP (offsets))
{
CHECK_CONS (offsets);
--- 1800,1814 ----
CHECK_NUMBER_CAR (frompos);
CHECK_NUMBER_CDR (frompos);
CHECK_NUMBER_COERCE_MARKER (to);
! if (!NILP (topos))
! {
! CHECK_CONS (topos);
! CHECK_NUMBER_CAR (topos);
! CHECK_NUMBER_CDR (topos);
! }
! if (!NILP (width))
! CHECK_NUMBER (width);
!
if (!NILP (offsets))
{
CHECK_CONS (offsets);
***************
*** 1802,1807 ****
--- 1824,1830 ----
window = Fselected_window ();
else
CHECK_LIVE_WINDOW (window);
+ w = XWINDOW (window);
if (XINT (from) < BEGV || XINT (from) > ZV)
args_out_of_range_3 (from, make_number (BEGV), make_number (ZV));
***************
*** 1810,1818 ****
pos = compute_motion (XINT (from), XINT (XCDR (frompos)),
XINT (XCAR (frompos)), 0,
! XINT (to), XINT (XCDR (topos)),
! XINT (XCAR (topos)),
! XINT (width), hscroll, tab_offset,
XWINDOW (window));
XSETFASTINT (bufpos, pos->bufpos);
--- 1833,1852 ----
pos = compute_motion (XINT (from), XINT (XCDR (frompos)),
XINT (XCAR (frompos)), 0,
! XINT (to),
! (NILP (topos)
! ? window_internal_height (w)
! : XINT (XCDR (topos))),
! (NILP (topos)
! ? (window_box_text_cols (w)
! - (
! #ifdef HAVE_WINDOW_SYSTEM
! FRAME_WINDOW_P (XFRAME (w->frame)) ? 0 :
! #endif
! 1))
! : XINT (XCAR (topos))),
! (NILP (width) ? -1 : XINT (width)),
! hscroll, tab_offset,
XWINDOW (window));
XSETFASTINT (bufpos, pos->bufpos);
***************
*** 1837,1843 ****
register int from, vtarget;
struct window *w;
{
- int width = window_box_text_cols (w);
int hscroll = XINT (w->hscroll);
struct position pos;
/* vpos is cumulative vertical position, changed as from is changed */
--- 1871,1876 ----
***************
*** 1858,1869 ****
XSETWINDOW (window, w);
- /* We must make room for continuation marks if we don't have fringes. */
- #ifdef HAVE_WINDOW_SYSTEM
- if (!FRAME_WINDOW_P (XFRAME (w->frame)))
- #endif
- width -= 1;
-
/* If the window contains this buffer, use it for getting text properties.
Otherwise use the current buffer as arg for doing that. */
if (EQ (w->buffer, Fcurrent_buffer ()))
--- 1891,1896 ----
***************
*** 1905,1911 ****
1 << (BITS_PER_SHORT - 1),
/* ... nor HPOS. */
1 << (BITS_PER_SHORT - 1),
! width, hscroll,
/* This compensates for start_hpos
so that a tab as first character
still occupies 8 columns. */
--- 1932,1938 ----
1 << (BITS_PER_SHORT - 1),
/* ... nor HPOS. */
1 << (BITS_PER_SHORT - 1),
! -1, hscroll,
/* This compensates for start_hpos
so that a tab as first character
still occupies 8 columns. */
***************
*** 1964,1970 ****
1 << (BITS_PER_SHORT - 1),
/* ... nor HPOS. */
1 << (BITS_PER_SHORT - 1),
! width, hscroll,
(XFASTINT (prevline) == BEG ? -start_hpos : 0),
w);
did_motion = 1;
--- 1991,1997 ----
1 << (BITS_PER_SHORT - 1),
/* ... nor HPOS. */
1 << (BITS_PER_SHORT - 1),
! -1, hscroll,
(XFASTINT (prevline) == BEG ? -start_hpos : 0),
w);
did_motion = 1;
***************
*** 1978,1984 ****
}
return compute_motion (from, vpos, pos.hpos, did_motion,
ZV, vtarget, - (1 << (BITS_PER_SHORT - 1)),
! width, hscroll,
pos.tab_offset - (from == BEG ? start_hpos : 0),
w);
}
--- 2005,2011 ----
}
return compute_motion (from, vpos, pos.hpos, did_motion,
ZV, vtarget, - (1 << (BITS_PER_SHORT - 1)),
! -1, hscroll,
pos.tab_offset - (from == BEG ? start_hpos : 0),
w);
}
- [Emacs-diffs] Changes to emacs/src/indent.c,
Kim F . Storm <=