-
- The hashmap.c module tries to detect vertical motion changes between
- the real and virtual screens. This information is represented by the
- oldindex members in the newscr structure. These are modified by
- vertical-motion and clear operations, and both are re-initialized
- after each update. To this change-journalling information, the hashmap
- code adds deductions made using a modified Heckel algorithm on hash
- values generated from the line contents.
-
- The hardscroll.c module computes an optimum set of scroll, insertion,
- and deletion operations to make the indices match. It calls
- _nc_mvcur_scrolln() in lib_mvcur.c to do those motions.
-
- Then lib_doupdate.c goes to work. Its job is to do line-by-line
- transformations of curscr lines to newscr lines. Its main tool is the
- routine mvcur() in lib_mvcur.c. This routine does cursor-movement
- optimization, attempting to get from given screen location A to given
- location B in the fewest output characters posible.
+ * The hashmap.c module tries to detect vertical motion changes
+ between the real and virtual screens. This information is
+ represented by the oldindex members in the newscr structure. These
+ are modified by vertical-motion and clear operations, and both are
+ re-initialized after each update. To this change-journalling
+ information, the hashmap code adds deductions made using a
+ modified Heckel algorithm on hash values generated from the line
+ contents.
+ * The hardscroll.c module computes an optimum set of scroll,
+ insertion, and deletion operations to make the indices match. It
+ calls _nc_mvcur_scrolln() in lib_mvcur.c to do those motions.
+ * Then lib_doupdate.c goes to work. Its job is to do line-by-line
+ transformations of curscr lines to newscr lines. Its main tool is
+ the routine mvcur() in lib_mvcur.c. This routine does
+ cursor-movement optimization, attempting to get from given screen
+ location A to given location B in the fewest output characters
+ possible.