Hi, everybody!
This is to announce the release of PENG 2.1. PENG is an Integrated Development Environment written in and for GPC.
PENG was written completely in Pascal and created using GPC. It is well suited for editing and compiling Pascal programs with GPC, though its functionality is not Pascal specific, and it can just as well be used for writing C, HTML, TeX, Texinfo, E-Mail or any other ASCII based format. PENG was developed and tested mainly under Linux/x86, but also under DJGPP and Solaris.
The main web site of PENG is http://fjf.gnu.de/peng.html. It contains more extensive information about PENG, including the complete documentation in HTML format, as well as download facilities and a pointer to the PENG mailing list. The mailing list is the recommended place for bug reports and requests about PENG.
The main changes since PENG 2.0 are the following. They are documented in more detail in PENG's online help.
- Some minor bug fixes and improvements in some details - Made some aspects of the "look and feel" easier and more consistent - PENG also accepts long options on the command line now - PENG's example tools and variables are now built into PENG, and their documentation was merged into the PENG manual. The built-in tools and variables can be dumped to a file with the `-d' or `--dump-tools' option, and their automatic use can be suppressed with the `-N' or `--no-builtin-tools' option, so PENG's tools and variables remain fully customizable. - Support for progress messages and a progress bar while running tools - Lex highlighting for different languages, case sensitive or insensitive - Speeded up the opening of info files without tag tables - `<ALT>-<SPACE>' (non-breaking space) now also works under X11 and DJGPP. - Deleting words with `<CTRL>-<T>' now also works in string input boxes. - Easier and better customizable color selection - Menu `Options/Editor' split into two menus (`Options/Editor1' and `Options/Editor2') because it was growing too large - New option to show the line numbers in the text editor (menu items `Options/Editor1/Line numbers', `Options/Editor2/Line number width', `Options/Colors/Editor/Line number') - New tool output redirections `#p', `#P' ("parallel") - Under Linux, PENG now recognizes shifted function keys if you have new keytables (e.g. console-data-1999.xx.xx) which come with recent versions of the distributions. However, if you still have the old keytables and PENG doesn't recognize, e.g., `<SHIFT>-<F1>' anymore, you'll have to upgrade them if you need shifted function keys (the change doesn't affect other keys, so PENG will be far from unusable even with the wrong version of keytables).
Note, there are some changes which could require a few users to do some manual changes, but should be beneficial to most. First-time PENG users do not need to care about the following:
- The names of the automatically loaded config files have changed. They are now `/etc/peng.conf' and `~/.peng' under Unix. Under Dos, they are `peng.ini', either in the directory `$DJDIR\etc' (if DJGPP is installed) or in the directory where `peng.exe' is installed, and `peng.cfg', either in the directory `$HOME' (if you set the environment variable `HOME') or in the directory where `peng.exe' is installed.
- Since PENG's example tools and variables are now built into PENG, if you installed the `pengrc' file before, please delete it now, to avoid confusion. If you made changes to the file, you might have to extract them to a new config file.
- Since the documentation of the built-in tools was merged into PENG's manual, if you installed pengtools.info before, please delete it now to avoid confusion.
- The `viewdvi' script is no more needed. Its functionality has been included into the respective PENG tools itself. If you installed the script before, you can delete it now, but you can as well keep it if you like. If you made changes to the script, you'll have to change the respective PENG tools now.
- PENG's color selection has been extended. On the one hand, there are more colors to choose, so you can customize your colors in more detail (e.g., different colors for the main menu and submenus if you like). On the other hand, most colors now can be unselected (and many are unselected by default), and PENG will automatically use the next appropriate one then. E.g., the colors for the main menu are unselected by default, and PENG will use the same colors as for submenus by default. Similarly, the backgound color of most items in the text editor now defaults to that of normal text, so you can change the background in a single place rather than having to change several items. More details can be found in the online help for `Options/Colors'.
While all this will make your color selection easier and better customizable, it might change your previous color selections slightly because of unexpected influence of the "next" color mechanism. This should be easy to correct by setting the right colors.
Furthermore, this change required slight changes to PENG's config file format. You can convert your old config files with the script below. If you don't want to do it (e.g., because you don't have awk and you're too lazy to install it ;-), you can load the old config files and ignore the warnings. You will lose your color selections, nothing more.
#!/bin/sh if [ $# == 0 ]; then echo "$0: no arguments given" >&2 exit 1 fi if test -z "$AWK" ; then for AWK in gawk nawk awk ""; do if type $AWK 2>&1 | grep 'not found' > /dev/null 2>&1; then : else break fi done fi if test -z "$AWK" ; then echo 'No awk found.' >& 2 exit 1 fi for a do if [ ! -f "$a" ]; then echo "$a does not exist" elif [ `grep -c '^ProgramVersion="[^"]*", 6' "$a"` != 1 ]; then echo "$a is not a PENG config file, version 6" else $AWK ' /^ProgramVersion=/ { sub ("=.*", "="PENG config converter", 7") } /^Color Progress message=/ { sub ("^Color Progress message=", "Color Activity message=") } /^Color Editor Non breaking space=/ { sub ("^Color Editor Non breaking space=", "Color Editor Non-breaking space=") } /^Color/ { c = $0; sub ("[^=]*=", "", c); x = c; sub (",.*", "", c); sub ("[^,]*,", "", x); sub (",.*", "", x); if (c + 0 >= 0) c = sprintf ("%i, %i", c % 16, c / 16); if (x + 0 >= 0) x = sprintf ("%i, %i", x % 16, x / 16); sub ("=.*,", "=" c ", " x ",") } { print } ' < "$a" > "$a.conv" mv -f "$a.conv" "$a" echo "$a converted" fi done
Have much fun with PENG, Frank