Cooledit - Frequently Asked Questions (FAQ) The information in this file is provided without warranty for its accuracy or completeness. Use of this file or its information is entirely at your own risk. CONTENTS * 1 Introduction and General Information + 1.1 What is Cooledit? + 1.2 Who has written it? + 1.3 Does it run on my machine? + 1.4 Does Cooledit require any proprietary libraries to run? + 1.5 Is Cooledit copyrighted? What is the licensing agreement? + 1.6 What is the latest version of Cooledit? + 1.7 Can Cooledit be ported to Gtk? + 1.8 What is Python and its relevance to Cooledit? + 1.9 Should I worry about cutting-edge/BETA releases? + 1.10 Where can I get a complete list of title-bar hint messages? + 1.11 Can I make Cooledit look like NeXT-ish application? + 1.12 How do I send a bug report? + 1.13 How do I send a compilation bug report? + 1.14 Why is there a built in rxvt and what is interesting about it? * 2 Network Sources and Resources + 2.1 Where can I get Cooledit? + 2.2 Where can I get Python? + 2.3 Does Cooledit have a mailing list? + 2.4 Does Cooledit have a world wide web home-page? + 2.5 What other applications are called 'cooledit'? * 3 Common Problems + 3.1 How do I get the commands from the 'Scripts' menu to work? + 3.2 How do I get the man page browser to work? + 3.3 The man page browser displays the man page, but gives a warning. + 3.4 In what ways does Cooledit behave differently to other X applications? + 3.5 How do I get Emacs key-bindings, or bindings of other editors? + 3.6 How do I get function keys F13 and up with my keyboard? + 3.7 How do I paste into an input widget like the file browser input line? + 3.8 How do I get my Alt/Meta key to work? + 3.9 Why do my other drag and drop applications not work with Cooledit? + 3.10 Where can I get more info on drag and drop? + 3.11 How do I get mail to work? + 3.12 How do I do regular expression substring replaces? + 3.13 Why does Cooledit die occasionally for no reason? + 3.14 How can I print from Cooledit? + 3.15 How can I enable NeXT look in Cooledit? + 3.16 How do I change the background color? + 3.17 How do I install on HP-UX? * 4 International Characters + 4.1 How do I enable international character support? + 4.2 How do I compose and insert international characters? + 4.3 My keyboard doesn't have a right-control key. + 4.4 Where can I get more information on UNIX and ISO? + 4.5 Help me with ISO8859-2 (Latin 2) character set support? + 4.6 How do I display UNICODE and UTF8? + 4.7 Where do I get UNICODE examples? + 4.8 What is anti-aliasing? + 4.9 How does Cooledit anti-alias fonts? + 4.10 How do I get anti-aliased fonts to work? * 5 Coolicon + 5.1 Where has coolicon gone to? * 6 Syntax Highlighting + 6.1 How does the syntax highlighting work? + 6.2 How fast is the syntax highlighting? + 6.3 Do the authors of Cooledit endorse these programming languages? + 6.4 Where on the Internet can I get more syntax highlighting definitions? + 6.5 Can I use syntax definitions from other editors? * 7 Debugger + 7.1 How does Cooledit manage to be a debugger? + 7.2 How do I insert a watch point? + 7.3 How do I enter other commands not shown in the menu? * 8 Printing + 8.1 How do I print with Cooledit? + 8.2 How do I print if my character set isn't supported? * 9 Look and Feel * 9.1 What is Look? * 9.2 How do I envoke a Gtk Look for Cooledit? * 9.3 Is Cooledit a Gtk application? _________________________________________________________________ 1 INTRODUCTION AND GENERAL INFORMATION 1.1 What is Cooledit? Cooledit is a full-featured text editor, for Unix computers that run the X Window System. Cooledit was born from a need for a user friendly text editor that would rival editors of other operating systems in ease of use and convenience. Lately Cooledit is also a powerful programmer's editor. It is also small and fast, making it ideal for interface with applications that allow for, or require, an external editor. See 'Features' in the man page for a more elaborate description of what Cooledit can do. 1.2 Who has written it? Cooledit was written by Paul Sheer. A few odd C functions and the regular expression library were taken from Rxvt, Dnd and the Midnight Commander (thanks guys). Their respective authors are acknowledged in the source. See THANKS in the man page for help that I received from users. Sasha Vasko added the NeXT look and feel for the purposes of making Cooledit look like other AfterStep applications. 1.3 Does it run on my machine? Cooledit was initially written only for Linux, but now uses GNU autoconf, and will therefore compile under any Unix compatible system, provided that system is running the X Window System, Version 11. If it doesn't run as expected, please email me ASAP. On the other hand, ask your local LUG first, since I don't have time to answer generic questions. Cooledit does not require any of the X11 extensions that many other programs need to compile or run. Cooledit has run on all the computer's listed in the man page. 1.4 Does Cooledit require any proprietary libraries to compile/run? No. Cooledit requires only the basic X11 library (libX11) to run which is available as free-ware. On some systems this may mean linking with addition basic libraries (like libsocket?), which are automatically determined by the ./configure script. In particular, note that Cooledit does not require the Motif (libXm) library which is not yet available for free. 1.5 Is Cooledit copyrighted? What is the licensing agreement? Cooledit is licensed under the GNU GENERAL PUBLIC LICENSE. This means that you can freely distribute Cooledit under certain conditions. The file COPYING contains the full licensing agreement. You are advised to read this license to be sure of your restrictions and obligations when modifying or distributing Cooledit. 1.6 What is the latest version of Cooledit? The distribution that this README file was packed into is Cooledit Version 3.17.17 created on 4 April 2005 See 'Where can I get Cooledit?' below. 1.7 Can Cooledit be ported to Gtk? Cooledit and Coolwidgets are deeply integrated since they were developed simaltaneously. Cooledits behaviour has been honed at a low level. To port to any other widget library would be close to a complete rewrite. The editor widget itself is however running under Gnome. This is not the complete Cooledit application, but a version of Cooledit that works under the Midnight Commander (text mode) and under the Gnome verison of the Midnight Commander. 1.8 What is Python and its relevance to Cooledit? Python is an object orientated scripting language. (It can be compared to Java but has a much more elegant and intuative design.) It has the most succinct, sensable and readable syntax of any other programming language whether interpreted or compiled. It suites rapid application development (RAD) because it is easy to learn, because Python applications are easy to maintain, and because it is simply takes less time to do anything in Python than with anything else. In the same way that Emacs uses lisp for writing extensions, and Nedit has a macro programming language, Cooledit now can be custom programmed with Python. This is an extremely powerful addition, since all of Python's many extensions are available to Cooledit. The Python home page is http://www.python.org/ Cooledit requires Python version 1.5 1.9 Should I worry about cutting-edge/BETA releases? If I add something that has a general influence on the stability of Cooledit, then I will normally release this with an announcement indicating that the software is BETA. This is rare. Usually new versions contain isolated features so if you want to be really safe, check for what features are new and avoid them. If a specific problem arises, get the latest release and see if that has been fixed. Probably few users use all of Cooledit's features, hence you should pick a version that you feel happy with and upgrade from time to time to check what useful new stuff has been added. 1.10 Where can I get a complete list of title-bar hint messages? The file HINTS contains such a list and installs in a doc/cooledit directory with the other documentation files. 1.11 Can I make Cooledit look like NeXT-ish application? You can compile Cooledit with --enable-NeXT-look option to make coolwidgets look similar to NeXT-ish widgets. The similarity is not complete though, as it was implemented to involve as little code changes as possible. It was inspired by GNUstep project <http://www.gnustep.org> and AfterStep Window Manager <http://www.afterstep.org>. 1.12 How do I send a bug report? If you discover a bug, please comply with the following procedure: * Make sure yoy have the latest version. Do NOT report a bug from an old version. * Check through the available documentation (man page cooledit.1) to decide if it really is a bug, or if you are just not using something correctly. Also see if it is already listed as a bug. If it is listed, feel free to complain that it has not yet been fixed. * Find out exactly how to reproduce the bug. If it is a behavioural problem, define it in detail, explaining the exact key presses and key releases involved. Phrases that merely complain `I have difficulty...', or `...does not work...' are going to be met with rudeness. Suggest exactly how you would like it to function. * If an error message was reported, quote the error message in full, letter for letter. * If the bug is a program crash, recompile Cooledit with the -g option and use gdb to list a backtrace. * Email the author. Be sure to quote the version number. The operating system version, the version of libc you are using, and the version of X. * If the problem you are having is related specifically to the NeXT look and feel version of Cooledit, and doesn't appear in the normal version, the you may want to email Sasha Vasko. * It is not necessary to prove that there really is a problem with a lengthly litigative argument. Rather demonstrate it with a precise procedure. 1.13 How do I send a compilation bug report? It is considered important when Cooledit does not compile and install cleanly on a particular UNIX system, hence please report such problems. Please try both the rpm package as well as source package to identify where the problem lies. If one works, but not the other, it is a useful hint to us that should be reported. However, as a developer, I AM NOT HERE TO TEACH YOU HOW TO INSTALL A GNU PACKAGE. Cooledit conforms quite strictly to the guidelines for a GNU package, and anyone who has experience installing other GNU packages from source should have no difficulty with Cooledit. If you have a genuine compilation difficulty, please send the version number, the output of config.log and the output of the configure and build phases of the installation, as explained in the INSTALL file. 1.14 Why is there a built in rxvt and what is interesting about it? See the file README.rxvt in the source distribution for information about rxvt. 2 NETWORK SOURCES AND RESOURCES 2.1 Where can I get Cooledit? The latest stable release can be obtained from ftp://ftp.ibiblio.org/pub/Linux/apps/editors/X/cooledit/ 2.1 Where can I get Python? The Python home page is http://www.python.org/ There you will find a list of the many mirror sites around the world. Cooledit requires Python version 1.5 2.3 Does Cooledit have a mailing list? No. Correspondence to be addressed through the author. Please don't bug me with generic queries. There are newsgroups and local Linux User Groups for that. 2.4 Does Cooledit have a world wide web home-page? No 2.5 What other applications are called 'cooledit'? I havn't done a search myself, but users tell me that a program 'cooledit', for editing sound files, exists for one non-unix operating system. Since this application has a complete different function to Cooledit, this should cause no problem. 3 COMMON PROBLEMS 3.1 How do I get the commands from the 'Scripts' menu to work? If a script doesn't function properly, try run it stand-alone from a terminal to see what happens. Some of the scripts are not standard Unix commands and require installation of other free-ware packages. You may need to install ispell indent latex xdvi rxvt ghostview dvips (Look on you local sunsite or tsx mirror for these and other free-ware packages.) You can edit the script from the Script menu. Look at the script's text and try run the script (make appropriate substitutions for the filenames) from a terminal. This will usually indicate the problem. 3.2 How do I get the man page browser to work? (As of version 3.3.3, the configure script automatically checks if man accepts '-a') Look in the file ~/cedit/.cooledit.ini Somewhere in the file is the line: option_man_cmdline = man -a %m You should try: Start cooledit from a terminal. See your man man-page (type man man at the terminal) to see if command-line options or environment variables are needed. See if the -a option is supported. Then see if the command-line needs changing. 3.3 The man page browser displays the man page, but gives a warning. This can safely be ignored. 3.4 In what ways does Cooledit behave differently to other X applications. Cooledit is more similar to applications from 'other' operating systems than to standard X applications. - Only two mouse buttons are supported. Mouse button 1 is recognised as the 'Left' button, while all other buttons are recognized as the 'Right' button. Under the Options menu you can however set the middle mouse button to paste. - Double clicking is synonymous with acknowledgement or pressing Enter. - The Tab key is always used to cycle between items in a dialog box. The arrow keys can also be used where they are not bound to some other function. Shift-Tab or back-tab is used to cycle backward. - Shift-arrow text highlighting works along with its well known keys: Control-Ins and Shift-Ins. In addition Alt/Meta-Ins brings up a cut and paste history which is very useful. - Dragging and dropping bits of text poses the problem of how to tell if the user wants to copy or to move the text being highlighted: use the Left mouse button to copy and the right mouse button to move ('move' = 'copy and then delete the original'). Dragging always works by highlighting the text with the mouse or cursor keys, and then Clicking (with the appropriate button) and dragging from within the highlighted region. - Clicking with button 2 to copy text from another application doesn't work --- instead you must use Shift-Insert. If text is highlighted in another application it will then be inserted at the cursor. Under the Options menu you can however set the middle mouse button to paste. Cooledit also does not discriminate between different kinds of data, so any data being copied to Cooledit will be accepted and inserted. - Copying of text to another application works as usual: highlight it with the mouse and click the middle mouse button in the window of the application. You can also highlight it with the arrow keys and press Control-Ins, and then click the middle mouse button in the window of the application. - Regular expression substring replaces are not like other Unix editors. See under `How do I do regular expression substring replaces?'. 3.5 How do I get Emacs key-bindings, or bindings of other editors? The key learning dialog box is easy to use. Just go through the list, pressing the keys you would like. Double key combinations will not work however. Cooledit now contains a builtin Python interpretor which can be used to program double key combinations and effectively emulate any other editor. Anybody want to create a vi emulation? 3.6 How do I get function keys F13 and up with my keyboard? Shift with a function key is analogous to adding 10 to the function key. i.e. Shift-F3 is F13 etc. 3.7 How do I paste into an input widget like the file browser input line? Press Shift-Insert in the input line. 3.8 How do I get my Alt/Meta key to work? On some machines, what the system thinks is an Alt/Meta key is actually one of the other hyper keys (on my Sun I have to use the key with the diamond on it). Try using one of these other keys as a Alt/Meta. The header file global.h contains the definition of the Alt/Meta key which you can change if you know what you are doing. 3.9 Why do my other drag and drop applications not work with Cooledit? The freeware community is adopting a new drag and drop protocol called XDND. Cooledit now works with this protocol only. It supports version 0, 1 and 2 of the protocol, although I have not tested it with versions below 2. Just when I had it working with version 2 of this protocol, the XDND team adopted a new version 3, which I haven't been able to get working. When more XDND applications come out (Qt is said to be going XDND) then I will have a more thorough test-bed for version 3 of the protocol and will probably be able to get this working. 3.10 Where can I get more info on drag and drop? http://www.cco.caltech.edu/~jafl/xdnd/ 3.11 How do I get mail to work? If mail doesn't work, your mail command probably doesn't support one of the command line options (see the mail dialog). You will have to create a mail script that ignores these options. The command is not currently configurable. Watch cooledit's stdout when sending mail to see mail error messages. 3.12 How do I do regular expression substring replaces? Substrings are specified between ( and ) braces. Use \( to specify a literal (. %s can be used to insert a substring into the replacement string. Use %% for a literal %. Use the third field of the replacement dialog box to enter the order in which the substrings will be inserted, eg. 3,4,1,3 This is different to sed replacements which use \( \) for substrings and \1, \2 ... for replacements. Also see the man page for an example. 3.13 Why does Cooledit die occasionally for no reason? If you have bad RAM or some kind of hardware problem it will be noticeable when you do kernel compiles. It will also be noticeable when you use Cooledit because of the very weird way Cooledit shuffles memory around. I have noticed that Cooledit can crash after being up for several weeks non stop. If anyone can send me a backtrace it would be appreciated. I am not sure if this is a Cooledit problem though. I also noticed crashes when using paragraph formatting in combination with auto-spellcheck. I fixed some potential problem code with regard to this, but can't be sure its gone. 3.14 How can I print from Cooledit? From the `File' menu. 3.15 How can I enable NeXT look in Cooledit? When building cooledit use --enable-NeXT-look option of configure script. 3.16 How do I change the background color? Edit your ~/.cedit/.cooledit.ini file and search for option_editor_bg_normal Colors are 1 through 26, but only 0 and 1 make any sense if you are using syntax highlighting. 3.17 How do I install on HP-UX? I compiled Python with readline, termcap, and C++ support, so I required lots of extra libraries. I also install cooledit in my home directory /home/sheerp under a directory 'usr': CC=cc ./configure --prefix=/home/sheerp/usr --with-libs=\ '-L/usr/python/lib/ -lreadline -ltermcap -lnsl -lrt -ldld -lpthread -lstd -lstream -lCsup -lm -lcl -lc' but you could probably get away with a lesser list, or, if you left Python out altogether, just: CC=cc ./configure Note that my HP-UX box is setup like: #[sheerp] /home/sheerp # which cc /bin/cc #[sheerp] /home/sheerp # ls -al /bin/cc lr-xr-xr-t 1 root sys 17 Nov 21 2002 /bin/cc -> /opt/ansic/bin/cc #[sheerp] /home/sheerp # /opt/ansic/bin/cc -h cc: warning 422: Unknown option "h" ignored. *sigh* 4 INTERNATIONAL CHARACTERS 4.1 How do I enable international character support? International character support has changed as of version 3.10, and now properly uses the libc6 locale functionality. Hence you should set the LANG and LC_ALL environment variables to reflect your locale, and install the appropriate locale files. Most distributions will have these locale files installed already in say /usr/share/i18n/locales/ You can then type export LC_ALL=cs_CZ export LANG=cs_CZ cooledit A full list of locales on my system is: POSIX, cs_CZ, da_DK, de_AT, de_BE, de_CH, de_DE, de_LU, el_GR, en_AU, en_CA, en_DK, en_GB, en_IE, en_NZ, en_US, en_ZA, es_AR, es_BO, es_CL, es_CO, es_DO, es_EC, es_ES, es_GT, es_HN, es_MX, es_PA, es_PE, es_PY, es_SV, es_US, es_UY, es_VE, et_EE, eu_ES, fi_FI, fo_FO, fr_BE, fr_CA, fr_CH, fr_FR, fr_LU, ga_IE, he_IL, hr_HR, hu_HU, id_ID, in_ID, is_IS, it_CH, it_IT, iw_IL, ja_JP, kl_GL, lt_LT, lv_LV, nl_BE, nl_NL, no_NO, pl_PL, pt_BR, pt_PT, ro_RO, ru_RU, ru_SU, ru_UA, sk_SK, sl_SI, sr_YU, sv_FI, sv_SE, tr_TR, uk_UA, zh_CN. You should also choose an appropriate font for your locale if it requires other than the normal iso8859-1 character set, such as the koi8 fonts for Russian language support. For example, cooledit -font '-cronyx-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r' 4.2 How do I compose and insert international characters? Use Right-Control and the character that the international character most looks like. Then press a second character that would compose that character typographically. Eg. Ctrl-a o inserts a 'å' The file INTERNATIONAL in the source distribution contains a complete list of character compositions. Note that cooledit does not compose characters in a standard way. Cooledit now supports two input methods. * First, using the right control key where you can insert all of the ISO8859-1 or ISO8859-2 characters. This is Cooledit's internal protocol. * And second, using X Input Method (XIM) system. This uses the compose key defined in your X config files (XF86Config on Linux) and is what all other application use. 4.3 My keyboard doesn't have a right-control key. The header file global.h contains the definition of the Compose key for Cooledit's internal method of character compsing. You can change to one of the others in the list of examples. You will have to recompile though with make clean make make install For the change to take effect. (you can, alternatively, just remove the file coolnext.o to re-make.) 4.4 Where can I get more information on UNIX and ISO? See the 'ISO 8859-1 National Character Set FAQ' The most recent version of this document is available via anonymous ftp from ftp.vlsivie.tuwien.ac.at under the file name /pub/8bit/FAQ-ISO-8859-1" 4.5 Help me with ISO8859-2 (Latin 2) character set support? Pavel Hampl <phampl@chmi.cz> reported that there are libraries for Latin-2. If you don't have these, Cooledit has its own builtin Latin-2 support. Thanks to Matej Knopp <matej@europe.com> for writing support for this. See the file INTERNATIONAL for how to compose characters. 4.6 How do I display UNICODE and UTF8? cooledit --utf8-interpretation --all-characters --no-fontset \ -font -gnu-unifont-*-*-*--*-*-*-*-*-*-iso10646-1 You will have to install the gnu Unicode font first: 0. Get the file unifont.pcf.gz from somewhere (like http://czyborra.com/unifont/) or get the file unifont.hex and make it with: a. hex2bdf unifont.hex > unifont.bdf b. bdftopcf unifont.bdf > unifont.pdf c. gzip unifont.pdf --> all available from same site. 1. Copy the file unifont.pcf.gz to /usr/X11R6/lib/X11/fonts/misc/ 2. ( cd /usr/X11R6/lib/X11/fonts/misc/ ; mkfontdir ) 3. xset fp rehash 4. xlsfonts | grep 10646 Another resource for fonts is http://www.cl.cam.ac.uk/~mgk25/unicode.html It should be emphasised that Unicode is not a method of displaying characters, but a method of storing language in a minimalists code. ASCII does the same thing with *very ordinary* English text. Each application still has to implement things like putting Hebrew vowels below (and not next to) their respective characters. However, an application that can display overlapped characters like this should really be able to do with far fewer Chinese ideographs???. What I am saying here is that a Character Set is not a well defined thing. Also, consider LaTeX -- we use Ascii to represent many none-Ascii glyphs, should we now make a LaTeX where â is entered instead of \sigma? How would â be entered on a US keyboard? Its much easier to typeset most kinds of text with escape sequences that can be typed with Ascii, than selecting them with dialogs. In any event, Unicode feels like a good idea even though I'm not sure anyone really knows what exactly it is supposed to accomplish. Then also, text editors are not word processors. What a text editor is supposed to do is pretty well defined (at least in *my* mind :-) and has something to do with representing and editing a raw stream of bytes in a consistent and clear manner. So I have kept in mind that the user should always be aware that its eight bit bytes they are editing. (One difference is that I go against recommendation for erroneous UTF-8 codes: these are represented byte for byte, and not as a single bad character - eg ø should be one char.) 4.7 Where do I get UNICODE examples? Below is one, but you can also download ucs-fonts.tar.gz from one of the above listed URL's. It has many examples. (All these examples should display correctly with the above options:) Armenian: Ô¿ÖÕ¶Õ¡Õ´ Õ¡ÕºÕ¡Õ¯Õ« Õ¸ÖÕ¿Õ¥Õ¬ Ö Õ«Õ¶Õ®Õ« Õ¡Õ¶Õ°Õ¡Õ¶Õ£Õ«Õ½Õ¿ Õ¹Õ¨Õ¶Õ¥ÖÖ Basque: Kristala jan dezaket, ez dit minik ematen. Brazilian Portuguese: Consigo comer vidro. Não me machuca. Cabo Verde Portuguese: M'tá podê kumê vidru, ká stá máguame. Catalan: Puc menjar vidre que no em fa mal. Chinese: æè½åä¸ç»çèä¸ä¼¤èº«ä½ã Croatian: Ja mogu jesti staklo i ne boli me. Czech: Můžu jÃst sklo; to mi neÅ¡kodÃ. Danish: Jeg kan spise glas, det gør ikke ondt pÃ¥ mig. Dutch: Ik kan glas eten. Het doet geen pijn. English: I can eat glass and it doesn't hurt me. Esperanto: Mi povas manÄi vitron, Äi ne damaÄas min. Estonian: Ma vÅin klaasi süüa, see ei tee mulle midagi. Finnish: Pystyn syömään lasia. Se ei koske yhtään. French: Je peux manger du verre, cela ne me fait pas mal. Frisian: Ik kin glês ite, it docht me net sear. Galician: Eu podo xantar cristais e non cortarme. German: Ich kann Glas essen, ohne mir weh zu tun. Greek: ÎÏοÏÏ Î½Î± ÏÎ¬Ï ÏÏαÏμÎνα Î³Ï Î±Î»Î¹Î¬ ÏÏÏÎ¯Ï Î½Î± ÏÎ¬Î¸Ï ÏίÏοÏα. Hebrew: ×× × ×××× ××××× ×××××ת ××× ×× ×××ק ××. Hungarian: Meg tudom enni az üveget, nem árt nekem. Icelandic: Ãg get borðað gler, það meiðir mig ekki. Irish: Tá mé in ann gloine a ithe; Nà chuireann sé isteach nó amach orm. Italian: Posso mangiare il vetro e non mi fa male. Japanese: ç§ã¯ã¬ã©ã¹ãé£ã¹ããã¾ããããã¯ç§ãå·ã¤ãã¾ããã Latin: Vitrum edere possum; mihi non nocet. Latvian: Es varu Äst stiklu, tas man nekaitÄ. Malay: Saya boleh makan kaca dan ia tidak mencederakan saya. Milanese: Sôn bôn de magnà el véder, el me fa minga mal. Norwegian: Jeg kan spise glass uten Ã¥ skade meg. Polish: MogÄ jeÅÄ szkÅo, i mi nie szkodzi. Portuguese: Posso comer vidro, não me faz mal. Provençal: Pòdi manjar de veire, me nafrariá pas. Québécois: J'peux bouffer d'la vitre, ça m'fa pas mal. Romanian: Pot sÄ mÄnânc sticlÄ Åa ea nu mÄ rÄneÅte. Russian: Я Ð¼Ð¾Ð³Ñ ÐµÑÑÑ ÑÑекло, ÑÑо мне не вÑедиÑ. Scottish Gaelic: S urrainn dhomh gloinne ithe; cha ghoirtich i mi. Sicilian: Puotsu mangiari u vitru, nun mi fa mali. Slovak: Môžem jesÅ¥ sklo. Nezranà ma. Soenderjysk: à ka æe glass uhen at det go mæ naue. Spanish: Puedo comer vidrio, no me hace daño. Swedish: Jag kan äta glas, det skadar mig inte. Tagalog: Kaya kong kumain nang bubog at hindi ako masaktan. Thai: à¸à¸±à¸à¸à¸´à¸à¸à¸£à¸°à¸à¸à¹à¸à¹ à¹à¸à¹à¸¡à¸±à¸à¹à¸¡à¹à¸à¸³à¹à¸«à¹à¸à¸±à¸à¹à¸à¹à¸ Turkish: Cam yiyebilirim, bana zararı dokunmaz. Twi: Metumi awe tumpan, ÉnyÉ me hwee. Vietnamese: Tôi có thế Än thúy tinh, kông hại gì. Welsh: Dw i'n gallu bwyta gwydr, dwy e ddim yn gwneud dolur i mi. Yiddish: ××× ×§×¢× ×¢×¡× ×××Ö¸× ××× ×¢×¡ ××× ××ר × ××©× ×°×². Yoruba: Mo lè jeÌ© dÃgÃ, kò nà pa mà lára. 4.8 What is anti-aliasing? Aliasing is a term from signal processing meaning that the digital representation of a signal has coveted the signal. It is most applicable to signal sampling, when, say a sound is sampled at too low a frequency, causing a misrepresentation of the sound. To cure signal aliasing, filtering is applied to remove frequencies that are high enough to "alias" with the sampling frequency. In image processing, aliasing refers to the jagged look in images represented with large pixels. These can be removed by "smoothing" the image: slightly blurring the image --- filtering the image; which is analogous to filtering out high frequencies in sound samples. Television sets are a good example of well anti-aliased devices. Even though they are scarcely 400 by 300 pixels in resolution, one is hardly aware that the screen is made up of discrete scan lines. Anti-aliased image operations are evident with image utilities that produce good quality images even after rotation and scaling. There are several (rather obvious techniques) for operating on images while avoiding aliasing. For example, when shrinking an image, never merely take spaced samples, neither take averages of "larger pixels"; rather first properly filter the image down to the required spacial resolution (using a convolution with a filtering function). Fonts are an extra problem. To reduce jagged edges, we can render the font at higher resolution and then scale it properly with variable colour intensity levels of the pixels. More attractively, we can devise a font rendering engine that produces grey level intensity glyphs instead of 2 colour ones. 4.9 How does Cooledit anti-alias fonts? Cooledit simply uses a large font and then scales it with a filter. It exploits the sub-pixel LCD design to achieve higher-than-screen horizontal resolution. See http://grc.com/cleartype.htm for more info. A comprehensive resource on anti-aliased font rendering and its problems can be found at http://freetype.sourceforge.net/ Hinting (aligning glyph features with pixels) is discussed. This is a far more sophisticated method than the one Cooledit uses, and produces much better results. 4.10 How do I get anti-aliased fonts to work? Use the command line: cooledit -font -winfonts-arial-bold-r-*-*-45-*-*-*-*-*-iso8859-1/3 --red-first or cooledit -font -winfonts-arial-bold-r-*-*-45-*-*-*-*-*-iso8859-1/3 --blue-first depending on the ordering of your LCD monitor. If they look the same, it means you don't have an LCD monitor. The `/3' after the font means to scale the font by a factor of three. Note that it is essential to have true type font support. Other fonts will most likely not scale with high enough quality to give a worthwhile appearance. Install the FreeType font sever xfstt or get X 4 with ttf support. 5 COOLICON 5.1 Where has coolicon gone to? It has been removed from the source. 6 SYNTAX HIGHLIGHTING 6.1 How does the syntax highlighting work? Syntax highlighting does not work the way you expect it does --- the colors of each character that you see on the screen are not stored anywhere within cooledit. Rather when the character is rendered, its colour is looked up from its context using a highly optimised algorithm. This means that syntax highlighting is not being calculated as you press keys or modify text. It is being calculated with each redraw of a character. This imposes certain limitations on the kind of syntax highlighting rules that are possible, but, with a little imagination, a rich and elegant description of your language can be created. 6.2 How fast is the syntax highlighting? Python and C code are parsed at a 350kB per second on a PII300. Perl code at 250kB per second. (In the sense that paging to the bottom of the 1M file will take 3 or 4 seconds.) However, the speed is highly dependent on the number of rules as well as the content of the text itself. 6.3 Do the authors of Cooledit endorse these programming languages? No. All syntax files found or recieved that appear to work are included in the distribution. It does not mean that those languages are commonly used. 6.4 Where on the Internet can I get more syntax highlighting definitions? No where. Cooledit comes complete with every syntax definition I know about. It is possible that others have created their own, If I ever find any that no one has told me of, I will immediately include it. 6.5 Can I use syntax definitions from other editors? No. There is no standard for syntax highlighting methods that I know of. Syntax highlighting rules are the invention of each package. Cooledit's are unique. 7 DEBUGGER 7.1 How does Cooledit manage to be a debugger? Cooledit has no builtin support for debugging executables. It interfaces with gdb by sending gdb the commands that one normally types into gdb's text interface. As such, newer versions of gdb may break the interface by sending unexpected output. It is unlikely (??) that the gdb maintainers would change the error reporting though. Hence, you should not expect the robustness of a proper debugger. For instance, breakpoints will not be removed if you close an edit window, nor will changes to a file be noticed by gdb - you have to rebuild and rerun your executable or even kill the debugger from the Debug menu. 7.2 How do I insert a watch point? Add a new variable to your display list `Display variable...' from the `Debug' menu. A text box will appear (if one is not already open). You can set a watch point by hitting `Ins' inside the textbox with the cursor over the variable of your choice. It will then be highlighted in blue. 7.3 How do I enter other commands not shown in the menu? You can insert any command you want with Ctrl-F1 (`Enter command...'). See the gdb info pages (info gdb) for everything else that gdb can do. 8 PRINTING 8.1 How do I print with Cooledit? Cooledit has a print dialog that can be invoked from the File menu. This has its own builtin postscript formatting system for Ascii text. This is a very simple formatter based on the original perl script, i2ps or aprint, by Leif Andersson and <Leif.Andersson@control.lth.se> and Gisle Aas <Gisle.Aas@nr.no>. This is a very simple conversion to PostScript. Those wanting more sophisticated text formatting should try the enscript program. 8.2 How do I print if my character set isn't supported? Use enscript. You can do this very easily by entering enscript -o - | lpr under `Print command' in the Print dialog. 9 LOOK AND FEEL 9.1 What is Look? `Look' refers to the appearance of widgets: colour, shading spacing etc. `Feel' refers to how the widget behave. Cooledit has a similar feel throughout all Looks, akin to modern GUI applications. 9.2 How do I envoke a Gtk Look for Cooledit? cooledit --look gtk --widget-font '-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*' 9.3 Is Cooledit a Gtk application? Cooledit does not link with the Gtk library or any of the Gtk utility libraries. It is therefore not strictly a Gtk application. Cooledit will probably never look EXACTLY like a Gtk application on account of the difficulty in reproducing the exact rendering behaviour of all Gtk widgets. It is close enough in most cases to be thoroughly familiar to the eye.