1
1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
3
$Id: hackguide.html,v 1.26 2003/10/04 22:34:02 tom Exp $
3
$Id: hackguide.html,v 1.27 2005/12/24 15:37:13 tom Exp $
4
****************************************************************************
5
* Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
7
* Permission is hereby granted, free of charge, to any person obtaining a *
8
* copy of this software and associated documentation files (the *
9
* "Software"), to deal in the Software without restriction, including *
10
* without limitation the rights to use, copy, modify, merge, publish, *
11
* distribute, distribute with modifications, sublicense, and/or sell *
12
* copies of the Software, and to permit persons to whom the Software is *
13
* furnished to do so, subject to the following conditions: *
15
* The above copyright notice and this permission notice shall be included *
16
* in all copies or substantial portions of the Software. *
18
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
19
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
20
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
21
* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
22
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
23
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
24
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
26
* Except as contained in this notice, the name(s) of the above copyright *
27
* holders shall not be used in advertising or otherwise to promote the *
28
* sale, use or other dealings in this Software without prior written *
30
****************************************************************************
287
314
it out. You can also test the hardware-scrolling optimization separately
288
315
with <CODE>hardscroll</CODE>. <P>
290
There's one other interactive tester, <CODE>tctest</CODE>, that exercises
291
translation between termcap and terminfo formats. If you have a serious
292
need to run this, you probably belong on our development team!
294
317
<H1><A NAME="ncurslib">A Tour of the Ncurses Library</A></H1>
296
319
<H2><A NAME="loverview">Library Overview</A></H2>
380
403
It is rather unlikely you will ever need to change these, unless
381
you want to introduce a new debug trace level for some reasoon.<P>
404
you want to introduce a new debug trace level for some reason.<P>
383
406
There is another group of files that do direct I/O via <EM>tputs()</EM>,
384
407
computations on the terminal capabilities, or queries to the OS
559
582
transformations of <CODE>curscr</CODE> lines to <CODE>newscr</CODE> lines. Its main
560
583
tool is the routine <CODE>mvcur()</CODE> in <CODE>lib_mvcur.c</CODE>. This routine
561
584
does cursor-movement optimization, attempting to get from given screen
562
location A to given location B in the fewest output characters posible. <P>
585
location A to given location B in the fewest output characters possible. <P>
564
587
If you want to work on screen optimizations, you should use the fact
565
588
that (in the trace-enabled version of the library) enabling the