-
Notifications
You must be signed in to change notification settings - Fork 0
/
HISTORY
1925 lines (1346 loc) · 72 KB
/
HISTORY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
PDCurses 3.4 - 2008/09/08
=========================
Nothing much new this time, but I've been sitting on some bug fixes for
almost a year, so it's overdue. Apart from bugs, the main changes are in
the documentation.
New features:
- setsyx() is now a function rather than a macro.
Bug fixes and such:
- In x11, the xc_atrtab table size was under-calculated by half,
resulting in crashes at (oddly) certain line counts. (It should've
crashed a lot more.) Reported by Mark Hessling.
- Test for moved cursor was omitting the window origin offset. Reported
by Carey Evans.
- Is DOS and OS/2, the value for max items in key_table was still wrong.
Reported by C.E.
- Changed isendwin() so it won't crash after delscreen().
- Ensure zero-termination in PDC_mbstowcs() and PDC_wcstombs().
- Disable QuickEdit Mode when enabling mouse input for the Win32
console; reported by "Zalapkrakna".
- Fix for building under Innotek C (I hope). Report by Elbert Pol, fix
courtesy of Paul Smedley.
- Unified exports list with no duplicates -- pdcurses.def is now built
from components at compile time.
- Don't install curspriv.h, and don't include it with binary
distributions.
- Building DLLs with LCC is no longer supported, due to the primitive
nature of its make.exe.
- Export the terminfo stub functions from the DLLs, too.
- Added support for Apple's ".dylib" in configure. Suggested by Marc
Vaillant (who says it's needed with OS 10.5.)
- In sdl1/Makefile.mng, ensure that CC is set.
- In the gcc makefiles, "$?" didn't really have the desired effect --
_all_ the dependencies showed up on the command line, including
curses.h, and pdcurses.a twice. And apparently, this can mess up some
old version (?) of MinGW. So, revert to spelling out "tuidemo.o
tui.o". Reported by "Howard L."
- Extensive documentation revision and reorganizing. More to do here.
For example, I moved the build instructions from INSTALL (which never
really described installation) to the platform-specific READMEs.
- New indentation standard: four spaces, no tabs.
------------------------------------------------------------------------
PDCurses 3.3 - 2007/07/11
=========================
This release adds an SDL backend, refines the demos, and is faster in
some cases.
New features:
- SDL port. See INSTALL, doc/sdl.txt and sdl1/* for details.
- Double-buffering -- minimize screen writes by checking, in doupdate()
and wnoutrefresh(), whether the changes to curscr are really changes.
In most cases, this makes no difference (writes were already limited
to areas marked as changed), but it can greatly reduce the overhead
from touchwin(). It also helps if you have small, separated updates on
the same line.
- The PDC_RGB colors can now be used, or not, with any platform (as long
as the same options are used when compiling both the library and
apps). This may help if you have apps that are hardwired to assume
certain definitions.
- Restored the use_default_colors() stuff from the ncurses versions of
the rain and worm demos, to make them "transparent" (this is useful
now, with the SDL port); added transparency to newdemo.
- Added setlocale() to tuidemo, to make it easier to browse files with
non-ASCII characters.
- Sped up firework demo by replacing unneeded clear() and init_pair()
calls.
- Allow exit from ptest demo by typing 'q'.
- New functions for implementors: PDC_pair_content() and PDC_init_pair()
(the old pdc_atrtab stuff was arguably the last remnant of code in the
pdcurses directory that was based on platform details).
Bug fixes and such:
- Implicit wrefresh() needs to be called from wgetch() when the window's
cursor position is changed, even if there are no other changes.
- Set SP->audible on a per-platform basis, as was documented in
IMPLEMNT, but not actually being done.
- Minor tweaks for efficiency and readability, notably with wscrl().
- tuidemo didn't work correctly on monochrome screens when A_COLOR was
defined -- the color pair numbers appeared as the corresponding
character; also, the input box was (I now realize) broken with ncurses
since our 2.7, and broke more subtly with PDCurses' new implicit
refresh handling; also, the path to the default file for the Browse
function was a bit off.
- Assume in the demos that curs_set() is always available -- there's no
good test for this, and the existing tests were bogus.
- Made the command-line parameter for ptest work. (If given an argument,
it delays that number of milliseconds between changes, instead of
waiting for a key, and automatically loops five times.)
- Building the Win32 DLL with MinGW or Cygwin wouldn't work from outside
the platform directory.
- Building the X11 port with Cygwin required manually editing the
Makefile after configuring; no longer. Reported by Warren W. Gay.
- Minor tightening of configure and makefiles.
- Bogus references to "ACS_BLCORNER" in the border man page. Reported by
"Walrii".
- slk_wlabel() was not documented.
- Spelling cleanup.
- Changed RCSIDs to not end with a semicolon -- avoids warnings when
compiling with the -pedantic option.
- Merged latin-1.txt into x11.txt.
- Updated config.guess and config.sub to more recent versions.
------------------------------------------------------------------------
PDCurses 3.2 - 2007/06/06
=========================
This release mainly covers changes to the build process, along with a
few structural changes.
New features:
- The panel library has been folded into the main library. What this
means is that you no longer need to specify "-lpanel" or equivalent
when linking programs that use panel functionality with PDCurses;
however, panel.lib/.a is still provided (as a copy of pdcurses.lib/.a)
so that you can, optionally, build your projects with no changes. It
also means that panel functionality is available with the DLL or
shared library. Note that panel.h remains separate from curses.h.
- Setting the PDCURSES_SRCDIR environment variable is no longer required
before building, unless you want to build in a location other than the
platform directory. (See INSTALL.)
- MinGW and Cygwin makefiles support building DLLs, via the "DLL=Y"
option. Partly due to Timofei Shatrov.
- Support for the Digital Mars compiler.
- Watcom makefiles now use the "loaddll" feature.
Bug fixes and such:
- Eliminated the platform defines (DOS, WIN32, OS2, XCURSES) from
curses.h, except for X11-specific SCREEN elements and functions.
Dynamically-linked X11 apps built against an old version will have
their red and blue swapped until rebuilt. (You can define PDC_RGB to
build the library with the old color scheme, but it would also have to
be defined when building any new app.) Any app that depends on
PDCurses to determine the platform it's building on will have to make
other arrangements.
- Documentation cleanup -- added more details; removed some content that
didn't apply to PDCurses; moved the doc-building tool to the doc
directory; changed *.man to *.txt.
- The EMX makefile now accepts "DLL=Y", builds pdcurses.dll instead of
curses.dll, builds either the static library or the DLL (not both at
once), and links all the demos with the DLL when building it.
- In Win32, read the registry only when needed: when init_color() or
color_content() is called, instead of at startup.
- A few additional consts in declarations.
- The Win32 compilers that build DLLs now use common .def files.
- panel.h functions sorted by name, as with other .h files; curses.h is
no longer included by repeated inclusions of panel.h or term.h.
- Simplified Borland makefiles.
- Makefile.aix.in depended on a file, xcurses.exp, that was never there.
This problem was fixed as part of the change to common .def files;
however, I still haven't been able to test building on AIX.
------------------------------------------------------------------------
PDCurses 3.1 - 2007/05/03
=========================
Primarily clipboard-related fixes, and special UTF-8 support.
New features:
- "Force UTF-8" mode, a compile-time option to force the use of UTF-8
for multibyte strings, instead of the system locale. (Mainly for
Windows, where UTF-8 doesn't work well in the console.) See INSTALL.
- Multibyte string support in PDC_*clipboard() functions, and in Win32's
PDC_set_title().
- Added the global string "ttytype", per other curses implementations,
for compatibility with old BSD curses.
- Real functions for the "quasi-standard aliases" -- crmode(),
nocrmode(), draino(), resetterm(), fixterm() and saveterm().
(Corresponding macros removed.)
Bug fixes and such:
- In Win32, under NT-family OSes, the scrollback buffer would be
restored by endwin(), but would not be turned off again when resuming
curses after an endwin(). The result was an odd, partly-scrolled-up
display. Now, the buffer is toggled by PDC_reset_prog_mode() and
PDC_reset_shell_mode(), so it's properly turned off when returning
from an endwin().
- In 3.0, selection in X11 didn't work. (Well, the selecting worked, but
the pasting elsewhere didn't.) This was due to the attempted fix
"don't return selection start as a press event," so that's been
reverted for now.
- PDC_setclipboard() was locking up in X11. Reported by Mark Hessling.
- Missing underscore in the declaration of XC_say() prevented
compilation with PDCDEBUG defined. Reported by M.H.
- Off-by-one error in copywin() -- the maximum coordinates for the
destination window should be inclusive. Reported by Tiago Dionizio.
- Start in echo mode, per X/Open. Reported by T.D.
- Strip leading and trailing spaces from slk labels, per a literal
reading of X/Open. Suggested by Alexey Miheev (about ncurses, but it
also applies here).
- The #endif for __PDCURSES__ needs to come _after_ the closing of the
extern "C". This has been broken since June 2005. Fortunately (?), it
only shows up if the file is included multiple times, and then only in
C++. Reported on the DOSBox forums.
- Use CF_OEMTEXT instead of CF_TEXT in the narrow versions of the
clipboard functions in Win32, to match the console.
- Changed the format of the string returned from longname().
- In the clipboard test in the testcurs demo, use a single mvprintw() to
display the return from PDC_getclipboard(), instead of a loop of
addch(), which was incompatible with multibyte strings.
- Moved has_key() into the keyname module, and documented it.
- Moved RIPPEDOFFLINE to curspriv.h.
- Typos in IMPLEMNT.
------------------------------------------------------------------------
PDCurses 3.0 - 2007/04/01
=========================
The focuses for this release are X/Open conformance, i18n, better color
support, cleaner code, and more consistency across platforms.
This is only a brief summary of the changes. For more details, consult
the CVS log.
New features:
- An almost complete implementation of X/Open curses, including the
wide-character and attr_t functions (but excluding terminfo). The
wide-character functions work only in Win32 and X11, for now, and
require building the library with the appropriate options (see
INSTALL). Note that this is a simplistic implementation, with exactly
one wchar_t per cchar_t; the only characters it handles properly are
those that are one column wide.
- Support for X Input Methods in the X11 port (see INSTALL). When built
this way, the internal compose key support is disabled in favor of
XIM's, which is a lot more complete, although you lose the box cursor.
- Multibyte character support in the non-wide string handling functions,
per X/Open. This only works when the library is built with wide-
character support enabled.
- Mouse support for DOS and OS/2. The DOS version includes untested
support for scroll wheels, via the "CuteMouse" driver.
- An ncurses-compatible mouse interface, which can work in parallel with
the traditional PDCurses mouse interface. See the man page (or
mouse.c) for details.
- DOS and OS/2 can now return modifiers as keys, as in Win32 and X11.
- COLORS, which had been fixed at 8, is now either 8 or 16, depending on
the terminal -- usually 16. When it's 8, blinking mode is enabled
(controlled as before by the A_BLINK attribute); when it's 16, bright
background colors are used instead. On platforms where it can be
changed, the mode is toggled by the new function PDC_set_blink().
PDCurses tries to set PDC_set_blink(FALSE) at startup. (In Win32, it's
always set to FALSE; in DOS, with other than an EGA or VGA card, it
can't be.) Also, COLORS is now set to 0 until start_color() is called.
- Corresponding to the change in COLORS, COLOR_PAIRS is now 256.
- Working init_color() and color_content(). The OS/2 version of
init_color() works only in a full-screen session; the Win32 version
works only in windowed mode, and only in NT-family OSes; the DOS
version works only with VGA adapters (real or simulated). The Win32
version is based mostly on James Brown's setconsoleinfo.c
(www.catch22.net).
- use_default_colors(), assume_default_colors(), and curses_version(),
after ncurses.
- Added global int TABSIZE, after ncurses and Solaris curses; removed
window-specific _tabsize.
- Logical extension to the wide-character slk_ funcs: slk_wlabel(), for
retrieving the label as a wide-character string.
- A non-macro implementation of ncurses' wresize().
- Working putwin(), getwin(), scr_dump() and scr_restore().
- A working acs_map[]. Characters from the ACS are now stored in window
structures as a regular character plus the A_ALTCHARSET attribute, and
rendered to the ACS only when displayed. (This allows, for example,
the correct display on one platform of windows saved from another.)
- In X11, allow selection and paste of UTF8_STRING.
- The testcurs demo now includes a color chart and init_color() test, a
wide character input test, a display of wide ACS characters with
sample Unicode text, a specific test of flash(), more info in the
resize test, and attempts to change the width as well as the height.
- Command-line option for MSVC to build DLLs (see INSTALL). Also, the
naming distinction for DLLs ("curses" vs. "pdcurses") is abandoned,
and either the static lib or DLL is built, not both at once (except
for X11).
- For backwards compatibility, a special module just for deprecated
functions -- currently PDC_check_bios_key(), PDC_get_bios_key(),
PDC_get_ctrl_break() and PDC_set_ctrl_break(). These shouldn't be used
in applications, but currently are... in fact, all the "private"
functions (in curspriv.h) are subject to change and should be avoided.
- A new document, IMPLEMNT, describing PDCurses' internal functions for
those wishing to port it to new platforms.
- Mark Hessling has released the X11 port to the public domain.
(However, x11/ScrollBox* retain their separate copyright and MIT-like
license.)
Bug fixes and such:
- Most of the macros have been removed (along with the NOMACROS ifdef).
The only remaining ones are those which have to be macros to work, and
those that are required by X/Open to be macros. There were numerous
problems with the macros, and no apparent reason to keep them, except
tradition -- although it was PCcurses 1.x that first omitted them.
- Clean separation of platform-specific code from the rest. Outside of
the platform directories, there remain only a few ifdefs in curses.h
and curspriv.h.
- General reorganization and simplification.
- Documentation revisions.
- When expanding control characters in addch() or insch(), retain the
attributes from the chtype.
- Preserve the A_ALTCHARSET attribute in addch() and insch().
- Per X/Open, beep() should always return OK.
- On platforms with a controlling terminal (i.e., not X11), curs_set(1)
now sets the cursor to the shape it had at the time of initscr(),
rather than always making it small. (Exception for DOS: If the video
mode has been changed by PDC_resize_screen(), curs_set(1) reverts to
line 6/7.) The shape is taken from SP->orig_cursor (the meaning of
which is platform-specific).
- Stop updating the cursor position when the cursor is invisible (this
gives a huge performance boost in Win 9x); update the cursor position
from curs_set() if changing from invisible to visible.
- Some tweaking of the behavior of def_prog_mode(), def_shell_mode(),
savetty(), reset_prog_mode(), reset_shell_mode() and resetty()...
still not quite right.
- flash() was not implemented for Win32 or X. A portable implementation
is now used for all platforms. Note that it's much slower than the
old (DOS and OS/2) version, but this is only apparent on an extremely
slow machine, such as an XT.
- In getstr(), backspacing on high-bit characters caused a double
backspace.
- hline() and vline() used an incorrect (off by one) interpretation of
_maxx and _maxy. If values of n greater than the max were specified,
these functions could access unallocated memory.
- innstr() is supposed to return the number of characters read, not just
OK or ERR. Reported by Mike Aubury.
- A proper implementation of insch() -- the PDC_chadd()-based version
wasn't handling the control characters correctly.
- Return ASCII and control key names from keyname() (problem revealed by
ncurses' movewindow test); also, per X/Open, return "UNKNOWN KEY" when
appropriate, rather than "NO KEY NAME".
- Turn off the cursor from leaveok(TRUE), even in X11; leaveok(FALSE)
now calls curs_set(1), regardless of the previous state of the cursor.
- In the slk area, BUTTON_CLICKED events now translate to function keys,
along with the previously recognized BUTTON_PRESSED events. Of course,
it should really be checking the events specified by map_button(),
which still doesn't work.
- napms(0) now returns immediately.
- A unified napms() implementation for DOS -- no longer throttles the
CPU when built with any compiler.
- Allow backspace editing of the nocbreak() buffer.
- pair_content(0, ...) is valid.
- There was no check to ensure that the pnoutrefresh() window fit within
the screen. It now returns an ERR if it doesn't.
- In X11, resize_term() must be called with parameters (0, 0), and only
when SP->resized is set, else it returns ERR.
- Copy _bkgd in resize_window(). Patch found on Frederic L. W. Meunier's
web site.
- slk_clear() now removes the buttons completely, as in ncurses.
- Use the current foreground color for the line attributes (underline,
left, right), unless PDC_set_line_color() is explicitly called. After
setting the line color, you can reset it to this mode via
"PDC_set_line_color(-1)".
- Removed non-macro implementations of COLOR_PAIR() and PAIR_NUMBER().
- Dispensed with PDC_chadd() and PDC_chins() -- waddch() and winsch()
are now (again) the core functions.
- Dropped or made static many obsolete, unused, and/or broken functions,
including PDC_chg_attrs(), PDC_cursor_on() and _off(),
PDC_fix_cursor(), PDC_get_attribute(), PDC_get_cur_col() and _row(),
PDC_set_80x25(), PDC_set_cursor_mode(), PDC_set_rows(),
PDC_wunderline(), PDC_wleftline(), PDC_wrightline(),
XCursesModifierPress() and XCurses_refresh_scrollbar().
- Obsolete/unused defines: _BCHAR, _GOCHAR, _STOPCHAR, _PRINTCHAR
_ENDLINE, _FULLWIN and _SCROLLWIN.
- Obsolete/unused elements of the WINDOW struct: _pmax*, _lastp*,
_lasts*.
- Obsolete/unused elements of the SCREEN struct: orgcbr, visible_cursor,
sizeable, shell, blank, cursor, orig_emulation, font, orig_font,
tahead, adapter, scrnmode, kbdinfo, direct_video, video_page,
video_seg, video_ofs, bogus_adapter. (Some of these persist outside
the SCREEN struct, in the platform directories.) Added mouse_wait and
key_code.
- Removed all the EMALLOC stuff. Straight malloc calls were used
elsewhere; it was undocumented outside of comments in curspriv.h; and
there are better ways to use a substitute malloc().
- Single mouse clicks are now reportable on all platforms (not just
double-clicks). And in general, mouse event reporting is more
consistent across platforms.
- The mouse cursor no longer appears in full-screen mode in Win32 unless
a nonzero mouse event mask is used.
- ALT-keypad input now works in Win32.
- In Win32, SetConsoleMode(ENABLE_WINDOW_INPUT) is not useful, and
appears to be the source of a four-year-old bug report (hanging in
THE) by Phil Smith.
- Removed the PDC_THREAD_BUILD stuff, which has never worked. For the
record: PDCurses is not thread-safe. Neither is ncurses; and the
X/Open curses spec explicitly makes it a non-requirement.
- With the internal compose key system in the X11 port, modifier keys
were breaking out of the compose state, making it impossible to type
accented capitals, etc. Also, Multi_key is now the default compose
key, instead of leaving it undefined by default; and a few more combos
are supported.
- In X11, the first reported mouse event after startup always read as a
double-click at position 0, 0. (This bug was introduced in 2.8.)
- In X11, don't return selection start as a press event. (Shift-click on
button 1 is still returned.)
- In X11, properly handle pasting of high-bit chars. (It was doing an
unwanted sign extension.)
- In X11, BUTTON_MOVED was never returned, although PDC_MOUSE_MOVED was
set.
- The fix in 2.8 for the scroll wheel in X11 wasn't very good -- it did
report the events as scroll wheel events, but it doubled them. Here's
a proper fix.
- Changed mouse handling in X11: Simpler translation table, with
XCursesPasteSelection() called from XCursesButton() instead of the
translation table; require shift with button 1 or 2 for select or
paste when mouse events are being reported (as with ncurses), allowing
passthrough of simple button 2 events. This fixes the previously
unreliable button 2 behavior.
- Modifier keys are now returned on key up in X11, as in Win32. And in
general, modifier key reporting is more consistent across platforms.
- Modifiers are not returned as keys when a mouse click has occurred
since the key press.
- In BIOS mode (in DOS), count successive identical output bytes, and
make only one BIOS call for all of them. This dramatically improves
performance.
- The cursor position was not always updated correctly in BIOS mode.
- In testcurs, the way the ACS test was written, it would really only
work with a) PDCurses (with any compiler), or b) gcc (with any
curses). Here's a more portable implementation.
- Better reporting of mouse events in testcurs.
- Blank out buffer and num before the scanw() test in testcurs, in case
the user just hits enter or etc.; clear the screen after resizing.
- Allow tuidemo to use the last line.
- Separate left/right modifier keys are now reported properly in Win32.
(Everything was being reported as _R.)
- Attempts to redirect input in Win32 now cause program exit and an
error message, instead of hanging.
- Dropped support for the Microway NDP compiler.
- Some modules renamed, rearranged.
- Fixes for errors and warnings when building with Visual C++ 2005.
- In MSVC, the panel library didn't work with the DLL.
- Complete export lists for DLLs.
- Simplified makefiles; moved common elements to .mif files; better
optimization; strip demos when possible.
- Changed makefile targets of "pdcurses.a/lib" and "panel.a/lib" to
$(LIBCURSES) and $(LIBPANEL). Suggestion of Doug Kaufman.
- Changed "install" target in the makefile to a double-colon rule, to
get around a conflict with INSTALL on non-case-sensitive filesystems,
such as Mac OS X's HFS+. Reported by Douglas Godfrey et al.
- Make PDCurses.man dependent on manext. Suggestion of Tiziano Mueller.
- Set up configure.ac so autoheader works; removed some obsolescent
macros. Partly the suggestion of T.M.
- The X11 port now builds in the x11 directory (including the demos), as
with other ports.
- The X11 port should now build on more 64-bit systems. Partly due to
M.H.
- The default window title and icons for the X11 port are now "PDCurses"
instead of "XCurses".
- Internal functions and variables made static where possible.
- Adopted a somewhat more consistent naming style: Internal functions
with external linkage, and only those, have the prefix "PDC_";
external variables that aren't part of the API use "pdc_"; static
functions use "_"; and "XC_" and "xc_" prefixes are used for functions
and variables, respectively, that are shared between both processes in
the X11 port. Also eliminated camel casing, where possible.
- Changed the encoding for non-ASCII characters in comments and
documentation from Latin-1 to UTF-8.
------------------------------------------------------------------------
PDCurses 2.8 - 2006/04/01
=========================
As with the previous version, you should assume that apps linked against
older dynamic versions of the library won't work with this one until
recompiled.
New features:
- Simpler, faster.
- Declarations for all supported, standard functions, per the X/Open
Curses 4.2 spec, with the notable exception of getch() and ungetch().
You can disable the use of the macro versions by defining NOMACROS
before including curses.h (see xmas.c for an example). NOMACROS yields
smaller but theoretically slower executables.
- New functions: vwprintw(), vwscanw(), vw_printw() and vw_scanw(). This
completes the list of X/Open 4.2 functions, except for those concerned
with attr_t and wide characters. Some (especially the terminfo/termcap
functions) aren't yet fully fleshed out, though.
- Non-macro implementations for COLOR_PAIR(), PAIR_NUMBER(), getbkgd(),
mvgetnstr(), mvwgetnstr(), mvhline(), mvvline(), mvwhline(), and
mvwvline(). (The macros are still available, too.)
- newterm() works now, in a limited way -- the parameters are ignored,
and only the first invocation will work (i.e., only one SCREEN can be
used).
- start_color() works now -- which is to say, if you _don't_ call it,
you'll only get monochrome output. Also, without calling it, the
terminal's default colors will be used, where supported (currently
only in Win32). This is equivalent to the PDC_ORIGINAL_COLORS behavior
introduced in 2.7, except that _only_ the default colors will be used.
(PDC_ORIGINAL_COLORS is still available, if you want to combine the
use of specific colors and the default colors.)
- New logic for termname() and longname(): termname() always returns
"pdcurses"; longname() returns "PDCurses for [platform] [adapter]
[COLOR/MONO]-YxX" (adapter is only defined for DOS and OS/2). This is
the first time these functions return _anything_ in Win32.
- New installation method for XCurses: the header files are placed in a
subdirectory "xcurses" within the include directory, rather than being
renamed. (But the renamed xcurses.h and xpanel.h are also installed,
for backwards compatibility.) curspriv.h and term.h are now available,
and existing curses-based code need no longer be edited to use
XCurses' curses.h. And with no more need for explicit XCursesExit()
calls (see below), your code need not be changed at all to move from
another curses implementation to XCurses. It can be as simple as "gcc
-I/usr/local/include/xcurses -lXCurses -oprogname progname.c".
- Combined readme.* into this HISTORY file, and incorporated the old 1.x
(PCcurses) history.
- New functionality for the testcurs demo: ACS character display; menu
support for PgUp, PgDn, Home and End; centered menu; and it can now
be resized in X.
- Added modified versions of the rain and worm demos from ncurses.
Bug fixes and such:
- Big cleanup of dead and redundant code, including unneeded defines,
ifdefs, and structure elements.
- flushinp() was not implemented for Win32.
- resetty() was not restoring LINES and COLS.
- nonl() made '\n' print a line feed without carriage return. This was
incorrect.
- Removed bogus implementation of intrflush().
- The line-breakout optimization system, disabled by default in 2.7, is
removed in 2.8. It simply didn't work, and never has. (The typeahead()
function remains, for compatibility, but does nothing.)
- The declarations for the printw() and scanw() function families were
erroneously ifdef'd.
- Safer printw() calls on platforms that support vsnprintf().
- Use the native vsscanf() in DJGPP, MinGW and Cygwin.
- ACS_BLOCK now works in X.
- Explicit calls to XCursesExit() are no longer needed.
- XCURSES is now defined automatically if not DOS, OS2 or WIN32.
- The default icon for XCurses wasn't working (had to remove the focus
hint code to fix this). Also, the default title is now "XCurses"
instead of "main".
- Incorrect dimensions (undercounting by two in each direction) were
shown while resizing in X.
- Scroll wheel events were not always correctly reported in X.
- 32 bits are enough for the "long" chtype, but 64 bits were used on a
64-bit system, wasting memory. Now conditioned on _LP64. This could be
faster, too.
- The short, 16-bit chtype now works with XCurses.
- Corrected return value for is_linetouched(), is_wintouched(),
can_change_color() and isendwin() (bool instead of int).
- timeout(), wtimeout(), idcok() and immedok() return void.
- pair_content() takes a short.
- Replaced incorrect usages of attr_t with chtype. attr_t is still
typedef'd, for backwards compatibility. (It's supposed to be used for
the WA_*-style functions, which PDCurses doesn't yet support.)
- Added const where required by the spec, and in other appropriate
places.
- Removed PDC_usleep(). napms() is now the core delay routine.
- Fixed poll() support in napms().
- Various changes to the internal PDC_* functions -- don't depend on
these, and don't use them unless you absolutely have to.
- Some routines accessed window structures in their variable
declarations, _before_ checking for a NULL window pointer.
- Dropped support for the undocumented PDC_FULL_DISPLAY, wtitle(), and
PDC_print().
- Cleaned up remaining warnings.
- Reduced unnecessary #include directives -- speeds up compilation.
- Fix for demos build in Borland/DOS -- the makefile in 2.7 didn't
specify the memory model. Reported by Erwin Waterlander.
- Simplified the makefiles; e.g., some now build each demo in a single
step, and Watcom no longer uses demos.lnk. Also, the demo exes are now
stripped when possible; maximum compression used for archives built
by the makefiles; xcurses-config removed as part of "make distclean";
and I tweaked optimization for some platforms.
- Reverted to /usr/local/ as default installation directory for XCurses.
- Upgraded to autoconf 2.59... instantly doubling the size of the
configure script. Ah well. Otherwise, simplified the build system.
- Dropped support for pre-ANSI compilers. (It hasn't worked since at
least version 2.4, anyway.)
- Revised and, I hope, clarified the boilerplate and other comments.
- Simplified logging and RCS ids; added RCS ids where missing.
- Consistent formatting for all code, approximately equivalent to
"indent -kr -i8 -bl -bli0", with adjustments for 80 columns.
------------------------------------------------------------------------
PDCurses 2.7 - 2005/12/30
=========================
INTRODUCTION:
Hello all. As of a few weeks ago, I'm the new maintainer for PDCurses.
Here's a brief summary of changes in this release. (More details are
available in the CVS log and trackers on SourceForge.)
NEW FEATURES:
- Functions: delscreen(), getattrs(), has_key(), slk_color(),
wcolor_set(), wtimeout().
- Macros: color_set(), mvhline(), mvvline(), mvwgetnstr(), mvwhline(),
mvwvline(), timeout(), wresize().
- Stub implementations of terminfo functions (including a term.h).
- More stubs for compatibility: filter(), getwin(), putwin(),
noqiflush(), qiflush(), scr_dump(), scr_init(), scr_restore(),
scr_set(), use_env(), vidattr(), vidputs().
- The terminal's default colors are used as curses' default colors when
the environment variable "PDC_ORIGINAL_COLORS" is set to any value
(Win32 only at the moment).
- Simplified build system.
- Replaced PDC_STATIC_BUILD with its opposite, PDC_DLL_BUILD (see .mak
files for more info).
- Minimal implementation of color_content() -- no longer a stub.
- Added the remaining ACS defines (ACS_S3, ACS_BBSS, etc.) for
DOS/OS2/Win; "enhanced" versions of existing ACS characters used.
- Support for scroll wheels.
- Support for Pacific C.
BUGS FIXED:
- Builds correctly (including demos) on all tested platforms (see
below); nearly all compiler warnings have been cleaned up; the ptest
demo is built on all platforms; "clean" targets are improved.
- The ability to build ncurses_tests has been restored (see demos dir).
- Line-breakout optimization now defaults to off (equivalent to
"typeahead(-1)"), so output is not interrupted by keystrokes (it's
supposed to resume on the next refresh(), which wasn't working).
- Implicit wrefresh() in wgetch() was not being invoked in nodelay mode.
- subpad() was erroneously offsetting from the origin coordinates of the
parent pad (which are always -1,-1).
- In wborder(), whline(), and wvline(), the current (wattrset) attribute
was being used, but not the current background (wbkgd).
- Allow Russian 'r' character ASCII 0xe0 to be returned.
- termattrs() now also returns A_UNDERLINE, A_REVERSE.
- In Win32, with large scrollback buffers set, there was an unwanted
"scrollup" effect on startup.
- Revamped keyboard handling for Win32.
- New screen resize method for Win32.
- napms(), delay_output(), etc. now work with Cygwin.
- curs_set(0) wasn't working in Win32 in full-screen (ALT-ENTER) mode --
the cursor stayed on.
- The A_REVERSE attribute was broken in XCurses.
- On 64-bit systems, XCurses was ignoring every other keystroke.
- Added focus hints for XCurses.
- Demos (except for tuidemo) once again have their proper titles in
XCurses (using Xinitscr() instead of the obsolete XCursesProgramName).
- The 16-bit chtype is a working option again (by removing #define
CHTYPE_LONG from curses.h), except in XCurses. It's not recommended;
but if your needs are limited, it still works.
- Reset screen size in resetty() under DOS, as in Win32 and OS/2.
- Changes for cursor size under DOS.
- Automatic setting of BIOS mode for CGA under DOS now works.
- The cursor is now always updated in PDC_gotoxy(); this fixes the
problem of missing characters in BIOS mode.
- Macros nocbreak(), cbreak(), nocrmode(), crmode(), nodelay(),
nl() and nonl() now return OK.
- ERR and OK are now defined as -1 and 0, respectively, for
compatibility with other curses implementations -- note that this
change is not binary compatible; you'll have to rebuild programs that
use shared/dynamic libraries.
- Added "const" to prototypes where appropriate.
- Miscellaneous code cleanup.
ACKNOWLEDGEMENTS:
Walter Briscoe
Jean-Pierre Demailly
Ruslan Fedyarov
Warren Gay
Florian Grosse-Coosmann
Vladimir Kokovic
Matt Maloy
K.H. Man
Michael Ryazanov
Ron Thibodeau
Alexandr Zamaraev
and of course, MARK HESSLING, for his over 13 years of service as the
maintainer of PDCurses. Plus, thanks to all who've reported bugs or
requested features. Apologies to anyone I've forgotten.
I've tested this version on Turbo C++ 3.0 and Borland C++ 3.1 for DOS;
DJGPP 2.X; Open Watcom 1.3 for DOS (16 and 32-bit), Windows and OS/2;
EMX 0.9d and the "newgcc" version of EMX; Borland C++ 5.5 for Windows;
recent versions of MinGW, Cygwin, LCC-Win32 and Microsoft Visual C++;
and gcc under several flavors of Linux, Mac OS X, *BSD and Solaris.
-- William McBrine
------------------------------------------------------------------------
PDCurses 2.6 - 2003/01/08
=========================
INTRODUCTION:
This release of PDCurses includes the following changes:
BUGS FIXED:
- Allow accented characters on Win32 platform when run on non-English
keyboards.
- Allow "special" characters like Ctrl-S, Ctrl-Q under OS/2 to be returned.
- Some bugs with halfdelay() fixed by William McBrine.
- pechochar() should now work correctly.
- redrawwin() macro in curses.h was incorrect - fixed by Alberto Ornaghi
- Don't include "special" characters like KEY_SHIFT_L to be returned in
getnstr() family. Bug 542913
- Entering TAB in wgetnstr() no longer exceeds requested buffer size.
Bug 489233
- Fixed bug 550066, scrollok() and pads.
Also beep() called when buffer exceeded. Bug 562041.
- Reverse video of X11 selection reinstated. Pablo Garcia Abio??
- Right Alt modifier now works like left Alt modifier under Win32
- Add support for all libXaw replacement libraries with Scrollbar bug.
Note that for this to work, you still have to change the libXaw
replacement libraries to fix the bug :-(
- Don't trap signals in XCurses if calling application has ignored them.
Change by Frank Heckenbach.
- Bug reports from Warren W. Gay:
- Fix termattrs() to return A_REVERSE and A_BLINK on all platforms.
- Fix definition of getsyx() and setsyx() to be consistent with
ncurses. Bug 624424.
- Fix definition of echo() and noecho(). Bug 625001.
- Fix definition of keypad() and leaveok(). Bug 632653.
- Missing panel_hidden() prototype. Bug 649320.
- Fixed bug with calling def_prog_mode(), resize_term(),
reset_prog_mode(); the resize details were being lost.
NEW FEATURES:
- Clipboard support now available on DOS platform, but handled
internally to the currently running process.
- New X11 resource: textCursor, allows the text cursor to be specified
as a vertical bar, or the standard horizontal bar. Thanks to Frank
Heckenbach for the suggestion.
NEW COMPILER SUPPORT:
- lcc-win32 now works correctly
------------------------------------------------------------------------
PDCurses 2.5 - 2001/11/26
=========================
INTRODUCTION: