- Compiler features related to units:
- `uses' and `import' may now occur multiple times in
a program, unit/module interface or unit/module implementation, even
between declarations.
- `gpc-main' settings are now possible in units
- `public' and `private' directives for interfaces
- CRT:
- Works now under Cygwin and mingw.
- DJGPP: support for 40 column modes (requires updated PDCurses library)
- Renamed the the conditional to get an X11 version from XCURSES to X11. (@)
- Renamed GetScreenSize to ScreenSize (WinCRT compatibility) (B) (@)
- WindowOrg, WindowSize, Cursor, Origin, InactiveTitle,
AutoTracking, WindowTitle, (variables), ScrollTo, TrackCursor
(WinCRT compatibility) (B)
- SimulateBlockCursor, SimulateBlockCursorOff
- Curses is not initialized at the beginning of the program, but
rather when the first CRT routine is called. (B)
- CRTInit to explicitly initialize CRT and also set some
defaults (PCCharSet and update level) to more natural (and less BP
compatible) values.
- CRTSetTerminal
- CRTAutoInitProc (variable)
- CRTNotInitialized
- CRTSavePreviousScreen
- CRTSavePreviousScreenWorks
- Any of the parameters to GetWindow may now be `Null'.
- Support for panels (overlapping windows): GetActivePanel,
PanelNew, PanelDelete, PanelBindToBackground,
PanelIsBoundToBackground, PanelActivate, PanelHide, PanelShow,
PanelHidden, PanelTop, PanelBottom, PanelMoveAbove, PanelMoveBelow,
PanelAbove, PanelBelow, IgnoreCursor
- Replaced the variables PCCharSet and UseControlChars by
routines SetPCCharSet, GetPCCharSet, SetControlChars,
GetControlChars. (@)
- SetScreenSize
- SetMonochrome
- Renamed IsMonoMode to IsMonochrome. (@)
- On ncurses platforms, changing the screen is now done through
a shell command definable in the environment variable
`RESIZETERM' (which defaults to `resize',
`SVGATextMode' and `setfont'). The variables
`crt_setfont_command_80_25', `crt_setfont_command_80_50',
`crt_setfont_command_40_25' and
`crt_setfont_command_40_50' (Linux only) were removed. (@)
- CRTUpdate
- CRTRedraw
- SetScroll
- CRTSetCursesMode
- RestoreTerminalClearCRT
- CtrlKey
- AltKey
- AltGrKey
- ExtraKey
- constants chCtrlA ... chCtrlZ, kbCtrlA ... kbCtrlZ
- Catch some signals and return pseudo function keys for them if
CheckBreak is False.
- React to screen size changes by external events and return a
pseudo function key.
- Reduced the (already small) system-dependent code, and added
an overview of the few problematic features in the comment at the
beginning of crt.pas.
- RegEx:
- RegExPosFrom
- CharSet2RegEx
- Support for converting subexpression or complete matching
references to upper or lower case while replacing them with
`\u7' or `\l7'.
- In `RegExType', the field `Error' is now of type
`PString' rather than `CString'. (@)
- GMP:
- mpf_exp
- mpf_ln
- mpf_pow
- mpf_arctan
- mpf_pi
- The unit now works with version 4.x of the GMP library, but it
also still works with version 2.x or 3.x.
- System:
- SetTextBuf (B)
- CompToDouble (D)
- DoubleToComp (D)
- AllocMemCount (D)
- AllocMemSize (D)
- Assert (D)
- DefaultAssertErrorProc
- AssertErrorProc (variable) (D)
- NoErrMsg (variable) (D)
- RealToBPReal, BPRealToReal to convert between binary BP
compatible 6 byte reals and GPC's reals (useful, e.g., for binary
file exchange with BP programs) (B)
- Ofs, Seg, Ptr, CSeg, DSeg, SSeg, SPtr (mostly useless and only
for BP compatibility) (B)
- A number of variables like SelectorInc (mostly useless and
only for BP compatibility) (B)
- Renamed the `__BP_INTEGERS__' conditional to
`__BP_TYPE_SIZES__'. (@)
- New conditional `__BP_PARAMSTR_0__'
- Dos, WinDos:
- GetCBreak
- SetCBreak
- GetVerify
- SetVerify
- Renamed the `_Borland_16_Bit_' conditional to
`__BP_TYPE_SIZES__'. (@)
- Intr, MsDos, only under DJGPP if
`__BP_UNPORTABLE_ROUTINES__' is defined. (B)
- DosVersion, SetDate, SetTime, only if
`__BP_UNPORTABLE_ROUTINES__' is defined (emulated on
non-DJGPP). (B)
- Pipe:
- New parameter `Process' to Pipe (@)
- WaitPipeProcess
- PExecute:
- Routines moved to the `Pipe' unit. The `PExecute'
unit does not exist anymore. (@)
- GetOpt:
- ResetGetOpt
- `GetOptErrorFlag' is now True by default. (@)
- Integrated into the RTS so you don't need a `uses GetOpt'
directive anymore. (@)
- Renamed the variables and constants used (see gpc.pas under
`Command Line Option Parsing'). (@)
- `GetOptLong' can now optionally derive the short options
from the `LongOptions' array.
- DosUnix:
- WinCRT:
New unit (identical to CRT) (B)
- HeapMon:
New unit for (simple) heap checking.
- Trap:
New unit for runtime error trapping.
- MD5:
New unit for computing MD5 message digests.
- FileUtils:
New unit with some file and directory utilities.
- StringUtils:
New unit with some string utilities.
- Intl:
New unit for internationalization.
- GPC-BP:
A `GPC' unit for BP to provide some GPC compatibility to BP
programs and make it easier to gradually convert them to GPC. (G)
A few of the units (in particular: CRT, GMP and RegEx) require
libraries. The sources of the libraries, with small patches where
necessary, as well as binaries for i586-pc-linux-gnu,
i586-pc-linux-gnulibc1, m68k-linux, sparc-sun-solaris2,
i386-pc-go32, i386-pc-cygwin32 and i386-pc-mingw32 are available
from