* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii"><!--
This document is self-contained, *except* that there is one relative link to
<meta http-equiv="Content-Type" content=
"text/html; charset=us-ascii"><!--
This document is self-contained, *except* that there is one relative link to
lower level that accepts event reports in a device-dependent
format and an upper level that parses mouse gestures and filters
events. The mediating data structure is a circular queue of event
lower level that accepts event reports in a device-dependent
format and an upper level that parses mouse gestures and filters
events. The mediating data structure is a circular queue of event
- <p>The <code>hashmap.c</code> 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.</p>
-
- <p>The <code>hardscroll.c</code> module computes an optimum set
- of scroll, insertion, and deletion operations to make the indices
- match. It calls <code>_nc_mvcur_scrolln()</code> in
- <code>lib_mvcur.c</code> to do those motions.</p>
-
- <p>Then <code>lib_doupdate.c</code> goes to work. Its job is to
- do line-by-line transformations of <code>curscr</code> lines to
- <code>newscr</code> lines. Its main tool is the routine
- <code>mvcur()</code> in <code>lib_mvcur.c</code>. This routine
- does cursor-movement optimization, attempting to get from given
- screen location A to given location B in the fewest output
- characters possible.</p>
+ <ul>
+ <li>
+ <p>The <code>hashmap.c</code> 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.</p>
+ </li>
+
+ <li>
+ <p>The <code>hardscroll.c</code> module computes an optimum
+ set of scroll, insertion, and deletion operations to make the
+ indices match. It calls <code>_nc_mvcur_scrolln()</code> in
+ <code>lib_mvcur.c</code> to do those motions.</p>
+ </li>
+
+ <li>
+ <p>Then <code>lib_doupdate.c</code> goes to work. Its job is
+ to do line-by-line transformations of <code>curscr</code>
+ lines to <code>newscr</code> lines. Its main tool is the
+ routine <code>mvcur()</code> in <code>lib_mvcur.c</code>.
+ This routine does cursor-movement optimization, attempting to
+ get from given screen location A to given location B in the
+ fewest output characters possible.</p>
+ </li>
+ </ul>