1. 28 Mar, 2018 1 commit
  2. 18 Mar, 2018 1 commit
  3. 17 Mar, 2018 3 commits
  4. 10 Mar, 2018 1 commit
  5. 24 Jan, 2018 1 commit
  6. 29 Dec, 2017 1 commit
  7. 26 Dec, 2017 1 commit
  8. 12 Nov, 2017 1 commit
  9. 31 Oct, 2017 1 commit
  10. 25 Oct, 2017 1 commit
  11. 12 Oct, 2017 1 commit
  12. 15 Sep, 2017 1 commit
  13. 31 Aug, 2017 2 commits
  14. 29 Aug, 2017 1 commit
  15. 26 Aug, 2017 1 commit
  16. 22 Aug, 2017 4 commits
  17. 21 Aug, 2017 1 commit
  18. 20 Aug, 2017 2 commits
  19. 18 Aug, 2017 4 commits
  20. 06 Aug, 2017 1 commit
  21. 17 Jul, 2017 1 commit
  22. 09 Jul, 2017 1 commit
  23. 07 Jul, 2017 4 commits
    • Benno Schulenberg's avatar
      8766e7bd
    • David Lawrence Ramsey's avatar
      moving: make vertical movement account for varying chunk width · a4c2eaa2
      David Lawrence Ramsey authored
      Use actual_last_column() to properly adjust the cursor if placewewant
      is past the end of a softwrapped chunk.
      a4c2eaa2
    • David Lawrence Ramsey's avatar
      softwrap: make the changes to actually allow the chunk width to vary · 8490f4ac
      David Lawrence Ramsey authored
      get_chunk_row() and get_chunk_leftedge() now become wrappers around
      get_chunk(); the latter is only used directly in place_the_cursor()
      when we need to get both the row and the leftedge.  get_chunk() now
      uses the proper formula to implement varying chunk width.
      
      Since chunk width now varies, place_the_cursor() sets the x position
      relative to the leftedge in a different way that works regardless
      of chunk width, update_softwrapped_line() loops until it gets all
      softwrap breakpoints instead of calculating the full length in
      advance and getting one full row at a time, the chunk iterators
      now count leftedges instead of rows, and fix_firstcolumn() does a
      full recalculation of the chunk that firstcolumn is on instead of
      simply shifting it back.
      
      Also, in update_softwrapped_line(), when a line's softwrap breakpoint
      is before the last column of the edit window, a ">" is now added to
      the end of it.
      
      The workaround in place_the_cursor() for when two-column characters
      straddle the edge of the screen is removed, as it's no longer needed
      now that chunks end before such characters.
      
      Furthermore, do_home() and do_end() use xplustabs() instead of
      placewewant again when calculating the leftedge, since placewewant
      refers to a column that may or may not be available (if it's not,
      the cursor will be placed wrongly).  Make get_edge_and_target() use
      xplustabs() instead of placewewant for the same reason; this also lets
      us simplify get_edge_and_target(), since xplustabs() will never be
      greater than strlenpt().  Finally, since do_end() now has to calculate
      rightedge as well as rightedge_x, use the former to implement the same
      time-saving optimizations as in do_home().
      
      The cursor is not yet adjusted when we try to go directly to a column
      past the end of a softwrap breakpoint, and placewewant handling in the
      vertical movement code is not yet adjusted for varying chunk lengths,
      but fixes for these are forthcoming.
      
      This fixes https://savannah.gnu.org/bugs/?49440.
      8490f4ac
    • David Lawrence Ramsey's avatar
      softwrap: add new functions for chunks of varying width · e375995d
      David Lawrence Ramsey authored
      get_chunk_row() replaces the formula "column / editwincols".
      
      get_chunk_leftedge() replaces "(column / editwincols) * editwincols".
      
      get_last_chunk_row() replaces "strlenpt() / editwincols".
      
      get_last_chunk_leftedge() replaces "(strlenpt() / editwincols) * editwincols".
      
      This prepares us for any changes in those formulas, and for more such
      functions later.
      e375995d
  24. 11 May, 2017 1 commit
  25. 17 Apr, 2017 1 commit
  26. 09 Apr, 2017 2 commits