📄 changelog
字号:
Fri Feb 11 20:07:02 2000 Paul Sheer <psheer /AT/ icon.co.za> * font.c: potential segfault captured and fixed with electic fence.Fri Feb 11 19:30:28 2000 Paul Sheer <psheer /AT/ icon.co.za> * debug.c: now modified to use the builtin rxvt. Debugger updates for gdb 4.18 * cooleditmenus.c: Shift-F1 opens a terminal.Fri Feb 11 19:29:12 2000 Paul Sheer <psheer /AT/ icon.co.za> * rxvt.c, rxvt/*.[ch], et al.: From root /AT/ obsidian.co.za Fri Feb 11 11:53 GMT 2000 Status: RO Date: Fri, 11 Feb 2000 13:53:28 +0200 (SAST) From: Paul Sheer <psheer /AT/ icon.co.za> Reply-To: Paul Sheer <psheer /AT/ icon.co.za> Subject: Rxvt componentized into an object and imbedded into cooledit To: Geoff Wing <gcw /AT/ pobox.com>, cooledit /AT/ mail.obsidian.co.za MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii I have imbedded rxvt-2.6.1 into cooledit. This is probably useless and stupid, so please feel free to flame. However it is technically quite interesting: Rxvt is a grosely non-object-orientated program - lots of global and static variables. I wanted to turn it into an object, where multiple instances could be instantiated from within the same thread. I have written a Python script to convert any (?) flat C code into object orientated style C code. It takes all global functions and replaces do_something (int x, char *y); with rxvtlib_do_something (rxvtlib *o, int x, char *y); It also replaces all global variables with o->global_variable ... well you get the idea. The result is librxvt.a which can be used to imbed a terminal inside any application. You just give it the necessary callbacks. The port is not trivial, even after running the script (which tries to cope with as many general situations as possible - like seperating out typedefs and structs, and initialising variables) there is still a days work in cleaning everything up. The result is an rxvt which looks like this: #include "rxvtlib.h" int main (int argc, const char *const *argv) { rxvtlib o; rxvtlib_init (&o); rxvtlib_main (&o, argc, argv); return 0; } ...and not a single global variable. Imbedding into cooledit is a little more work. You have to isolate rxvt's inner loop and give it cooledit's display connection. This now all works - press F1 for a terminal and watch it pop up at lightning speed. The next beta (beta9) will be uploaded this weekend. rxvtlib adds 70k to the final cooledit binary. Note that rxvt is not quite yet a coolwidget - that may come later. its still a toplevel window. (Geoff, if you are interested in `objectizing' rxvt in this way, I can port the latest devel version in a day or so.) One extension of this is to have a future rxvt version that has mutiple terminals in notebook style - i think this would be really cool. best wishes -paulMon Jan 17 00:14:40 2000 Paul Sheer <psheer /AT/ icon.co.za> * shell.c: fixed problem with redefined shell keys not being recognized.Thu Jan 13 23:00:01 2000 Paul Sheer <psheer /AT/ icon.co.za> * focus.c: drag and drop border highlight ring fixed. * mousemark.c: drag and drop cursor positioning fixed when dragging from other program.Thu Jan 6 13:03:56 2000 Paul Sheer <psheer /AT/ icon.co.za> * scollbar_next.c, filelist_next.c, filebrowser_next.c: fixed various ansi violations and compiler warnings.Thu Jan 6 11:15:17 2000 Sasha Vasko <sashav /AT/ sprintmail.com> * widget: hacked to NeXTish look : added files: scrollbar_next.c, filelist_next.c and filebrowser_next.cThu Jan 6 11:05:19 2000 Paul Sheer <psheer /AT/ icon.co.za> * initapp.c, cooledit.c: default fonts now -*-fixed-bold-r-*--13-*-*-*-*-80-* -*-helvetica-bold-r-*--13-*-*-*-*-*-* apparently -*-fixed-bold-r-*--13-*-*-*-*-80 doesn't load as a font set on solaris.Wed Jan 5 20:36:07 2000 Paul Sheer <psheer /AT/ icon.co.za> * debug.c: debug backtrace change to `l' and kill to `k'. Beware. * inputwidget.c: text now in editor font.Wed Jan 5 20:25:17 2000 Paul Sheer <psheer /AT/ icon.co.za> * edit.c: properly check for already open files. * pathdup.c, stringtools.c: canonicalize_pathname scrapped. Now uses pathdup to properly resolve all symlinks. * edit.c: opening gzip etc. files checks for readability.Tue Jan 4 10:31:09 2000 Paul Sheer <psheer /AT/ icon.co.za> * edit.c, editcmd.c: gzip, bzip, compress and generic filtering.Mon Dec 27 22:35:32 1999 Paul Sheer <psheer /AT/ icon.co.za> * cooledit.i: `prev_col =...' added so that cursor does not stick to the column pos after python macros. * editoptions.c: .cooledit.ini now created with permissions 0600 in case there are passwords in dialogs. * global.py, zope_utils.py, c_utils.py, sh_utils.py: created. python stuff reorganised into a proper structure.Sun Dec 26 15:26:04 1999 Paul Sheer <psheer /AT/ icon.co.za> * mail.c: search for sendmail in /usr/sbin/ and /usr/lib/ also.Sat Dec 25 23:01:19 1999 Paul Sheer <psheer /AT/ icon.co.za> * cooledit.c: --no-xim to disable xim support. * xim.c: check if CIC is wrongly focused - prevents segfault. See FIXME in source. * postscript.c: bold option added. also fixed initialisation on second print. now you can print more than once.Thu Dec 23 17:23:47 1999 Paul Sheer <psheer /AT/ icon.co.za> * font.c: this file added to support multiple fonts. fonts work by pushing and popping because its the only way to support multiple fonts at this stage without re-engineering the whole library. * xim.c: XIM input methods. * *.c: All string rendering goes through fonts.c checking if its a fontset or a plain old font struct. We support both. * initapp.c: widget_font option added. * coolnext.c: event XFilter'ing for key composing. XmbLookup in xim.c to compose keys and support XIM. * coolwidget.c: XIM context created with all dialog windows. * coolwidget.c: for_all_widgets() function added. * debug.c: lots of little fixes - seems we were using "( y or n )" instead of "(y or n)". gdb gives both messages. * pipe.c: forkpty() for debug to fork gdb under a pty without having to open an xterm. * debug.c: gdb runs silently even if there is not pty using new forkpty stuff. * debug.c: don't create breakpoints red-lines over each other. * print.c, postscript.c: postscript printing and print dialog hacked from a perl script. Postscript code is really bad - uses only global variables. * syntax.c: removed LOTS of memory leaks (ouch).Fri Dec 10 19:05:07 1999 John Theal <jtheal /AT/ renegadelinuxbox.dhs.org> * syntax.c: fortran syntax highlighting added.Thu Dec 2 16:13:58 1999 Paul Sheer <psheer /AT/ icon.co.za> * menu.c: add facility to insert and delete specific menu items by name. * coolpython.i: added insert_menu(), replace_menu(). (For: Michel Pelletier) * coolpython.i: added file_type() to set and return the current syntax highlighting type. (For: Michel Pelletier) * textwidget.c: fixed cursor-out-of-screen bug of text boxes. * edit.c: proper spaced filled tabs on right of code.Tue Nov 30 09:24:21 1999 Paul Sheer <psheer /AT/ icon.co.za> * edit.c: goto matching bracket with Alt-bSun Sep 12 09:43:20 1999 Pavel Roskin <pavel_roskin /AT/ geocities.com> * gtkedit/editcmd.c (edit_replace_cmd): don't change the global "prompt on replace" setting when "All" is selected, use a local variable insteadSun Sep 5 11:08:49 1999 Paul Sheer * edit.c, editcmd.c: added bookmark-all-finds feature.Wed Aug 18 21:20:08 1999 Paul Sheer * syntax.c: spurious segfault in syntax highlighting which may manifest when using auto-spellcheck. I think I know what caused this and it may have been fixed.Sun Aug 1 21:36:58 1999 Paul Sheer * fieldedtextbox.c: apparently there are division by zero exceptions when there are no files in the browser. I can't reproduce these, never-the-less, I have changed all `/ x' to `/ (x ? x : 1)'Thu Jun 24 12:27:44 1999 Paul Sheer * syntax.c: edit_syntax_clear_keyword(): removed misspelled keyword words don't refresh syntax highlighting from the top of the file. This removes that horrible lag when editing big files. * syntax.c: subtle bug where adjacent '*' keywords don't get highlighted correctly - fixed. * syntax.c: optimizations and code cleanups. * syntax.c: added support for keywords that start with a character, but are open ended: like \\+ for latex and $+ for shell scripts. * shell.c: updates to output occur only when a newline is printed. Hence display is like a terminal - i.e. line cached. * debug.c: fixed possible cause of spurious segfault when using debugger.Sun Jun 13 20:24:19 1999 Paul Sheer * syntax.c, mail.syntax: syntax rules for mail folder. These are folders with headers that begin with `From '.Sun Jun 13 16:01:16 1999 Paul Sheer * cooledit.i, find.c: added way of adding browse buttons to input widgets in generic dialog.Sat Jun 12 10:58:03 1999 Paul Sheer * configure.in: changed AM_GNU_GETTEXT macro to default to with instead of without included-gettext. This will prevent __dcgettext errors compiling on some linux's. * *.c: now REALLY compiles with LCC out of the box (provided you configure with CFLAGS='-D__STRICT_ANSI__).Sat Jun 12 10:06:56 1999 Paul Sheer * global.py: error fixed. * editdraw.c: edit_scroll_screen_over_cursor() corrected behaviour.Fri Jun 11 18:25:12 1999 Paul Sheer * editcmd.c: replace query dialog now has `replace one' and also doesn't overlap your cursor, when its near the top of the screen. * global.py: some errors and additions.Thu Jun 10 15:36:13 1999 Paul Sheer * cooledit.c: -S on command-line doesn't effect global (i.e .cooledit.ini) option. * find.c, ctags, debug.c: `Browse...' button next to entry widget for file or directory.Sun Jun 6 15:03:46 1999 Paul Sheer * cooledit.i: fixed spurious segfault, when recieving key stroke if there is no widget with the focus. (like holding F10 down). * syntax.c: fixed segfaults incurred by non-existing lib/cooledit directory.Sat Jun 5 15:19:53 1999 Paul Sheer * cooledit.i: redraw() get_line() fixed. indent() added. * global.py: added C util menu proper.Sat Jun 5 02:46:24 1999 Paul Sheer * cooledit.i: added new bind() command to bind keys to within a specific editor window. * debug.c: tracked down bug where programs halt cooledit if you start a program the second time after naming it badly in the info menu. * debug.c: starting with no-stop-at-main leaves curser even when program is done - fixed.Wed Jun 2 13:02:31 1999 Paul Sheer * ru.po: russian translation updates.Wed Jun 2 02:10:56 1999 Paul Sheer * initapp.c, focus.c: widget spacing defaults changed to give a more elegant look.Tue Jun 1 14:09:40 1999 Paul Sheer * cooledit.c, editwidget.c, editdraw.c: fixed minor display bug in status line as well as extra line on last row of text with proportional fonts. * syntax.c: fixed segfault when switching syntax highlighting modes.Sun May 30 12:38:30 1999 Paul Sheer * smalledit.c: spell checking option added. spell checking off by default.Sat May 29 11:08:05 1999 Paul Sheer * *.c: fixed warnings when compiling with lcc. * propfont.c: fixed stray pixel displays with true type fonts.Thu May 27 17:55:48 1999 Paul Sheer * debug.c: variable display list and watchpoints with Ins. * syntax.c: spell checker causes segfault if there is a misspelled word on the first line - fixed. * mousemark.c: always show cursor when we are dragging.Tue May 25 17:22:40 1999 Paul Sheer * edit.c: more flexible system of word char moves. * scrollbar.c: `where-was-i' rectangle.Tue May 25 00:13:12 1999 Paul Sheer * editwidget.c: bookmarks now displayed in scrollbar. * editdraw.c, coolwidget.c: new widget C_STATUS_WIDGET. editor windows *finally* have a decent status line, yawn.Sat May 22 11:11:31 1999 Paul Sheer * debug.c: `no stop at main' option added to debugger. more rigorous method of getting pty for xterm. This should fix rh6.0 problems. * debug.c: various bug fixes.Wed May 19 17:34:37 1999 Paul Sheer * debug.c: fixed bug - cancelling `insert conditional bp' dialog segfaults. * debug.c: breakpoints bookmarks inserted only on success. * coolnext.c, shell.c, debug.c: some long overdue overhauls of the way fd's are handle. there is now a single global select statement to handle all fd's, debug, shell, or X connection. This is the proper way of doing things - shell outputs are now much crisper.Tue May 18 12:34:09 1999 Paul Sheer * syntax.c: spellcheck - as optimization, don't lookup words already in keyword list. * find.c: ctags support with C-M-i. * coolnext.c: multiline toolhints. * shell.c: optimized display of shell output prevents eating cpu with long shell outputs.Mon May 17 17:37:31 1999 Paul Sheer * find.c: fix for non-GNU find commands.Fri May 14 23:29:24 1999 Paul Sheer * syntax.c, propfont.c: spellcheck as you type added. * Makefile.am: libintl moved out. gettext macros take care
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -