OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [services/] [curses/] [pdcurses/] [current/] [HISTORY] - Blame information for rev 819

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
PDCurses 3.4 - 2008/09/08
2
=========================
3
 
4
Nothing much new this time, but I've been sitting on some bug fixes for
5
almost a year, so it's overdue. Apart from bugs, the main changes are in
6
the documentation.
7
 
8
New features:
9
 
10
- setsyx() is now a function rather than a macro.
11
 
12
Bug fixes and such:
13
 
14
- In x11, the xc_atrtab table size was under-calculated by half,
15
  resulting in crashes at (oddly) certain line counts. (It should've
16
  crashed a lot more.) Reported by Mark Hessling.
17
 
18
- Test for moved cursor was omitting the window origin offset. Reported
19
  by Carey Evans.
20
 
21
- Is DOS and OS/2, the value for max items in key_table was still wrong.
22
  Reported by C.E.
23
 
24
- Changed isendwin() so it won't crash after delscreen().
25
 
26
- Ensure zero-termination in PDC_mbstowcs() and PDC_wcstombs().
27
 
28
- Disable QuickEdit Mode when enabling mouse input for the Win32
29
  console; reported by "Zalapkrakna".
30
 
31
- Fix for building under Innotek C (I hope). Report by Elbert Pol, fix
32
  courtesy of Paul Smedley.
33
 
34
- Unified exports list with no duplicates -- pdcurses.def is now built
35
  from components at compile time.
36
 
37
- Don't install curspriv.h, and don't include it with binary
38
  distributions.
39
 
40
- Building DLLs with LCC is no longer supported, due to the primitive
41
  nature of its make.exe.
42
 
43
- Export the terminfo stub functions from the DLLs, too.
44
 
45
- Added support for Apple's ".dylib" in configure. Suggested by Marc
46
  Vaillant (who says it's needed with OS 10.5.)
47
 
48
- In sdl1/Makefile.mng, ensure that CC is set.
49
 
50
- In the gcc makefiles, "$?" didn't really have the desired effect --
51
  _all_ the dependencies showed up on the command line, including
52
  curses.h, and pdcurses.a twice.  And apparently, this can mess up some
53
  old version (?) of MinGW. So, revert to spelling out "tuidemo.o
54
  tui.o". Reported by "Howard L."
55
 
56
- Extensive documentation revision and reorganizing. More to do here.
57
  For example, I moved the build instructions from INSTALL (which never
58
  really described installation) to the platform-specific READMEs.
59
 
60
- New indentation standard: four spaces, no tabs.
61
 
62
------------------------------------------------------------------------
63
 
64
PDCurses 3.3 - 2007/07/11
65
=========================
66
 
67
This release adds an SDL backend, refines the demos, and is faster in
68
some cases.
69
 
70
New features:
71
 
72
- SDL port. See INSTALL, doc/sdl.txt and sdl1/* for details.
73
 
74
- Double-buffering -- minimize screen writes by checking, in doupdate()
75
  and wnoutrefresh(), whether the changes to curscr are really changes.
76
  In most cases, this makes no difference (writes were already limited
77
  to areas marked as changed), but it can greatly reduce the overhead
78
  from touchwin(). It also helps if you have small, separated updates on
79
  the same line.
80
 
81
- The PDC_RGB colors can now be used, or not, with any platform (as long
82
  as the same options are used when compiling both the library and
83
  apps). This may help if you have apps that are hardwired to assume
84
  certain definitions.
85
 
86
- Restored the use_default_colors() stuff from the ncurses versions of
87
  the rain and worm demos, to make them "transparent" (this is useful
88
  now, with the SDL port); added transparency to newdemo.
89
 
90
- Added setlocale() to tuidemo, to make it easier to browse files with
91
  non-ASCII characters.
92
 
93
- Sped up firework demo by replacing unneeded clear() and init_pair()
94
  calls.
95
 
96
- Allow exit from ptest demo by typing 'q'.
97
 
98
- New functions for implementors: PDC_pair_content() and PDC_init_pair()
99
  (the old pdc_atrtab stuff was arguably the last remnant of code in the
100
  pdcurses directory that was based on platform details).
101
 
102
Bug fixes and such:
103
 
104
- Implicit wrefresh() needs to be called from wgetch() when the window's
105
  cursor position is changed, even if there are no other changes.
106
 
107
- Set SP->audible on a per-platform basis, as was documented in
108
  IMPLEMNT, but not actually being done.
109
 
110
- Minor tweaks for efficiency and readability, notably with wscrl().
111
 
112
- tuidemo didn't work correctly on monochrome screens when A_COLOR was
113
  defined -- the color pair numbers appeared as the corresponding
114
  character; also, the input box was (I now realize) broken with ncurses
115
  since our 2.7, and broke more subtly with PDCurses' new implicit
116
  refresh handling; also, the path to the default file for the Browse
117
  function was a bit off.
118
 
119
- Assume in the demos that curs_set() is always available -- there's no
120
  good test for this, and the existing tests were bogus.
121
 
122
- Made the command-line parameter for ptest work. (If given an argument,
123
  it delays that number of milliseconds between changes, instead of
124
  waiting for a key, and automatically loops five times.)
125
 
126
- Building the Win32 DLL with MinGW or Cygwin wouldn't work from outside
127
  the platform directory.
128
 
129
- Building the X11 port with Cygwin required manually editing the
130
  Makefile after configuring; no longer. Reported by Warren W. Gay.
131
 
132
- Minor tightening of configure and makefiles.
133
 
134
- Bogus references to "ACS_BLCORNER" in the border man page. Reported by
135
  "Walrii".
136
 
137
- slk_wlabel() was not documented.
138
 
139
- Spelling cleanup.
140
 
141
- Changed RCSIDs to not end with a semicolon -- avoids warnings when
142
  compiling with the -pedantic option.
143
 
144
- Merged latin-1.txt into x11.txt.
145
 
146
- Updated config.guess and config.sub to more recent versions.
147
 
148
------------------------------------------------------------------------
149
 
150
PDCurses 3.2 - 2007/06/06
151
=========================
152
 
153
This release mainly covers changes to the build process, along with a
154
few structural changes.
155
 
156
New features:
157
 
158
- The panel library has been folded into the main library. What this
159
  means is that you no longer need to specify "-lpanel" or equivalent
160
  when linking programs that use panel functionality with PDCurses;
161
  however, panel.lib/.a is still provided (as a copy of pdcurses.lib/.a)
162
  so that you can, optionally, build your projects with no changes. It
163
  also means that panel functionality is available with the DLL or
164
  shared library. Note that panel.h remains separate from curses.h.
165
 
166
- Setting the PDCURSES_SRCDIR environment variable is no longer required
167
  before building, unless you want to build in a location other than the
168
  platform directory. (See INSTALL.)
169
 
170
- MinGW and Cygwin makefiles support building DLLs, via the "DLL=Y"
171
  option. Partly due to Timofei Shatrov.
172
 
173
- Support for the Digital Mars compiler.
174
 
175
- Watcom makefiles now use the "loaddll" feature.
176
 
177
Bug fixes and such:
178
 
179
- Eliminated the platform defines (DOS, WIN32, OS2, XCURSES) from
180
  curses.h, except for X11-specific SCREEN elements and functions.
181
  Dynamically-linked X11 apps built against an old version will have
182
  their red and blue swapped until rebuilt. (You can define PDC_RGB to
183
  build the library with the old color scheme, but it would also have to
184
  be defined when building any new app.) Any app that depends on
185
  PDCurses to determine the platform it's building on will have to make
186
  other arrangements.
187
 
188
- Documentation cleanup -- added more details; removed some content that
189
  didn't apply to PDCurses; moved the doc-building tool to the doc
190
  directory; changed *.man to *.txt.
191
 
192
- The EMX makefile now accepts "DLL=Y", builds pdcurses.dll instead of
193
  curses.dll, builds either the static library or the DLL (not both at
194
  once), and links all the demos with the DLL when building it.
195
 
196
- In Win32, read the registry only when needed: when init_color() or
197
  color_content() is called, instead of at startup.
198
 
199
- A few additional consts in declarations.
200
 
201
- The Win32 compilers that build DLLs now use common .def files.
202
 
203
- panel.h functions sorted by name, as with other .h files; curses.h is
204
  no longer included by repeated inclusions of panel.h or term.h.
205
 
206
- Simplified Borland makefiles.
207
 
208
- Makefile.aix.in depended on a file, xcurses.exp, that was never there.
209
  This problem was fixed as part of the change to common .def files;
210
  however, I still haven't been able to test building on AIX.
211
 
212
------------------------------------------------------------------------
213
 
214
PDCurses 3.1 - 2007/05/03
215
=========================
216
 
217
Primarily clipboard-related fixes, and special UTF-8 support.
218
 
219
New features:
220
 
221
- "Force UTF-8" mode, a compile-time option to force the use of UTF-8
222
  for multibyte strings, instead of the system locale. (Mainly for
223
  Windows, where UTF-8 doesn't work well in the console.) See INSTALL.
224
 
225
- Multibyte string support in PDC_*clipboard() functions, and in Win32's
226
  PDC_set_title().
227
 
228
- Added the global string "ttytype", per other curses implementations,
229
  for compatibility with old BSD curses.
230
 
231
- Real functions for the "quasi-standard aliases" -- crmode(),
232
  nocrmode(), draino(), resetterm(), fixterm() and saveterm().
233
  (Corresponding macros removed.)
234
 
235
Bug fixes and such:
236
 
237
- In Win32, under NT-family OSes, the scrollback buffer would be
238
  restored by endwin(), but would not be turned off again when resuming
239
  curses after an endwin(). The result was an odd, partly-scrolled-up
240
  display. Now, the buffer is toggled by PDC_reset_prog_mode() and
241
  PDC_reset_shell_mode(), so it's properly turned off when returning
242
  from an endwin().
243
 
244
- In 3.0, selection in X11 didn't work. (Well, the selecting worked, but
245
  the pasting elsewhere didn't.) This was due to the attempted fix
246
  "don't return selection start as a press event," so that's been
247
  reverted for now.
248
 
249
- PDC_setclipboard() was locking up in X11. Reported by Mark Hessling.
250
 
251
- Missing underscore in the declaration of XC_say() prevented
252
  compilation with PDCDEBUG defined.  Reported by M.H.
253
 
254
- Off-by-one error in copywin() -- the maximum coordinates for the
255
  destination window should be inclusive. Reported by Tiago Dionizio.
256
 
257
- Start in echo mode, per X/Open. Reported by T.D.
258
 
259
- Strip leading and trailing spaces from slk labels, per a literal
260
  reading of X/Open. Suggested by Alexey Miheev (about ncurses, but it
261
  also applies here).
262
 
263
- The #endif for __PDCURSES__ needs to come _after_ the closing of the
264
  extern "C". This has been broken since June 2005. Fortunately (?), it
265
  only shows up if the file is included multiple times, and then only in
266
  C++. Reported on the DOSBox forums.
267
 
268
- Use CF_OEMTEXT instead of CF_TEXT in the narrow versions of the
269
  clipboard functions in Win32, to match the console.
270
 
271
- Changed the format of the string returned from longname().
272
 
273
- In the clipboard test in the testcurs demo, use a single mvprintw() to
274
  display the return from PDC_getclipboard(), instead of a loop of
275
  addch(), which was incompatible with multibyte strings.
276
 
277
- Moved has_key() into the keyname module, and documented it.
278
 
279
- Moved RIPPEDOFFLINE to curspriv.h.
280
 
281
- Typos in IMPLEMNT.
282
 
283
------------------------------------------------------------------------
284
 
285
PDCurses 3.0 - 2007/04/01
286
=========================
287
 
288
The focuses for this release are X/Open conformance, i18n, better color
289
support, cleaner code, and more consistency across platforms.
290
 
291
This is only a brief summary of the changes. For more details, consult
292
the CVS log.
293
 
294
New features:
295
 
296
- An almost complete implementation of X/Open curses, including the
297
  wide-character and attr_t functions (but excluding terminfo). The
298
  wide-character functions work only in Win32 and X11, for now, and
299
  require building the library with the appropriate options (see
300
  INSTALL). Note that this is a simplistic implementation, with exactly
301
  one wchar_t per cchar_t; the only characters it handles properly are
302
  those that are one column wide.
303
 
304
- Support for X Input Methods in the X11 port (see INSTALL). When built
305
  this way, the internal compose key support is disabled in favor of
306
  XIM's, which is a lot more complete, although you lose the box cursor.
307
 
308
- Multibyte character support in the non-wide string handling functions,
309
  per X/Open. This only works when the library is built with wide-
310
  character support enabled.
311
 
312
- Mouse support for DOS and OS/2. The DOS version includes untested
313
  support for scroll wheels, via the "CuteMouse" driver.
314
 
315
- An ncurses-compatible mouse interface, which can work in parallel with
316
  the traditional PDCurses mouse interface. See the man page (or
317
  mouse.c) for details.
318
 
319
- DOS and OS/2 can now return modifiers as keys, as in Win32 and X11.
320
 
321
- COLORS, which had been fixed at 8, is now either 8 or 16, depending on
322
  the terminal -- usually 16. When it's 8, blinking mode is enabled
323
  (controlled as before by the A_BLINK attribute); when it's 16, bright
324
  background colors are used instead. On platforms where it can be
325
  changed, the mode is toggled by the new function PDC_set_blink().
326
  PDCurses tries to set PDC_set_blink(FALSE) at startup. (In Win32, it's
327
  always set to FALSE; in DOS, with other than an EGA or VGA card, it
328
  can't be.) Also, COLORS is now set to 0 until start_color() is called.
329
 
330
- Corresponding to the change in COLORS, COLOR_PAIRS is now 256.
331
 
332
- Working init_color() and color_content(). The OS/2 version of
333
  init_color() works only in a full-screen session; the Win32 version
334
  works only in windowed mode, and only in NT-family OSes; the DOS
335
  version works only with VGA adapters (real or simulated). The Win32
336
  version is based mostly on James Brown's setconsoleinfo.c
337
  (www.catch22.net).
338
 
339
- use_default_colors(), assume_default_colors(), and curses_version(),
340
  after ncurses.
341
 
342
- Added global int TABSIZE, after ncurses and Solaris curses; removed
343
  window-specific _tabsize.
344
 
345
- Logical extension to the wide-character slk_ funcs: slk_wlabel(), for
346
  retrieving the label as a wide-character string.
347
 
348
- A non-macro implementation of ncurses' wresize().
349
 
350
- Working putwin(), getwin(), scr_dump() and scr_restore().
351
 
352
- A working acs_map[]. Characters from the ACS are now stored in window
353
  structures as a regular character plus the A_ALTCHARSET attribute, and
354
  rendered to the ACS only when displayed. (This allows, for example,
355
  the correct display on one platform of windows saved from another.)
356
 
357
- In X11, allow selection and paste of UTF8_STRING.
358
 
359
- The testcurs demo now includes a color chart and init_color() test, a
360
  wide character input test, a display of wide ACS characters with
361
  sample Unicode text, a specific test of flash(), more info in the
362
  resize test, and attempts to change the width as well as the height.
363
 
364
- Command-line option for MSVC to build DLLs (see INSTALL). Also, the
365
  naming distinction for DLLs ("curses" vs. "pdcurses") is abandoned,
366
  and either the static lib or DLL is built, not both at once (except
367
  for X11).
368
 
369
- For backwards compatibility, a special module just for deprecated
370
  functions -- currently PDC_check_bios_key(), PDC_get_bios_key(),
371
  PDC_get_ctrl_break() and PDC_set_ctrl_break(). These shouldn't be used
372
  in applications, but currently are... in fact, all the "private"
373
  functions (in curspriv.h) are subject to change and should be avoided.
374
 
375
- A new document, IMPLEMNT, describing PDCurses' internal functions for
376
  those wishing to port it to new platforms.
377
 
378
- Mark Hessling has released the X11 port to the public domain.
379
  (However, x11/ScrollBox* retain their separate copyright and MIT-like
380
  license.)
381
 
382
Bug fixes and such:
383
 
384
- Most of the macros have been removed (along with the NOMACROS ifdef).
385
  The only remaining ones are those which have to be macros to work, and
386
  those that are required by X/Open to be macros. There were numerous
387
  problems with the macros, and no apparent reason to keep them, except
388
  tradition -- although it was PCcurses 1.x that first omitted them.
389
 
390
- Clean separation of platform-specific code from the rest. Outside of
391
  the platform directories, there remain only a few ifdefs in curses.h
392
  and curspriv.h.
393
 
394
- General reorganization and simplification.
395
 
396
- Documentation revisions.
397
 
398
- When expanding control characters in addch() or insch(), retain the
399
  attributes from the chtype.
400
 
401
- Preserve the A_ALTCHARSET attribute in addch() and insch().
402
 
403
- Per X/Open, beep() should always return OK.
404
 
405
- On platforms with a controlling terminal (i.e., not X11), curs_set(1)
406
  now sets the cursor to the shape it had at the time of initscr(),
407
  rather than always making it small. (Exception for DOS: If the video
408
  mode has been changed by PDC_resize_screen(), curs_set(1) reverts to
409
  line 6/7.) The shape is taken from SP->orig_cursor (the meaning of
410
  which is platform-specific).
411
 
412
- Stop updating the cursor position when the cursor is invisible (this
413
  gives a huge performance boost in Win 9x); update the cursor position
414
  from curs_set() if changing from invisible to visible.
415
 
416
- Some tweaking of the behavior of def_prog_mode(), def_shell_mode(),
417
  savetty(), reset_prog_mode(), reset_shell_mode() and resetty()...
418
  still not quite right.
419
 
420
- flash() was not implemented for Win32 or X. A portable implementation
421
  is now used for all platforms. Note that it's much slower than the
422
  old (DOS and OS/2) version, but this is only apparent on an extremely
423
  slow machine, such as an XT.
424
 
425
- In getstr(), backspacing on high-bit characters caused a double
426
  backspace.
427
 
428
- hline() and vline() used an incorrect (off by one) interpretation of
429
  _maxx and _maxy. If values of n greater than the max were specified,
430
  these functions could access unallocated memory.
431
 
432
- innstr() is supposed to return the number of characters read, not just
433
  OK or ERR. Reported by Mike Aubury.
434
 
435
- A proper implementation of insch() -- the PDC_chadd()-based version
436
  wasn't handling the control characters correctly.
437
 
438
- Return ASCII and control key names from keyname() (problem revealed by
439
  ncurses' movewindow test); also, per X/Open, return "UNKNOWN KEY" when
440
  appropriate, rather than "NO KEY NAME".
441
 
442
- Turn off the cursor from leaveok(TRUE), even in X11; leaveok(FALSE)
443
  now calls curs_set(1), regardless of the previous state of the cursor.
444
 
445
- In the slk area, BUTTON_CLICKED events now translate to function keys,
446
  along with the previously recognized BUTTON_PRESSED events. Of course,
447
  it should really be checking the events specified by map_button(),
448
  which still doesn't work.
449
 
450
- napms(0) now returns immediately.
451
 
452
- A unified napms() implementation for DOS -- no longer throttles the
453
  CPU when built with any compiler.
454
 
455
- Allow backspace editing of the nocbreak() buffer.
456
 
457
- pair_content(0, ...) is valid.
458
 
459
- There was no check to ensure that the pnoutrefresh() window fit within
460
  the screen. It now returns an ERR if it doesn't.
461
 
462
- In X11, resize_term() must be called with parameters (0, 0), and only
463
  when SP->resized is set, else it returns ERR.
464
 
465
- Copy _bkgd in resize_window(). Patch found on Frederic L. W. Meunier's
466
  web site.
467
 
468
- slk_clear() now removes the buttons completely, as in ncurses.
469
 
470
- Use the current foreground color for the line attributes (underline,
471
  left, right), unless PDC_set_line_color() is explicitly called. After
472
  setting the line color, you can reset it to this mode via
473
  "PDC_set_line_color(-1)".
474
 
475
- Removed non-macro implementations of COLOR_PAIR() and PAIR_NUMBER().
476
 
477
- Dispensed with PDC_chadd() and PDC_chins() -- waddch() and winsch()
478
  are now (again) the core functions.
479
 
480
- Dropped or made static many obsolete, unused, and/or broken functions,
481
  including PDC_chg_attrs(), PDC_cursor_on() and _off(),
482
  PDC_fix_cursor(), PDC_get_attribute(), PDC_get_cur_col() and _row(),
483
  PDC_set_80x25(), PDC_set_cursor_mode(), PDC_set_rows(),
484
  PDC_wunderline(), PDC_wleftline(), PDC_wrightline(),
485
  XCursesModifierPress() and XCurses_refresh_scrollbar().
486
 
487
- Obsolete/unused defines: _BCHAR, _GOCHAR, _STOPCHAR, _PRINTCHAR
488
  _ENDLINE, _FULLWIN and _SCROLLWIN.
489
 
490
- Obsolete/unused elements of the WINDOW struct: _pmax*, _lastp*,
491
  _lasts*.
492
 
493
- Obsolete/unused elements of the SCREEN struct: orgcbr, visible_cursor,
494
  sizeable, shell, blank, cursor, orig_emulation, font, orig_font,
495
  tahead, adapter, scrnmode, kbdinfo, direct_video, video_page,
496
  video_seg, video_ofs, bogus_adapter. (Some of these persist outside
497
  the SCREEN struct, in the platform directories.) Added mouse_wait and
498
  key_code.
499
 
500
- Removed all the EMALLOC stuff. Straight malloc calls were used
501
  elsewhere; it was undocumented outside of comments in curspriv.h; and
502
  there are better ways to use a substitute malloc().
503
 
504
- Single mouse clicks are now reportable on all platforms (not just
505
  double-clicks). And in general, mouse event reporting is more
506
  consistent across platforms.
507
 
508
- The mouse cursor no longer appears in full-screen mode in Win32 unless
509
  a nonzero mouse event mask is used.
510
 
511
- ALT-keypad input now works in Win32.
512
 
513
- In Win32, SetConsoleMode(ENABLE_WINDOW_INPUT) is not useful, and
514
  appears to be the source of a four-year-old bug report (hanging in
515
  THE) by Phil Smith.
516
 
517
- Removed the PDC_THREAD_BUILD stuff, which has never worked. For the
518
  record: PDCurses is not thread-safe. Neither is ncurses; and the
519
  X/Open curses spec explicitly makes it a non-requirement.
520
 
521
- With the internal compose key system in the X11 port, modifier keys
522
  were breaking out of the compose state, making it impossible to type
523
  accented capitals, etc. Also, Multi_key is now the default compose
524
  key, instead of leaving it undefined by default; and a few more combos
525
  are supported.
526
 
527
- In X11, the first reported mouse event after startup always read as a
528
  double-click at position 0, 0. (This bug was introduced in 2.8.)
529
 
530
- In X11, don't return selection start as a press event. (Shift-click on
531
  button 1 is still returned.)
532
 
533
- In X11, properly handle pasting of high-bit chars. (It was doing an
534
  unwanted sign extension.)
535
 
536
- In X11, BUTTON_MOVED was never returned, although PDC_MOUSE_MOVED was
537
  set.
538
 
539
- The fix in 2.8 for the scroll wheel in X11 wasn't very good -- it did
540
  report the events as scroll wheel events, but it doubled them. Here's
541
  a proper fix.
542
 
543
- Changed mouse handling in X11: Simpler translation table, with
544
  XCursesPasteSelection() called from XCursesButton() instead of the
545
  translation table; require shift with button 1 or 2 for select or
546
  paste when mouse events are being reported (as with ncurses), allowing
547
  passthrough of simple button 2 events. This fixes the previously
548
  unreliable button 2 behavior.
549
 
550
- Modifier keys are now returned on key up in X11, as in Win32. And in
551
  general, modifier key reporting is more consistent across platforms.
552
 
553
- Modifiers are not returned as keys when a mouse click has occurred
554
  since the key press.
555
 
556
- In BIOS mode (in DOS), count successive identical output bytes, and
557
  make only one BIOS call for all of them. This dramatically improves
558
  performance.
559
 
560
- The cursor position was not always updated correctly in BIOS mode.
561
 
562
- In testcurs, the way the ACS test was written, it would really only
563
  work with a) PDCurses (with any compiler), or b) gcc (with any
564
  curses). Here's a more portable implementation.
565
 
566
- Better reporting of mouse events in testcurs.
567
 
568
- Blank out buffer and num before the scanw() test in testcurs, in case
569
  the user just hits enter or etc.; clear the screen after resizing.
570
 
571
- Allow tuidemo to use the last line.
572
 
573
- Separate left/right modifier keys are now reported properly in Win32.
574
  (Everything was being reported as _R.)
575
 
576
- Attempts to redirect input in Win32 now cause program exit and an
577
  error message, instead of hanging.
578
 
579
- Dropped support for the Microway NDP compiler.
580
 
581
- Some modules renamed, rearranged.
582
 
583
- Fixes for errors and warnings when building with Visual C++ 2005.
584
 
585
- In MSVC, the panel library didn't work with the DLL.
586
 
587
- Complete export lists for DLLs.
588
 
589
- Simplified makefiles; moved common elements to .mif files; better
590
  optimization; strip demos when possible.
591
 
592
- Changed makefile targets of "pdcurses.a/lib" and "panel.a/lib" to
593
  $(LIBCURSES) and $(LIBPANEL). Suggestion of Doug Kaufman.
594
 
595
- Changed "install" target in the makefile to a double-colon rule, to
596
  get around a conflict with INSTALL on non-case-sensitive filesystems,
597
  such as Mac OS X's HFS+. Reported by Douglas Godfrey et al.
598
 
599
- Make PDCurses.man dependent on manext. Suggestion of Tiziano Mueller.
600
 
601
- Set up configure.ac so autoheader works; removed some obsolescent
602
  macros. Partly the suggestion of T.M.
603
 
604
- The X11 port now builds in the x11 directory (including the demos), as
605
  with other ports.
606
 
607
- The X11 port should now build on more 64-bit systems. Partly due to
608
  M.H.
609
 
610
- The default window title and icons for the X11 port are now "PDCurses"
611
  instead of "XCurses".
612
 
613
- Internal functions and variables made static where possible.
614
 
615
- Adopted a somewhat more consistent naming style: Internal functions
616
  with external linkage, and only those, have the prefix "PDC_";
617
  external variables that aren't part of the API use "pdc_"; static
618
  functions use "_"; and "XC_" and "xc_" prefixes are used for functions
619
  and variables, respectively, that are shared between both processes in
620
  the X11 port. Also eliminated camel casing, where possible.
621
 
622
- Changed the encoding for non-ASCII characters in comments and
623
  documentation from Latin-1 to UTF-8.
624
 
625
------------------------------------------------------------------------
626
 
627
PDCurses 2.8 - 2006/04/01
628
=========================
629
 
630
As with the previous version, you should assume that apps linked against
631
older dynamic versions of the library won't work with this one until
632
recompiled.
633
 
634
New features:
635
 
636
- Simpler, faster.
637
 
638
- Declarations for all supported, standard functions, per the X/Open
639
  Curses 4.2 spec, with the notable exception of getch() and ungetch().
640
  You can disable the use of the macro versions by defining NOMACROS
641
  before including curses.h (see xmas.c for an example). NOMACROS yields
642
  smaller but theoretically slower executables.
643
 
644
- New functions: vwprintw(), vwscanw(), vw_printw() and vw_scanw(). This
645
  completes the list of X/Open 4.2 functions, except for those concerned
646
  with attr_t and wide characters. Some (especially the terminfo/termcap
647
  functions) aren't yet fully fleshed out, though.
648
 
649
- Non-macro implementations for COLOR_PAIR(), PAIR_NUMBER(), getbkgd(),
650
  mvgetnstr(), mvwgetnstr(), mvhline(), mvvline(), mvwhline(), and
651
  mvwvline(). (The macros are still available, too.)
652
 
653
- newterm() works now, in a limited way -- the parameters are ignored,
654
  and only the first invocation will work (i.e., only one SCREEN can be
655
  used).
656
 
657
- start_color() works now -- which is to say, if you _don't_ call it,
658
  you'll only get monochrome output. Also, without calling it, the
659
  terminal's default colors will be used, where supported (currently
660
  only in Win32). This is equivalent to the PDC_ORIGINAL_COLORS behavior
661
  introduced in 2.7, except that _only_ the default colors will be used.
662
  (PDC_ORIGINAL_COLORS is still available, if you want to combine the
663
  use of specific colors and the default colors.)
664
 
665
- New logic for termname() and longname(): termname() always returns
666
  "pdcurses"; longname() returns "PDCurses for [platform] [adapter]
667
  [COLOR/MONO]-YxX" (adapter is only defined for DOS and OS/2). This is
668
  the first time these functions return _anything_ in Win32.
669
 
670
- New installation method for XCurses: the header files are placed in a
671
  subdirectory "xcurses" within the include directory, rather than being
672
  renamed. (But the renamed xcurses.h and xpanel.h are also installed,
673
  for backwards compatibility.) curspriv.h and term.h are now available,
674
  and existing curses-based code need no longer be edited to use
675
  XCurses' curses.h. And with no more need for explicit XCursesExit()
676
  calls (see below), your code need not be changed at all to move from
677
  another curses implementation to XCurses. It can be as simple as "gcc
678
  -I/usr/local/include/xcurses -lXCurses -oprogname progname.c".
679
 
680
- Combined readme.* into this HISTORY file, and incorporated the old 1.x
681
  (PCcurses) history.
682
 
683
- New functionality for the testcurs demo: ACS character display; menu
684
  support for PgUp, PgDn, Home and End; centered menu; and it can now
685
  be resized in X.
686
 
687
- Added modified versions of the rain and worm demos from ncurses.
688
 
689
Bug fixes and such:
690
 
691
- Big cleanup of dead and redundant code, including unneeded defines,
692
  ifdefs, and structure elements.
693
 
694
- flushinp() was not implemented for Win32.
695
 
696
- resetty() was not restoring LINES and COLS.
697
 
698
- nonl() made '\n' print a line feed without carriage return. This was
699
  incorrect.
700
 
701
- Removed bogus implementation of intrflush().
702
 
703
- The line-breakout optimization system, disabled by default in 2.7, is
704
  removed in 2.8. It simply didn't work, and never has. (The typeahead()
705
  function remains, for compatibility, but does nothing.)
706
 
707
- The declarations for the printw() and scanw() function families were
708
  erroneously ifdef'd.
709
 
710
- Safer printw() calls on platforms that support vsnprintf().
711
 
712
- Use the native vsscanf() in DJGPP, MinGW and Cygwin.
713
 
714
- ACS_BLOCK now works in X.
715
 
716
- Explicit calls to XCursesExit() are no longer needed.
717
 
718
- XCURSES is now defined automatically if not DOS, OS2 or WIN32.
719
 
720
- The default icon for XCurses wasn't working (had to remove the focus
721
  hint code to fix this). Also, the default title is now "XCurses"
722
  instead of "main".
723
 
724
- Incorrect dimensions (undercounting by two in each direction) were
725
  shown while resizing in X.
726
 
727
- Scroll wheel events were not always correctly reported in X.
728
 
729
- 32 bits are enough for the "long" chtype, but 64 bits were used on a
730
  64-bit system, wasting memory. Now conditioned on _LP64. This could be
731
  faster, too.
732
 
733
- The short, 16-bit chtype now works with XCurses.
734
 
735
- Corrected return value for is_linetouched(), is_wintouched(),
736
  can_change_color() and isendwin() (bool instead of int).
737
 
738
- timeout(), wtimeout(), idcok() and immedok() return void.
739
 
740
- pair_content() takes a short.
741
 
742
- Replaced incorrect usages of attr_t with chtype. attr_t is still
743
  typedef'd, for backwards compatibility. (It's supposed to be used for
744
  the WA_*-style functions, which PDCurses doesn't yet support.)
745
 
746
- Added const where required by the spec, and in other appropriate
747
  places.
748
 
749
- Removed PDC_usleep(). napms() is now the core delay routine.
750
 
751
- Fixed poll() support in napms().
752
 
753
- Various changes to the internal PDC_* functions -- don't depend on
754
  these, and don't use them unless you absolutely have to.
755
 
756
- Some routines accessed window structures in their variable
757
  declarations, _before_ checking for a NULL window pointer.
758
 
759
- Dropped support for the undocumented PDC_FULL_DISPLAY, wtitle(), and
760
  PDC_print().
761
 
762
- Cleaned up remaining warnings.
763
 
764
- Reduced unnecessary #include directives -- speeds up compilation.
765
 
766
- Fix for demos build in Borland/DOS -- the makefile in 2.7 didn't
767
  specify the memory model. Reported by Erwin Waterlander.
768
 
769
- Simplified the makefiles; e.g., some now build each demo in a single
770
  step, and Watcom no longer uses demos.lnk. Also, the demo exes are now
771
  stripped when possible; maximum compression used for archives built
772
  by the makefiles; xcurses-config removed as part of "make distclean";
773
  and I tweaked optimization for some platforms.
774
 
775
- Reverted to /usr/local/ as default installation directory for XCurses.
776
 
777
- Upgraded to autoconf 2.59... instantly doubling the size of the
778
  configure script. Ah well. Otherwise, simplified the build system.
779
 
780
- Dropped support for pre-ANSI compilers. (It hasn't worked since at
781
  least version 2.4, anyway.)
782
 
783
- Revised and, I hope, clarified the boilerplate and other comments.
784
 
785
- Simplified logging and RCS ids; added RCS ids where missing.
786
 
787
- Consistent formatting for all code, approximately equivalent to
788
  "indent -kr -i8 -bl -bli0", with adjustments for 80 columns.
789
 
790
------------------------------------------------------------------------
791
 
792
PDCurses 2.7 - 2005/12/30
793
=========================
794
 
795
INTRODUCTION:
796
 
797
 Hello all. As of a few weeks ago, I'm the new maintainer for PDCurses.
798
 Here's a brief summary of changes in this release. (More details are
799
 available in the CVS log and trackers on SourceForge.)
800
 
801
NEW FEATURES:
802
 
803
- Functions: delscreen(), getattrs(), has_key(), slk_color(),
804
  wcolor_set(), wtimeout().
805
 
806
- Macros: color_set(), mvhline(), mvvline(), mvwgetnstr(), mvwhline(),
807
  mvwvline(), timeout(), wresize().
808
 
809
- Stub implementations of terminfo functions (including a term.h).
810
 
811
- More stubs for compatibility: filter(), getwin(), putwin(),
812
  noqiflush(), qiflush(), scr_dump(), scr_init(), scr_restore(),
813
  scr_set(), use_env(), vidattr(), vidputs().
814
 
815
- The terminal's default colors are used as curses' default colors when
816
  the environment variable "PDC_ORIGINAL_COLORS" is set to any value
817
  (Win32 only at the moment).
818
 
819
- Simplified build system.
820
 
821
- Replaced PDC_STATIC_BUILD with its opposite, PDC_DLL_BUILD (see .mak
822
  files for more info).
823
 
824
- Minimal implementation of color_content() -- no longer a stub.
825
 
826
- Added the remaining ACS defines (ACS_S3, ACS_BBSS, etc.) for
827
  DOS/OS2/Win; "enhanced" versions of existing ACS characters used.
828
 
829
- Support for scroll wheels.
830
 
831
- Support for Pacific C.
832
 
833
BUGS FIXED:
834
 
835
- Builds correctly (including demos) on all tested platforms (see
836
  below); nearly all compiler warnings have been cleaned up; the ptest
837
  demo is built on all platforms; "clean" targets are improved.
838
 
839
- The ability to build ncurses_tests has been restored (see demos dir).
840
 
841
- Line-breakout optimization now defaults to off (equivalent to
842
  "typeahead(-1)"), so output is not interrupted by keystrokes (it's
843
  supposed to resume on the next refresh(), which wasn't working).
844
 
845
- Implicit wrefresh() in wgetch() was not being invoked in nodelay mode.
846
 
847
- subpad() was erroneously offsetting from the origin coordinates of the
848
  parent pad (which are always -1,-1).
849
 
850
- In wborder(), whline(), and wvline(), the current (wattrset) attribute
851
  was being used, but not the current background (wbkgd).
852
 
853
- Allow Russian 'r' character ASCII 0xe0 to be returned.
854
 
855
- termattrs() now also returns A_UNDERLINE, A_REVERSE.
856
 
857
- In Win32, with large scrollback buffers set, there was an unwanted
858
  "scrollup" effect on startup.
859
 
860
- Revamped keyboard handling for Win32.
861
 
862
- New screen resize method for Win32.
863
 
864
- napms(), delay_output(), etc. now work with Cygwin.
865
 
866
- curs_set(0) wasn't working in Win32 in full-screen (ALT-ENTER) mode --
867
  the cursor stayed on.
868
 
869
- The A_REVERSE attribute was broken in XCurses.
870
 
871
- On 64-bit systems, XCurses was ignoring every other keystroke.
872
 
873
- Added focus hints for XCurses.
874
 
875
- Demos (except for tuidemo) once again have their proper titles in
876
  XCurses (using Xinitscr() instead of the obsolete XCursesProgramName).
877
 
878
- The 16-bit chtype is a working option again (by removing #define
879
  CHTYPE_LONG from curses.h), except in XCurses. It's not recommended;
880
  but if your needs are limited, it still works.
881
 
882
- Reset screen size in resetty() under DOS, as in Win32 and OS/2.
883
 
884
- Changes for cursor size under DOS.
885
 
886
- Automatic setting of BIOS mode for CGA under DOS now works.
887
 
888
- The cursor is now always updated in PDC_gotoxy(); this fixes the
889
  problem of missing characters in BIOS mode.
890
 
891
- Macros nocbreak(), cbreak(), nocrmode(), crmode(), nodelay(),
892
  nl() and nonl() now return OK.
893
 
894
- ERR and OK are now defined as -1 and 0, respectively, for
895
  compatibility with other curses implementations -- note that this
896
  change is not binary compatible; you'll have to rebuild programs that
897
  use shared/dynamic libraries.
898
 
899
- Added "const" to prototypes where appropriate.
900
 
901
- Miscellaneous code cleanup.
902
 
903
ACKNOWLEDGEMENTS:
904
 
905
 Walter Briscoe
906
 Jean-Pierre Demailly
907
 Ruslan Fedyarov
908
 Warren Gay
909
 Florian Grosse-Coosmann
910
 Vladimir Kokovic
911
 Matt Maloy
912
 K.H. Man
913
 Michael Ryazanov
914
 Ron Thibodeau
915
 Alexandr Zamaraev
916
 
917
 and of course, MARK HESSLING, for his over 13 years of service as the
918
 maintainer of PDCurses. Plus, thanks to all who've reported bugs or
919
 requested features. Apologies to anyone I've forgotten.
920
 
921
 I've tested this version on Turbo C++ 3.0 and Borland C++ 3.1 for DOS;
922
 DJGPP 2.X; Open Watcom 1.3 for DOS (16 and 32-bit), Windows and OS/2;
923
 EMX 0.9d and the "newgcc" version of EMX; Borland C++ 5.5 for Windows;
924
 recent versions of MinGW, Cygwin, LCC-Win32 and Microsoft Visual C++;
925
 and gcc under several flavors of Linux, Mac OS X, *BSD and Solaris.
926
 
927
-- William McBrine
928
 
929
------------------------------------------------------------------------
930
 
931
PDCurses 2.6 - 2003/01/08
932
=========================
933
 
934
INTRODUCTION:
935
 
936
 This release of PDCurses includes the following changes:
937
 
938
BUGS FIXED:
939
 
940
- Allow accented characters on Win32 platform when run on non-English
941
  keyboards.
942
 
943
- Allow "special" characters like Ctrl-S, Ctrl-Q under OS/2 to be returned.
944
 
945
- Some bugs with halfdelay() fixed by William McBrine.
946
 
947
- pechochar() should now work correctly.
948
 
949
- redrawwin() macro in curses.h was incorrect - fixed by Alberto Ornaghi
950
 
951
- Don't include "special" characters like KEY_SHIFT_L to be returned in
952
  getnstr() family. Bug 542913
953
 
954
- Entering TAB in wgetnstr() no longer exceeds requested buffer size.
955
  Bug 489233
956
 
957
- Fixed bug 550066, scrollok() and pads.
958
  Also beep() called when buffer exceeded. Bug 562041.
959
 
960
- Reverse video of X11 selection reinstated. Pablo Garcia Abio??
961
 
962
- Right Alt modifier now works like left Alt modifier under Win32
963
 
964
- Add support for all libXaw replacement libraries with Scrollbar bug.
965
  Note that for this to work, you still have to change the libXaw
966
  replacement libraries to fix the bug :-(
967
 
968
- Don't trap signals in XCurses if calling application has ignored them.
969
  Change by Frank Heckenbach.
970
 
971
- Bug reports from Warren W. Gay:
972
  - Fix termattrs() to return A_REVERSE and A_BLINK on all platforms.
973
  - Fix definition of getsyx() and setsyx() to be consistent with
974
    ncurses. Bug 624424.
975
  - Fix definition of echo() and noecho(). Bug 625001.
976
  - Fix definition of keypad() and leaveok(). Bug 632653.
977
  - Missing panel_hidden() prototype. Bug 649320.
978
 
979
- Fixed bug with calling def_prog_mode(), resize_term(),
980
  reset_prog_mode(); the resize details were being lost.
981
 
982
NEW FEATURES:
983
 
984
- Clipboard support now available on DOS platform, but handled
985
  internally to the currently running process.
986
 
987
- New X11 resource: textCursor, allows the text cursor to be specified
988
  as a vertical bar, or the standard horizontal bar. Thanks to Frank
989
  Heckenbach for the suggestion.
990
 
991
NEW COMPILER SUPPORT:
992
 
993
- lcc-win32 now works correctly
994
 
995
------------------------------------------------------------------------
996
 
997
PDCurses 2.5 - 2001/11/26
998
=========================
999
 
1000
INTRODUCTION:
1001
 
1002
 This release of PDCurses includes the following changes:
1003
 
1004
- Set BASE address for Win32 DLL
1005
 
1006
- Add KEY_SUP and KEY_SDOWN.
1007
 
1008
- Add PDC_set_line_color()
1009
 
1010
- Add blink support as bold background
1011
 
1012
- Add bold colors
1013
 
1014
- Add getbkgd() macro
1015
 
1016
- Add new PDC functions for adding underline, overline, leftline and
1017
  rightline
1018
 
1019
- Add support for shifted keypad keys.
1020
 
1021
- Allow more keypad keys to work under Win32
1022
 
1023
- Change Win32 and OS/2 DLL name to curses.dll
1024
 
1025
- Change example resources to allow overriding from the command line
1026
 
1027
- Changes for building cleanly on OS/2
1028
 
1029
- Changes to handle building XCurses under AIX
1030
 
1031
- Check if prefresh() and pnoutrefresh() parameters are valid.
1032
 
1033
- Ensure build/install works from any directory
1034
 
1035
- Handle platforms where X11 headers do not typedef XPointer.
1036
 
1037
- Mention that Flexos is likely out-of-date.
1038
 
1039
- Pass delaytenths to XCurses_rawgetch()
1040
 
1041
- Remove boldFont
1042
 
1043
- Updates for cursor blinking and italic.
1044
 
1045
BUGS FIXED:
1046
 
1047
- Fix bug with getting Win32 clipboard contents. Added new
1048
  PDC_freeclipboard() function.
1049
 
1050
- Fix bug with halfdelay()
1051
 
1052
- Fix bug with mouse interrupting programs that are not trapping mouse
1053
  events under Win32.
1054
 
1055
- Fix return value from curs_set()
1056
 
1057
- Reverse the left and right pointing bars in ALT_CHARSET
1058
 
1059
NEW COMPILER SUPPORT:
1060
 
1061
- Add QNX-RTP port
1062
 
1063
------------------------------------------------------------------------
1064
 
1065
PDCurses 2.4 - 2000/01/17
1066
=========================
1067
 
1068
INTRODUCTION:
1069
 
1070
 This release of PDCurses includes the following changes:
1071
 
1072
- full support of X11 selection handling
1073
 
1074
- removed the need for the cursos2.h file
1075
 
1076
- enabled the "shifted" key on the numeric keypad
1077
 
1078
- added native clipboard support for X11, Win32 and OS/2
1079
 
1080
- added extra functions for obtaining internal PDCurses status
1081
 
1082
- added clipboard and key modifier tests in testcurs.c
1083
 
1084
- fixes for panel library
1085
 
1086
- key modifiers pressed by themselves are now returned as keys:
1087
  KEY_SHIFT_L KEY_SHIFT_R KEY_CONTROL_L KEY_CONTROL_R KEY_ALT_L KEY_ALT_R
1088
  This works on Win32 and X11 ports only
1089
 
1090
- Added X11 shared library support
1091
 
1092
- Added extra slk formats supported by ncurses
1093
 
1094
- Fixed bug with resizing the terminal when slk were on.
1095
 
1096
- Changed behavior of slk_attrset(), slk_attron() slk_attroff()
1097
  functions to work more like ncurses.
1098
 
1099
BUGS FIXED:
1100
 
1101
- some minor bug and portability fixes were included in this release
1102
 
1103
NEW FUNCTIONS:
1104
 
1105
- PDC_getclipboard() and PDC_setclipboard() for accessing the native
1106
  clipboard (X11, Win32 and OS/2)
1107
 
1108
- PDC_set_title() for setting the title of the window (X11 and Win32
1109
  only)
1110
 
1111
- PDC_get_input_fd() for getting the file handle of the PDCurses input
1112
 
1113
- PDC_get_key_modifiers() for getting the keyboard modifier settings at
1114
  the time of the last (w)getch()
1115
 
1116
- Xinitscr() (only for X11 port) which allows standard X11 switches to
1117
  be passed to the application
1118
 
1119
NEW COMPILER SUPPORT:
1120
 
1121
- MingW32 GNU compiler under Win95/NT
1122
 
1123
- Cygnus Win32 GNU compiler under Win95/NT
1124
 
1125
- Borland C++ for OS/2 1.0+
1126
 
1127
- lcc-win32 compiler under Win95/NT
1128
 
1129
ACKNOWLEDGEMENTS: (for this release)
1130
 
1131
 Georg Fuchs for various changes.
1132
 Juan David Palomar for pointing out getnstr() was not implemented.
1133
 William McBrine for fix to allow black/black as valid color pair.
1134
 Peter Preus for pointing out the missing bccos2.mak file.
1135
 Laura Michaels for a couple of bug fixes and changes required to
1136
 support Mingw32 compiler.
1137
 Frank Heckenbach for PDC_get_input_fd() and some portability fixes and
1138
 the fixes for panel library.
1139
 Matthias Burian for the lcc-win32 compiler support.
1140
 
1141
------------------------------------------------------------------------
1142
 
1143
PDCurses 2.3 - 1998/07/09
1144
=========================
1145
 
1146
INTRODUCTION:
1147
 
1148
 This release of PDCurses includes the following changes:
1149
 
1150
- added more System V R4 functions
1151
 
1152
- added Win32 port
1153
 
1154
- the X11 port is now fully functional
1155
 
1156
- the MS Visual C++ Win32 port now includes a DLL
1157
 
1158
- both the X11 and Win32 ports support the mouse
1159
 
1160
- the slk..() functions are now functional
1161
 
1162
- support for scrollbars under X11 are experimental at this stage
1163
 
1164
- long chtype extended to non-Unix ports
1165
 
1166
 The name of the statically built library is pdcurses.lib (or
1167
 pdcurses.a). The name of the DLL import library (where applicable) is
1168
 curses.lib.
1169
 
1170
BUGS FIXED:
1171
 
1172
- some minor bugs were corrected in this release
1173
 
1174
NEW FUNCTIONS:
1175
 
1176
- slk..() functions
1177
 
1178
NEW COMPILER SUPPORT:
1179
 
1180
- MS Visual C++ under Win95/NT
1181
 
1182
- Watcom C++ under OS/2, Win32 and DOS
1183
 
1184
- two EMX ports have been provided:
1185
  - OS/2 only using OS/2 APIs
1186
  - OS/2 and DOS using EMX video support routines
1187
 
1188
EXTRA OPTIONS:
1189
 
1190
 PDCurses recognizes two environment variables which determines the
1191
 initialization and finalization behavior.  These environment variables
1192
 do not apply to the X11 port.
1193
 
1194
 PDC_PRESERVE_SCREEN
1195
 If this environment variable is set, PDCurses will not clear the screen
1196
 to the default white on black on startup.  This allows you to overlay
1197
 a window over the top of the existing screen background.
1198
 
1199
 PDC_RESTORE_SCREEN
1200
 If this environment variable is set, PDCurses will take a copy of the
1201
 contents of the screen at the time that PDCurses is started; initscr(),
1202
 and when endwin() is called, the screen will be restored.
1203
 
1204
 
1205
ACKNOWLEDGEMENTS: (for this release)
1206
 
1207
 Chris Szurgot for original Win32 port.
1208
 Gurusamy Sarathy for some updates to the Win32 port.
1209
 Kim Huron for the slk..() functions.
1210
 Florian Grosse Coosmann for some bug fixes.
1211
 Esa Peuha for reducing compiler warnings.
1212
 Augustin Martin Domingo for patches to X11 port to enable accented
1213
 characters.
1214
 
1215
------------------------------------------------------------------------
1216
 
1217
PDCurses 2.2 - 1995/02/12
1218
=========================
1219
 
1220
INTRODUCTION:
1221
 
1222
 This release of PDCurses has includes a number of major changes:
1223
 
1224
- The portable library functions are now grouped together into single
1225
  files with the same arrangement as System V R4 curses.
1226
 
1227
- A panels library has been included. This panels library was written by
1228
  Warren Tucker.
1229
 
1230
- Quite a few more functions have been supplied by Wade Schauer and
1231
  incorporated into release 2.2. Wade also supplied the support for the
1232
  Microway NDP C/C++ 32 bit DOS compiler.
1233
 
1234
- The curses datatype has been changed from an unsigned int to a long.
1235
  This allows more attributes to be stored as well as increasing the
1236
  number of color-pairs from 32 to 64.
1237
 
1238
- Xwindows port (experimental at the moment).
1239
 
1240
BUGS FIXED:
1241
 
1242
- mvwin() checked the wrong coordinates
1243
 
1244
- removed DESQview shadow memory buffer checking bug in curses.h in
1245
  #define for wstandout()
1246
 
1247
- lots of others I can't remember
1248
 
1249
NEW FUNCTIONS:
1250
 
1251
- Too many to mention. See intro.man for a complete list of the
1252
  functions PDCurses now supports.
1253
 
1254
COMPILER SUPPORT:
1255
 
1256
- DJGPP 1.12 is now supported. The run-time error that caused programs
1257
  to crash has been removed.
1258
 
1259
- emx 0.9a is supported. A program compiled for OS/2 should also work
1260
  under DOS if you use the VID=EMX switch when compiling. See the
1261
  makefile for details.
1262
 
1263
- The Microway NDP C/C++ DOS compiler is now supported. Thanks to Wade
1264
  Schauer for this port.
1265
 
1266
- The Watcom C++ 10.0 DOS compiler is now supported. Thanks to Pieter
1267
  Kunst for this port.
1268
 
1269
- The library now has many functions grouped together to reduce the size
1270
  of the library and to improve the speed of compilation.
1271
 
1272
- The "names" of a couple of the compilers in the makefile has changed;
1273
  CSET2 is now ICC and GO32 is now GCC.
1274
 
1275
EXTRA OPTIONS:
1276
 
1277
 One difference between the behavior of PDCurses and Unix curses is the
1278
 attributes that are displayed when a character is cleared. Under Unix
1279
 curses, no attributes are displayed, so the result is always black.
1280
 Under PDCurses, these functions clear with the current attributes in
1281
 effect at the time. With the introduction of the bkgd functions, by
1282
 default, PDCurses clears using the value set by (w)bkgd(). To have
1283
 PDCurses behave the same way as it did before release 2.2, compile with
1284
 -DPDCURSES_WCLR
1285
 
1286
ACKNOWLEDGEMENTS: (for this release)
1287
 
1288
 Pieter Kunst, David Nugent, Warren Tucker, Darin Haugen, Stefan Strack,
1289
 Wade Schauer and others who either alerted me to bugs or supplied
1290
 fixes.
1291
 
1292
------------------------------------------------------------------------
1293
 
1294
PDCurses 2.1 - 1993/06/20
1295
=========================
1296
 
1297
INTRODUCTION:
1298
 
1299
 The current code contains bug fixes for the DOS and OS/2 releases and
1300
 also includes an alpha release for Unix. The Unix release uses another
1301
 public domain package (mytinfo) to handle the low-level screen writes.
1302
 mytinfo was posted to comp.sources.unix (or misc) in December 1992 or
1303
 January 1993. Unless you are a glutton for punishment I would recommend
1304
 you avoid the Unix port at this stage.
1305
 
1306
 The other major addition to PDCurses is the support for DJGPP (the DOS
1307
 port of GNU C++). Thanks to David Nugent .
1308
 
1309
 Other additions are copywin() function, function debugging support and
1310
 getting the small and medium memory models to work. The testcurs.c demo
1311
 program has also been changed significantly and a new demo program,
1312
 tuidemo, has been added.
1313
 
1314
 Some people have suggested including information on where to get dmake
1315
 from. oak.oakland.edu in /pub/msdos/c
1316
 
1317
OTHER NOTES:
1318
 
1319
 Under DOS, by default, screen writes to a CGA monitor are done via the
1320
 video BIOS rather than by direct video memory writes. This is due to
1321
 the CGA "snow" problem. If you have a CGA monitor and do not suffer
1322
 from snow, you can compile private\_queryad.c with CGA_DIRECT defined.
1323
 This will then use cause PDCurses to write directly to the CGA video
1324
 memory.
1325
 
1326
 Function debugging: Firstly to get function debugging, you have to
1327
 compile the library with OPT=N in the makefile. This also turns on
1328
 compiler debugging. You can control when you want PDCurses to write to
1329
 the debug file (called trace in the current directory) by using the
1330
 functions traceon() and traceoff() in your program.
1331
 
1332
 Microsoft C 6.00 Users note:
1333
 ----------------------------
1334
 
1335
 With the addition of several new functions, using dmake to compile
1336
 PDCurses now causes the compiler to run "out of heap space in pass 2".
1337
 Using the 6.00AX version (DOS-Extended) to compile PDCurses fixes this
1338
 problem; hence the -EM switch.
1339
 
1340
 Functional changes
1341
 ------------------
1342
 
1343
 Added OS/2 DLL support.
1344
 
1345
 A few curses functions have been fixed to exhibit their correct
1346
 behavior and make them more functionally portable with System V
1347
 curses. The functions that have changed are overlay(), overwrite() and
1348
 typeahead.
1349
 
1350
 overlay() and overwrite()
1351
 
1352
 Both of theses functions in PDCurses 2.0 allowed for one window to be
1353
 effectively placed on top of another, and the characters in the first
1354
 window were overlaid or overwritten starting at 0,0 in both windows.
1355
 This behavior of these functions was not correct. These functions only
1356
 operate on windows that physically overlap with respect to the
1357
 displayed screen. To achieve the same functionality as before, use the
1358
 new function copywin(). See the manual page for further details.
1359
 
1360
 typeahead()
1361
 
1362
 This function in PDCurses 2.0 effectively checked to see if there were
1363
 any characters remaining in the keyboard buffer. This is not the
1364
 behavior exhibited by System V curses. This function is intended
1365
 purely to set a flag so that curses can check while updating the
1366
 physical screen if any keyboard input is pending. To achieve the same
1367
 effect with typeahead() under PDCurses 2.1 the following code should be
1368
 used.
1369
 
1370
 In place of...
1371
 
1372
        while(!typeahead(stdin))
1373
         {
1374
                /* do something until any key is pressed... */
1375
         }
1376
 
1377
 use...
1378
 
1379
        /* getch() to return ERR if no key pending */
1380
        nodelay(stdscr,TRUE);
1381
        while(getch() == (ERR))
1382
         {
1383
                /* do something until any key is pressed... */
1384
         }
1385
 
1386
 
1387
ACKNOWLEDGEMENTS: (in no particular order)
1388
 
1389
 Jason Shumate, Pieter Kunst, David Nugent, Andreas Otte, Pasi
1390
 Hamalainen, James McLennan, Duane Paulson, Ib Hojme
1391
 
1392
 Apologies to anyone I may have left out.
1393
 
1394
------------------------------------------------------------------------
1395
 
1396
PDCurses 2.0 - 1992/11/23
1397
=========================
1398
 
1399
INTRODUCTION:
1400
 
1401
 Well, here it finally is; PDCurses v2.0.
1402
 
1403
 PDCurses v2.0 is an almost total rewrite of PCcurses 1.4 done by John
1404
 'Frotz' Fa'atuai, the previous maintainer. It adds support for OS/2 as
1405
 well as DOS.
1406
 
1407
 This version has been tested with Microsoft C v6.0, QuickC v2.0 and
1408
 Borland C++ 2.0 under DOS and Microsoft C v6.0 and TopSpeed c v3.02
1409
 under OS/2 2.0. Also the library has been compiled successfully with
1410
 emx 0.8e, C Set/2 and Watcom 9. Most testing was done with the large
1411
 memory model, where applicable. The large memory model is probably the
1412
 best model to use.
1413
 
1414
 The amount of testing has not been as extensive as I would have liked,
1415
 but demands on releasing a product have outweighed the product's
1416
 quality. Nothing new with that !! Hopefully with wider circulation,
1417
 more bugs will be fixed more quickly.
1418
 
1419
 I have included just 1 makefile which is suitable for dmake 3.8 for
1420
 both DOS and OS/2. The makefile does not rely on customization of the
1421
 dmake.ini file.
1422
 
1423
 If you discover bugs, and especially if you have fixes, please let me
1424
 know ASAP.
1425
 
1426
 The source to the library is distributed as a zip file made with zip
1427
 1.9. You will need Info-ZIP unzip 5.0 to unzip. Follow the directions
1428
 below to compile the library.
1429
 
1430
DIRECTIONS:
1431
 
1432
 1. Create a new directory in which to unzip pdcurs20.zip. This will
1433
    create a curses directory and a number of subdirectories containing
1434
    source code for the library and utilities and the documentation.
1435
 
1436
 2. Make changes to the makefile where necessary:
1437
    Change the MODEL or model macro to the appropriate value (if it
1438
    applies to your compiler). Use model for Borland compilers.
1439
 
1440
    Change any paths in the defined macros to be suitable for your
1441
    compiler.
1442
 
1443
 3. Invoke DMAKE [-e environment_options] [target]
1444
 
1445
    where environment_options are:
1446
 
1447
        OS (host operating system)
1448
        COMP (compiler)
1449
        OPT (optimized version or debug version) - optional. default Y
1450
        TOS (target operating system) - optional. default OS
1451
 
1452
    see the makefile for valid combinations
1453
 
1454
    targets: all, demos, lcursesd.lib, manual...
1455
 
1456
    NB. dmake is case sensitive with targets, so those environments that
1457
    use an upper case model value (eg MSC) MUST specify the library
1458
    target as for eg. Lcursesd.lib
1459
 
1460
    The makefile is by default set up for Borland C++. The use of -e
1461
    environment_options override these defaults. If you prefer, you can
1462
    just change the defaults in the makefile and invoke it without the
1463
    -e switch.
1464
 
1465
OTHER NOTES:
1466
 
1467
 The documentation for the library is built into each source file, a
1468
 couple of specific doc files and the header files. A program is
1469
 supplied (manext) to build the manual. This program gets compiled when
1470
 you build the documentation.
1471
 
1472
 To generate the library response file correctly, I had to write a quick
1473
 and dirty program (buildlrf) to achieve this. Originally the makefiles
1474
 just had statements like: "echo -+$(OBJ)\$* & >> $(LRF)" which appended
1475
 a suitable line to the response file. Unfortunately under some
1476
 combinations of makefiles and command processors (eg. nmake and 4DOS)
1477
 the & would get treated as stderr and the echo command would fail.
1478
 
1479
 The original source for PDCurses that I received from the previous
1480
 maintainer contained support for the FLEXOS operating system. Not
1481
 having access to it, I could not test the changes I made so its support
1482
 has fallen by the wayside. If you really need to have PDCurses running
1483
 under FLEXOS, contact me and I will see what can be arranged.
1484
 
1485
 Under DOS, by default, screen writes to a CGA monitor are done via the
1486
 video BIOS rather than by direct video memory writes. This is due to
1487
 the CGA "snow" problem. If you have a CGA monitor and do not suffer
1488
 from snow, you can compile private\_queryad.c with CGA_DIRECT defined.
1489
 This will then use cause PDCurses to write directly to the CGA video
1490
 memory.
1491
 
1492
 Added System V color support.
1493
 
1494
COMPILER-SPECIFIC NOTES:
1495
 
1496
 Microsoft C
1497
 -----------
1498
 
1499
 It is possible with MSC 6.0 to build the OS/2 libraries and demo
1500
 programs from within DOS. This is the only case where it is possible to
1501
 specify the value of TOS on the command line to be OS2 and the value of
1502
 OS be DOS.
1503
 
1504
 C Set/2
1505
 -------
1506
 
1507
 I have only tested the library using the migration libraries. I doubt
1508
 that the demo programs will work without them.
1509
 
1510
 emx
1511
 ---
1512
 
1513
 Testing has been done with 0.8e of emx together with the 16_to_32
1514
 libraries. The emx\lib directory should include the vio32.lib and
1515
 kbd32.lib libraries from the 16_to_32 package.
1516
 
1517
BUGS and UNFINISHED BUSINESS:
1518
 
1519
- PDC_set_ctrl_break() function does not work under OS/2.
1520
 
1521
- win_print() and PDC_print() do not work under OS/2.
1522
 
1523
- The file todo.man in the doc directory also lists those functions of
1524
  System V 3.2 curses not yet implemented. Any volunteers?
1525
 
1526
ACKNOWLEDGEMENTS:
1527
 
1528
 John 'Frotz' Fa'atuai, the previous maintainer for providing an
1529
 excellent base for further development.
1530
 John Burnell , for the OS/2 port.
1531
 John Steele, Jason (finally NOT a John) Shumate....
1532
 for various fixes and suggestions.
1533
 Eberhardt Mattes (author of emx) for allowing code based on his
1534
 C library to be included with PDCurses.
1535
 Several others for their support, moral and actual.
1536
 
1537
-- Mark Hessling
1538
 
1539
------------------------------------------------------------------------
1540
 
1541
PDCurses 2.0Beta - 1991/12/21
1542
=============================
1543
 
1544
Changed back from short to int. (int is the correct size for the default
1545
platform. Short might be too short on some platforms. This is more
1546
portable. I, also, made this mistake.)
1547
 
1548
Many functions are now macros.  If you want the real thing, #undef the
1549
macro. (X/Open requirement.)
1550
 
1551
Merged many sources into current release.
1552
 
1553
Added many X/Open routines (not quite all yet).
1554
 
1555
Added internal documentation to all routines.
1556
 
1557
Added a HISTORY file to the environment.
1558
 
1559
Added a CONTRIB file to the environment.
1560
 
1561
------------------------------------------------------------------------
1562
 
1563
PDCurses 1.5Beta - 1990/07/14
1564
=============================
1565
 
1566
Added many levels of compiler support. Added mixed prototypes for all
1567
"internal" routines. Removed all assembly language.  Added EGA/VGA
1568
support.  Converted all #ifdef to #if in all modules except CURSES.H and
1569
CURSPRIV.H. Always include ASSERT.H.  Added support for an external
1570
malloc(), calloc() and free(). Added support for FAST_VIDEO
1571
(direct-memory writes). Added various memory model support (for
1572
FAST_VIDEO). Added much of the December 1988 X/Open Curses
1573
specification.
1574
 
1575
-- John 'Frotz' Fa'atuai
1576
 
1577
------------------------------------------------------------------------
1578
 
1579
PCcurses 1.4 - 1990/01/14
1580
=========================
1581
 
1582
  In PCcurses v.1.4, both portability improvements and bugfixes have
1583
been made. The files have been changed to allow lint-free compilation
1584
with Microsoft C v.5.1, and with Turbo C v.2.0. The source should still
1585
compile without problems on older compilers, although this has not been
1586
verified.
1587
 
1588
  The makefiles have been changed to suit both the public release and
1589
the author, who maintains a special kind of libraries for himself. In
1590
the case of Microsoft C, changes were done in the makefile to lower the
1591
warning level to 2 (was 3). This was to avoid ANSI warnings which are
1592
abundant because PCcurses does not attempt to follow strict ANSI C
1593
standard.
1594
 
1595
  BUG FIXES FROM V.1.3 TO V.1.4:
1596
 
1597
  !!!IMPORTANT CHANGE!!!
1598
 
1599
  The definitions for OK and ERR in curses.h were exchanged. This was
1600
done to be more consistent with UNIX versions. Also, it permits
1601
functions like newwin() and subwin() to return 0 (=NULL) when they fail
1602
due to memory shortage. This incompatibility with UNIX curses was
1603
pointed out by Fred C. Smith. If you have tested success/failure by
1604
comparisons to anything other than ERR and OK, your applications will
1605
need to be be changed on that point. Sorry... but presumably most of you
1606
used the symbolic constants?
1607
 
1608
  (END OF IMPORTANT CHANGE)
1609
 
1610
  Fred also pointed out a bug in the file update.c. The bug caused the
1611
first character printed after 'unauthorized' screen changes (like during
1612
a shell escape, for example) to be placed at the wrong screen position.
1613
This happened even if the normal precautions (clear / touch / refresh)
1614
were taken. The problem has now been fixed.
1615
 
1616
  PCcurses is currently also being used on a 68000 system with
1617
hard-coded ESCape sequences for ANSI terminals. However, ints used by
1618
the 68000 C compiler are 32 bits. Therefore ints have been turned into
1619
shorts wherever possible in the code (otherwise all window structures
1620
occupy twice as much space as required on the 68000). This does not
1621
affect PC versions since normally both ints and shorts are 16 bits for
1622
PC C compilers.
1623
 
1624
  At some places in the source code there are references made to the
1625
68000 version. There are also a makefile, a curses68.c file, and a
1626
curses68.cmd file. These are for making, low-level I/O, and linking
1627
commands when building the 68000 version. These files are probably
1628
useful to no-one but the author, since it is very specific for its
1629
special hardware environment. Still in an effort to keep all
1630
curses-related sources in one place they are included. Note however that
1631
PCcurses will not officially support a non-PC environment.
1632
 
1633
  The file cursesio.c, which was included in the package at revision
1634
level 1.2, and which was to be an alternative to the cursesio.asm file,
1635
has been verified to behave incorrectly in the function _curseskeytst().
1636
The problem was that the value of 'cflag' does not contain the proper
1637
data for the test that is attempted. Furthermore, neither Turbo C or
1638
Microsoft C allows any way to return the data that is needed, and
1639
consequently you should not use cursesio.c. The best solution is to
1640
simply use the ASM version. In v.1.2 and v.1.3, the user could edit the
1641
makefile to select which version he wanted to use. The makefiles in
1642
v.1.4 have removed this possibility forcing the use of the ASM file, and
1643
cursesio.c has been dropped from the distribution.
1644
 
1645
  A bug in the wgetstr() function caused PCcurses to echo characters
1646
when reading a keyboard string, even if the echo had been turned off.
1647
Thanks to Per Foreby at Lund University, Sweden, for this. Per also
1648
reported bugs concerning the handling of characters with bit 8 set.
1649
Their ASCII code were considered as lower than 32, so they were erased
1650
etc. like control characters, i.e. erasing two character positions. The
1651
control character test was changed to cope with this.
1652
 
1653
  The overlay() and overwrite() functions were changed so that the
1654
overlaying window is positioned at its 'own' coordinates inside the
1655
underlying window (it used to be at the underlying window's [0,0]
1656
position). There is some controversy about this - the documentation for
1657
different curses versions say different things. I think the choice made
1658
is the most reasonable.
1659
 
1660
  The border() and wborder() functions were changed to actually draw a
1661
border, since this seems to be the correct behavior of these functions.
1662
They used to just set the border characters to be used by box(). These
1663
functions are not present in standard BSD UNIX curses.
1664
 
1665
  The subwin() function previously did not allow the subwindow to be as
1666
big as the original window in which it was created. This has now been
1667
fixed. There was also the problem that the default size (set by
1668
specifying numlines or numcols (or both) as 0 made the resulting actual
1669
size 1 line/column too small.
1670
 
1671
  There were a few spelling errors in function names, both in the
1672
function declarations and in curses.h. This was reported by Carlos
1673
Amaral at INESC in Portugal. Thanks! There was also an unnecessary (but
1674
harmless) parameter in a function call at one place.
1675
 
1676
------------------------------------------------------------------------
1677
 
1678
PCcurses 1.3 - 1988/10/05
1679
=========================
1680
 
1681
  The file 'border.c' is now included. It allows you to explicitly
1682
specify what characters should be used as box borders when the box()
1683
functions are called. If the new border characters are non-0, they
1684
override the border characters specified in the box() call. In my
1685
understanding, this functionality is required for AT&T UNIX sV.3
1686
compatibility. Thanks for this goes to Tony L. Hansen
1687
(hansen@pegasus.UUCP) for posting an article about it on Usenet
1688
(newsgroup comp.unix.questions; his posting was not related at all to
1689
PCcurses).
1690
 
1691
  The only other difference between v.1.2 and v.1.3 is that the latter
1692
has been changed to avoid warning diagnostics if the source files are
1693
compiled with warning switches on (for Microsoft this means '-W3', for
1694
Turbo C it means '-w -w-pro'). Of these, the Turbo C warning check is
1695
clearly to be used rather than Microsoft, even if neither of them comes
1696
even close to a real UNIX 'lint'. Some of the warnings in fact indicated
1697
real bugs, mostly functions that did not return correct return values or
1698
types.
1699
 
1700
  The makefiles for both MSC and TRC have been modified to produce
1701
warning messages as part of normal compilation.
1702
 
1703
------------------------------------------------------------------------
1704
 
1705
PCcurses 1.2 - 1988/10/02
1706
=========================
1707
 
1708
  The changes from v.1.1 to v.1.2 are minor. The biggest change is that
1709
there was a bug related to limiting the cursor movement if the
1710
application tried to move it outside the screen (something that should
1711
not be done anyway). Such erroneous application behavior is now handled
1712
appropriately.
1713
 
1714
  All modules have been changed to have a revision string in them, which
1715
makes it easier to determine what version is linked into a program (or
1716
what library version you have).
1717
 
1718
  There is now a 'cursesio.c' file. That file does the same as
1719
'cursesio.asm' (i.e. it provides the interface to the lower-level system
1720
I/O routines). It is written in C and thus it is (possibly) more
1721
portable than the assembler version (but still not so portable since it
1722
uses 8086 INT XX calls directly). When one creates new curses libraries,
1723
one chooses whether to use the assembler or the C version of cursesio.
1724
The choice is made by commenting out the appropriate dependencies for
1725
cursesio.obj, near the end of the makefiles.
1726
 
1727
  There is now a 'setmode.c' file. That file contains functions that
1728
save and restore terminal modes. They do it into other variables than do
1729
savetty() and resetty(), so one should probably use either
1730
savetty()/resetty() or the new functions only - and not mix the both
1731
ways unless one really knows what one does.
1732
 
1733
  Diff lists vs v.1.0 are no longer included in the distribution. The
1734
make utility still is. PCcurses v.1.2 still compiles with Microsoft C
1735
v.4.0, and with Borland Turbo C v.1.0. There is as far as I know no
1736
reason to believe that it does not compile under Microsoft C v.3.0 and
1737
5.x, or Turbo C v.1.5, but this has not been tested.
1738
 
1739
  There are two makefiles included, one for Microsoft C, one for Turbo
1740
C. They are both copies of my personal makefiles, and as such they
1741
reflect the directory structure on my own computer. This will have to be
1742
changed before you run make. Check $(INCDIR) and $(LIBDIR) in
1743
particular, and make the choice of ASM or C cursesio version as
1744
mentioned above (the distribution version uses the C version of
1745
cursesio).
1746
 
1747
  The manual file (curses.man) has been changed at appropriate places.
1748
 
1749
  I would like to thank the following persons for their help:
1750
 
1751
        Brandon S. Allbery (alberry@ncoast.UUCP)
1752
                for running comp.binaries.ibm.pc (at that time)
1753
                and comp.source.misc.
1754
 
1755
        Steve Balogh (Steve@cit5.cit.oz.AU)
1756
                for writing a set of manual pages and posting
1757
                them to the net.
1758
 
1759
        Torbjorn Lindh
1760
                for finding bugs and suggesting raw
1761
                character output routines.
1762
 
1763
        Nathan Glasser (nathan@eddie.mit.edu)
1764
                for finding and reporting bugs.
1765
 
1766
        Ingvar Olafsson (...enea!hafro!ingvar)
1767
                for finding and reporting bugs.
1768
 
1769
        Eric Rosco (...enea!ipmoea!ericr)
1770
                for finding and reporting bugs.
1771
 
1772
        Steve Creps (creps@silver.bacs.indiana.edu)
1773
                for doing a lot of work - among others
1774
                posting bug fixes to the net, and writing
1775
                the new cursesio.c module.
1776
 
1777
        N. Dean Pentcheff (dean@violet.berkeley.edu)
1778
                for finding bugs and rewriting cursesio.asm
1779
                for Turbo 'C' 1.5.
1780
 
1781
  Finally, Jeff Dean (parcvax,hplabs}!cdp!jeff)
1782
                     (jeff@ads.arpa)
1783
        has had a shareware version of curses deliverable since
1784
        about half a year before I released PCcurses 1.0 on Use-
1785
        Net. He is very concerned about confusion between the two
1786
        packages, and therefore any references on the network
1787
        should make clear whether they reference Dean's PCcurses
1788
        or Larsson's PCcurses.
1789
 
1790
------------------------------------------------------------------------
1791
 
1792
PCcurses 1.1 - 1988/03/06
1793
=========================
1794
 
1795
  The changes from v.1.0 to v.1.1 are minor. There are a few bug fixes,
1796
and new (non-portable) functions for verbatim IBM character font display
1797
have been added (in charadd.c and charins.c). The manual file
1798
(curses.man) has been changed at appropriate places.
1799
 
1800
  In the file v10tov11.dif there are listings of the differences between
1801
version 1.0 and 1.1. The diff listings are in UNIX diff(1) format.
1802
 
1803
  Version 1.1 compiles with Turbo C v.1.0, as well as Microsoft C v.3.0
1804
and v.4.0. On the release disk there is a make.exe utility which is very
1805
similar to UNIX make (If the package was mailed to you, the make utility
1806
will be in uuencoded format - in make.uu - and must be uudecoded first).
1807
It is much more powerful than Microsoft's different MAKEs; the latter
1808
ones will NOT generate libraries properly if used with the PCcurses
1809
makefiles.
1810
 
1811
  There are three makefiles:
1812
 
1813
        makefile                generic MSC 3.0 makefile
1814
        makefile.ms             MSC 4.0 makefile
1815
        makefile.tc             Turbo C 1.0 makefile
1816
 
1817
  To make a library with for example Turbo C, make directories to hold
1818
.H and .LIB files (these directories are the 'standard places'), edit
1819
makefile.tc for this, and type
1820
 
1821
        make -f makefile.tc all
1822
 
1823
and libraries for all memory models will be created in the .LIB
1824
directory, while the include files will end up in the .H directory. Also
1825
read what is said about installation below!
1826
 
1827
------------------------------------------------------------------------
1828
 
1829
PCcurses 1.0 - 1987/08/24
1830
=========================
1831
 
1832
  This is the release notes for the PCcurses v.1.0 cursor/window control
1833
package. PCcurses offers the functionality of UNIX curses, plus some
1834
extras. Normally it should be possible to port curses-based programs
1835
from UNIX curses to PCcurses on the IBM PC without changes. PCcurses is
1836
a port/ rewrite of Pavel Curtis' public domain 'ncurses' package. All
1837
the code has been re-written - it is not just an edit of ncurses (or
1838
UNIX curses). I mention this to clarify any copyright violation claims.
1839
The data structures and ideas are very similar to ncurses. As for UNIX
1840
curses, I have not even seen any sources for it.
1841
 
1842
  For an introduction to the use of 'curses' and its derivatives, you
1843
should read 'Screen Updating and Cursor Movement Optimization: A Library
1844
Package' by Kenneth C. R. C. Arnold, which describes the original
1845
Berkeley UNIX version of curses. It is available as part of the UNIX
1846
manuals. The other source of information is 'The Ncurses Reference
1847
Manual' by Pavel Curtis. The latter is part of Curtis' ncurses package.
1848
 
1849
  The only other documentation provided is a 'man' page which describes
1850
all the included functions in a very terse way. In the sources, each
1851
function is preceded by a rather thorough description of what the
1852
function does. I didn't have time to write a nice manual/tutorial -
1853
sorry.
1854
 
1855
  PCcurses is released as a number of source files, a man page, and a
1856
make file. A uuencoded copy of a 'make' utility, and a manpage for the
1857
'make' is also provided to make it easier to put together PCcurses
1858
libraries. Even if you are not interested in PCcurses, it may be
1859
worthwhile to grab the make.
1860
 
1861
  The makefile assumes the presence of the Microsoft C compiler (3.0 or
1862
4.0), Microsoft MASM and LIB, plus some MS-DOS utilities. The reason for
1863
supplying MAKE.EXE is that the Microsoft 'MAKE:s' are much inferior to a
1864
real UNIX make. The supplied make is a port of a public domain make,
1865
published on Usenet. It is almost completely compatible with UNIX make.
1866
When generating the curses libraries, the makefile will direct make to
1867
do some directory creating and file copying, and then re-invoke itself
1868
with new targets. The workings of the makefile are not absolutely
1869
crystal clear at first sight... just start it and see what it does.
1870
 
1871
  For portability, the curses libraries depend on one assembler file for
1872
access to the BIOS routines. There is no support for the EGA, but both
1873
CGA, MGA, and the HGA can be used. The libraries are originally for
1874
Microsoft C, but all C modules should be portable right away. In the
1875
assembler file, segment names probably need to be changed, and possibly
1876
the parameter passing scheme. I think Turbo C will work right away - as
1877
far as I understand, all its conventions are compatible with Microsoft
1878
C.
1879
 
1880
  There are some parts left out between ncurses and PCcurses. One is the
1881
support for multiple terminals - not very interesting on a PC anyway.
1882
Because we KNOW what terminal we have, there is no need for a termcap or
1883
terminfo library. PCcurses also has some things that neither curses nor
1884
ncurses have. Compared to the original UNIX curses, PCcurses has lots of
1885
extras.
1886
 
1887
  The BIOS routines are used directly, which gives fast screen updates.
1888
PCcurses does not do direct writes to screen RAM - in my opinion it is
1889
a bit ugly to rely that much on hardware compatibility. Anyone could fix
1890
that, of course...
1891
 
1892
  One of the more serious problems with PCcurses is the way in which
1893
normal, cbreak, and raw input modes are done. All those details are in
1894
the 'charget' module - I do raw I/O via the BIOS, and perform any
1895
buffering myself. If an application program uses PCcurses, it should do
1896
ALL its I/O via PCcurses calls, otherwise the mix of normal and
1897
PCcurses I/O may mess up the display. I think my code is reasonable...
1898
comments are welcome, provided you express them nicely...
1899
 
1900
  To install, copy all files to a work directory, edit 'makefile' to
1901
define the standard include and library file directory names of your
1902
choice (these directories must exist already, and their path names must
1903
be relative to the root directory, not to the current one). You must
1904
also run uudecode on make.uu, to generate MAKE.EXE. You can do that on
1905
your PC, if you have uudecode there, otherwise you can do it under UNIX
1906
and do a binary transfer to the PC. When you have MAKE.EXE in your work
1907
directory (or in your /bin directory), type make.
1908
 
1909
  Make will now create 4 sub-directories (one for each memory model),
1910
copy some assembler include files into them, copy two include files to
1911
your include directory, CHDIR to each sub-directory and re-invoke itself
1912
with other make targets to compile and assemble all the source files
1913
into the appropriate directories. Then the library manager is run to
1914
create the library files in your desired library directory. Presto!
1915
 
1916
  If you only want to generate a library for one memory model, type
1917
'make small', 'make large', etc. The name of the memory model must be in
1918
lower case, like in the makefile.
1919
 
1920
  I think the package is fairly well debugged - but then again, that's
1921
what I always think. It was completed in May-87, and no problems found
1922
yet. Now it's your turn... Comments, suggestions and bug reports and
1923
fixes (no flames please) to
1924
 
1925
-- Bjorn Larsson

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.