/[emacs]/emacs/src/indent.c
ViewVC logotype

Diff of /emacs/src/indent.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.164 by kfstorm, Mon Aug 2 23:59:28 2004 UTC revision 1.165 by rms, Wed Oct 27 10:57:40 2004 UTC
# Line 1883  vmotion (from, vtarget, w) Line 1883  vmotion (from, vtarget, w)
1883    struct position pos;    struct position pos;
1884    /* vpos is cumulative vertical position, changed as from is changed */    /* vpos is cumulative vertical position, changed as from is changed */
1885    register int vpos = 0;    register int vpos = 0;
1886    Lisp_Object prevline;    int prevline;
1887    register int first;    register int first;
1888    int from_byte;    int from_byte;
1889    int lmargin = hscroll > 0 ? 1 - hscroll : 0;    int lmargin = hscroll > 0 ? 1 - hscroll : 0;
# Line 1917  vmotion (from, vtarget, w) Line 1917  vmotion (from, vtarget, w)
1917          {          {
1918            Lisp_Object propval;            Lisp_Object propval;
1919    
1920            XSETFASTINT (prevline, find_next_newline_no_quit (from - 1, -1));            prevline = find_next_newline_no_quit (from - 1, -1);
1921            while (XFASTINT (prevline) > BEGV            while (prevline > BEGV
1922                   && ((selective > 0                   && ((selective > 0
1923                        && indented_beyond_p (XFASTINT (prevline),                        && indented_beyond_p (prevline,
1924                                              CHAR_TO_BYTE (XFASTINT (prevline)),                                              CHAR_TO_BYTE (prevline),
1925                                              (double) selective)) /* iftc */                                              (double) selective)) /* iftc */
1926                       /* watch out for newlines with `invisible' property */                       /* Watch out for newlines with `invisible' property.
1927                       || (propval = Fget_char_property (prevline,                          When moving upward, check the newline before.  */
1928                         || (propval = Fget_char_property (make_number (prevline - 1),
1929                                                         Qinvisible,                                                         Qinvisible,
1930                                                         text_prop_object),                                                         text_prop_object),
1931                           TEXT_PROP_MEANS_INVISIBLE (propval))))                           TEXT_PROP_MEANS_INVISIBLE (propval))))
1932              XSETFASTINT (prevline,              prevline = find_next_newline_no_quit (prevline - 1, -1);
1933                           find_next_newline_no_quit (XFASTINT (prevline) - 1,            pos = *compute_motion (prevline, 0,
1934                                                      -1));                                   lmargin + (prevline == BEG ? start_hpos : 0),
           pos = *compute_motion (XFASTINT (prevline), 0,  
                                  lmargin + (XFASTINT (prevline) == BEG  
                                             ? start_hpos : 0),  
1935                                   0,                                   0,
1936                                   from,                                   from,
1937                                   /* Don't care for VPOS...  */                                   /* Don't care for VPOS...  */
# Line 1944  vmotion (from, vtarget, w) Line 1942  vmotion (from, vtarget, w)
1942                                   /* This compensates for start_hpos                                   /* This compensates for start_hpos
1943                                      so that a tab as first character                                      so that a tab as first character
1944                                      still occupies 8 columns.  */                                      still occupies 8 columns.  */
1945                                   (XFASTINT (prevline) == BEG                                   (prevline == BEG ? -start_hpos : 0),
                                   ? -start_hpos : 0),  
1946                                   w);                                   w);
1947            vpos -= pos.vpos;            vpos -= pos.vpos;
1948            first = 0;            first = 0;
1949            from = XFASTINT (prevline);            from = prevline;
1950          }          }
1951    
1952        /* If we made exactly the desired vertical distance,        /* If we made exactly the desired vertical distance,
# Line 1977  vmotion (from, vtarget, w) Line 1974  vmotion (from, vtarget, w)
1974      {      {
1975        Lisp_Object propval;        Lisp_Object propval;
1976    
1977        XSETFASTINT (prevline, find_next_newline_no_quit (from, -1));        prevline = find_next_newline_no_quit (from, -1);
1978        while (XFASTINT (prevline) > BEGV        while (prevline > BEGV
1979               && ((selective > 0               && ((selective > 0
1980                    && indented_beyond_p (XFASTINT (prevline),                    && indented_beyond_p (prevline,
1981                                          CHAR_TO_BYTE (XFASTINT (prevline)),                                          CHAR_TO_BYTE (prevline),
1982                                          (double) selective)) /* iftc */                                          (double) selective)) /* iftc */
1983                   /* watch out for newlines with `invisible' property */                   /* Watch out for newlines with `invisible' property.
1984                   || (propval = Fget_char_property (prevline, Qinvisible,                      When moving downward, check the newline after.  */
1985                     || (propval = Fget_char_property (make_number (prevline),
1986                                                       Qinvisible,
1987                                                     text_prop_object),                                                     text_prop_object),
1988                       TEXT_PROP_MEANS_INVISIBLE (propval))))                       TEXT_PROP_MEANS_INVISIBLE (propval))))
1989          XSETFASTINT (prevline,          prevline = find_next_newline_no_quit (prevline - 1, -1);
1990                       find_next_newline_no_quit (XFASTINT (prevline) - 1,        pos = *compute_motion (prevline, 0,
1991                                                  -1));                               lmargin + (prevline == BEG
       pos = *compute_motion (XFASTINT (prevline), 0,  
                              lmargin + (XFASTINT (prevline) == BEG  
1992                                          ? start_hpos : 0),                                          ? start_hpos : 0),
1993                               0,                               0,
1994                               from,                               from,
# Line 2000  vmotion (from, vtarget, w) Line 1997  vmotion (from, vtarget, w)
1997                               /* ... nor HPOS.  */                               /* ... nor HPOS.  */
1998                               1 << (BITS_PER_SHORT - 1),                               1 << (BITS_PER_SHORT - 1),
1999                               -1, hscroll,                               -1, hscroll,
2000                               (XFASTINT (prevline) == BEG ? -start_hpos : 0),                               (prevline == BEG ? -start_hpos : 0),
2001                               w);                               w);
2002        did_motion = 1;        did_motion = 1;
2003      }      }

Legend:
Removed from v.1.164  
changed lines
  Added in v.1.165

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26