diff options
Diffstat (limited to 'nx-X11/lib/Xaw/Changelog')
-rw-r--r-- | nx-X11/lib/Xaw/Changelog | 1370 |
1 files changed, 0 insertions, 1370 deletions
diff --git a/nx-X11/lib/Xaw/Changelog b/nx-X11/lib/Xaw/Changelog deleted file mode 100644 index 263ae04d5..000000000 --- a/nx-X11/lib/Xaw/Changelog +++ /dev/null @@ -1,1370 +0,0 @@ -Patch 1 (#1655) 15 April 1998 - - Description of the actions system: --------------------------------------------------------------------- - All the actions have the syntax: - -action-name(boolean-expression, args) - - Where: -action-name: - Any string with a translation binding in the binary for the widget. - -boolean-expression: - [{~}]variable-name|resource-name|constant-name[{&|^}[[{~}]variable-name|resource-name|constant-name]]... - -variable-name: - Any string starting with a '$' character (actually it's not possible - to mask this character; I'll fix it). Variables are actually created - with the translations 'declare' and 'get-values'. Example: - get-values(1, $x, x) - declare(1, $armed, true) - -resource-name: - Any resource name of the widget. Note that it requires a <TYPE> to - string converter in the code (I added some on the patches), since - all variables values are stored in a 'String' format. Example: - borderWidth - height - font - background - -constant-name: - Especial values. They aren't normally contants, but a special state - not triggered with resources or variables (They have the highest - precedence, so, to allow these strings as resource names I'll need - to allow some sort of escape sequences). Examples: - mine # event->xany.window == XtWindow(widget) - faked # event->xany.send_event != 0 - true # you know - false # " " - -args: - Special strings values interpreted by the translation binding. - -The operators (currently) understood are: - ~ - NOT - & - AND - | - OR - ^ - XOR - ( - RP - ) - LP - The final result value is and'ed with 1. - -Sample translation to make a label widget behave like a button: -<Map>:\ - get-values(1, $fg, foreground, $bg, background)\n\ -<Btn1Down>:\ - set-values(1, foreground, yellow, background, gray30)\n\ -<Btn1Up>:\ - set-values(1, foreground, $fg, background, $bg)\n - - - Description of the displayList system: --------------------------------------------------------------------- - The display list has the syntax: - -[class-name:]function-name args[{;|\n}]... - - Where: -class-name: - Any registered set of functions. The code registers the class 'xlib', - and if the class name is not specified, this class is assumed. - -function-name: - A string binding to the correct function to be called. - -args: - A set of converted and shareable arguments, to the function. The - positioning/sizing arguments currently implemented have the syntax: -{+-}<integer> or <integer>/<integer>. Examples: - +0,+0 top, left - -0,-0 bottom, right - -+10,-+10 bottom+10, right+10 - +0,1/2 left, vcenter - - All displayLists are shared by: - widget->core.screen - widget->core.colormap - widget->core.depth - I have added only partial code for handling non-windowed widgets (gadgets). -I'll fix it. - - Example for drawing two lines crossing the widget: -foreground black;\ -line +0,+0,-0,-0;\ -line +0,-0,-0,+0 - - - -Patch 2 (#1660) 19 April 1998 - - + More functions for displayList's - + Fixes for simpleMenuWidget, xfontsel should work very better now. Try - this with the newer patches to verify the changes: - xfontsel -xrm '*XFontSel*SimpleMenu*font: --*-helvetica-medium-r-*-*-16-*-*-*-*-*-*-1' - + Small bug fix to boxWidget, viewres should work better now. Try this - to verify the changes: - viewres -xrm '*Viewres*Box.borderWidth: 1' - + Small bug fix to panedWidget, when pressing in a gripWidget but not - moving the pointer, or releasing at the same coordinates. - -Patch 3 (#1673) 25 April 1998 - - + Changes in layout code for the Form widget. To see the changes, run xcalc - and resize it several times (try giving it a very small size and the - restore the size). The new code uses a 'known' reference size/position - to avoid integer rounding problems. - + A optimization for the Form widget. Now it unmaps itself before resizing - the child widgets. This way the layout process is very faster. - + The List widget will try to fit in a 32767x32767 window size. It checks - if the width or height will become bigger than 32767 and if will, changes - the number of columns. This fixes xman (at least for me, that have several - entries in the section 3 of the manpages). - + New functions to displayList's and fixes to some bad bugs (I'm yet working - on that file). - + Change in the Scrollbar functionality. It was redrawing the thumb when - triggering the MoveThumb action. This is bad because several programs - choose to recalculate the thumb position with XawScrollbarSetThumb, causing - screen flickering. Now it redraws the thumb when triggering the NotifyThumb - action. To verify the changes, run xfm or xman and try to scroll past the - end of a window; it will keep erasing and redrawing the thumb. - + Other change in the Scrollbar is that it will only draw in the rectangle: - 1, 1, core.width - 1, core.height - 1. It is better when creatting a 3d - effect with displayList's. - - -Patch 4 (#1678) 3 May 1998 - -Included the patches for the recent problems with libXaw. -Several 'gratuitous' small changes, to compile cleanly with gcc -Wall. -Some bug fixes for DisplayList.c. -Colored pixmaps support. I'm building a abstraction layer for the colored - pixmaps, so that it should be easy to support more pixmap formats - (actually, only X bitmaps). - - -Patch 5 (#1686) 11 May 1998 - - + Patch to libXmu, so that the StringToCursor converter will understand the - string 'None', that means not to use a cursor. This is useful when - overriding resource settings, and the user wants to use the parent window - cursor, or the root window cursor. Any unrecognized name will generate - a 'None' cursor, but then with a warning message. - + SimpleWidget was modified to allow setting the cursor to none, when it - was a valid cursor. - + Modification in the Actions.c, - from: - typedef struct _XawActionVar { - XrmQuark qname; - String value; - } XawActionVar; - to: - typedef struct _XawActionVar { - XrmQuark qname; - XrmQuark qvalue; - } XawActionVar; - This does not cause any problems, since the exported interface remains - the same. This is required to avoid to much copies of the same string. - + Values of action variables can start with '$'. - + If a resource name clashes with a special constant name when evaluating - a boolean expression (in the translations code), it's enough - start the resource name with '\\' (it can always be used, but is - only useful if there is a name clash :). - + The only code that loads data files actually is the pixmap code. To avoid - security problems, the code only loads files that are group readable, - regular file, non suid and non sgid. - + If the code to load a pixmap does not find a match, and the pixmap name - has a extension, try without the extension. - + Function 'line-with' added to displayList code. - + Added DisplayListToString and PixmapToString converters. - + Bug fixes in the pixmap name interpretation. - - -Patch 6 (#1701) 24 May 1998 - - Xaw - ------ - + Allows setting the resources label_x and label_y inherited from labelWidget. - This is useful for moving the contents of a button when it is pressed - ( I included a simple test for it ) - + Added OS/2 patchs - + The buffer overflow problems were resolved in a different way. I added - a function XmuSnprintf, that is used by Xaw and Xmu. - + Correction of a problem in SimpleMenu, when it tries to optimize the - space used by the menu. - - Xmu - ----- - + Function XmuNCopyISOLatin1Lowered, defined in <X11/Xmu/CharSet.h> - + Function XmuSnprintf, defined in <X11/Xmu/SysUtil.h> - + All ocurrences of sprintf were replaced by XmuSnprintf and all ocurrences - of XmuCopyISOLatin1Lowered were replaced by XmuNCopyISOLation1Lowered. - - -Patch 7 (#1738) 21 June 1998 - - + Corrected problem with the Command widget, when it was made insensitive - without calling the 'reset' action. - + Rework of the SimpleMenu code for optimizing the space used. Now it - really works as intended. - + Fixed portability problems with my previous patches. - + Corrected problem pointed by 'grano@cs.Helsinki.FI'. He have followed up - a bug report to the devel mailing list. While the problem exist, his - patch was not complete, so I did a rework of the AsciiSrc.c:Scan() and - MultiSrc.c:Scan() functions. - + I added clipping code to the {Ascii,Multi}Sink widgets, to allow use of - displayList's as decoration. The best solution I found to avoid too much - server requests, and keep full binary compatability was to use the resize - method of these widgets, to tell them to the parent widget have changed - it's size. - + Now the TextWidget has a xterm/emacs like cursor. And it is possible to - especify a cursor color. - + Fixed several problems caused by code assuming a line of text will be - shown as one line in the TextWidget. This is not always true when - it uses XawtextWrapLine or XawTextWrapWord, the most common problem was - the cursor becomming invisible, after calling the function - Text.c:_XawTextShowPosition() that is called to make sure it is visible ;) - + Added code that it will not forget the cursor distance from the left of - the window while moving the cursor one line up or down. - + Ansification of the text code (not yet complete). Private routines now - uses prototypes and wide parameters. External routines were kept - as before (but with prototypes not masked by NeedFunctionPrototypes), - to avoid binary compatability problems. The bigger problem I found in the - ansification was a function with 6 parameters being called with only 5. - + Several routines were rewritten, sometimes from scratch. - + The cursor navigation of the TextWidget was completely reviewed. It - should be very familiar to Emacs users. The most Emacs like behaviour is - when the cursor in move one line up or down and becomes invisible; the - text will be scrolled so that the line with the cursor will be centered - in the screen. Also, when doing page up, the cursor will be positioned - in the bottom-left, instead of allways in the top-left. - -Patch 8 (#1752) 27 June 1998 - - + There was a problem with the previous patch regarding to portability. - The problem was strcasecmp. I was planning to provide the funcionality - in libXmu, and forgot when creating the previous patch :(. There is - already a strcasecmp equivalent in libXmu, that is - Lower.c:XmuCompareISOLatin1(), so I used that function. - + The previous patch was working correctly for viewing text, but there were - some cases the text window could end not displaying correctly the text. - This problem was fixed. - + Now, the only real need of scrollbars is when doing long jumps on the - text, because the cursor will be always visible since this new patch - does horizontal scrolling automatically. - - -Patch 9 (#1755) 28 June 1998 - - + Removed all my RCS idents in the files. - + Declared functions as static in the prototype and in the definition - (this basically reverts a previous patch, but should help when applying - the patches sequentially). - + Changed the code in Pixmap.c to use strtok instead of strsep, that is - not portable. - + Corrected problem with previous patch that would cause trouble when - a text widget had more than 32K bytes, and would also cause offset - mismatches if a program access private structures (AsciiSinkP.h). - - -#1776 6 July 1998 - -Corrected problem when moving the cursor over a non-printing character, - i.e. ^Q ^X -Does not allow anymore scrolling of the text width Ctrl+Z if the text has - only one line, or only one line of text. -Several changes in the TextWidget. I did not gratuitously break binary - compatability. Source compatability is only granted to programs that - do not access private structures. This is required because there are - several changes in the behaviour of the TextWidget, and if a program - becomes non compilable, it is because it will not work properly with - the changes in the text widget (please read bellow for a explanation) -Better cursor navigation when moving line-up or line-down over a tab: - cursor - | - v - spaces | |#| | | |text - tab | |text - Move one line down: - before: - tab |# |text - now: - tab | |#ext -There were several problems in the Text.c:_XawTextReplace(), when deleting - a character and the cursor (shoud be) moved to the previous line. This - problem was corrected. -The text code was doing too much redrawing! When typping text, it would - redraw all the current line at each character typped, and also redraw the - entire window till the bottom. Now it only redraws the minimum necessary - (and makes a minimum of requests for the Xserver, when clearing areas), - most of these problems were related to Text.c:_XawTextReplace() (rewritten - from scratch), Text.c:_BuildLineTable() (mostly rewritten) and - Text.c:DisplayText() (mostly rewritten). -Now, when selecting text, with: button1-down, button1-move, the window will - be scrolled automatically, if the mouse is moved to the top or bottom of - the text window, making it easier to extend selections. -Added a set-keyboard-focus translation to the text code, and in the - default translation, it is called when pressing the left mouse button over - a text widget (so that the mouse does not need to be over the text window - when typping) - -These are the changes to Xaw that made it not fully source compatable (I'm -open to comments, to make it source compatable, but as I said above, if -a program does not compile anymore, it is because it is not granted it will -work properly): -scrollMode set to WhenNeeded is not supported anymore. I spent several - hours fighting side-effects caused when a scrollbar is created or destroyed - 'on demand', and have (after tired of long debug sessions) choosed that - it is not required (it saves a lot of potencial unespected conditions - being found by a user). I changed the 'type' of the scroll mode to Boolean, - so, to have a scrollbar, is enough to say: *Text.scrollVertical: True. - Since the type now is Boolean, Xt will print warning messages when the - scroll is set to 'Always', 'Never' or 'WhenNeeded' -automatic resize is nonsense since the text does automatic horizontal - scrolling. IMHO, to be useful, automatic resize should also shrink the - text window when needed, anyway, it's not required anymore - -Comments: -auto-fill mode does not work properly (never did) -wrap-mode set to line may not work properly -wrap-mode set to word does not work properly always (never did) -the multiply should be setable to a variable value; the default value - is 4, i.e. Ctrl+U <text+action> -I will work on the itens listed above, and I'm also planning: -one level undo, for text actions -C style indentation and 'jumping' the cursor to show matching '(', '[' - and '{' -other things that I don't remember now :) - - --- XMU -- -Moved the code clipping code I have put in Text.c in my previous patch to - Xmu/Clip.c. There was a bug in the code I have put in Text.c (this is what - I get by cutting and pasting code under a #if 0 :(), but it was corrected. - The code in the new file 'Clip.c' is very useful for creating clipiing lists - and thus, avoiding too much server requests, or code for the same - functionality (poorly) repeteated in several places around the libary. This - code is now heavily used by the TextWidget. - - --- XEDIT -- -Removed a XDefineCursor in xedit.c:main(). There are several ways to specify - a cursor for a program (most times inherited from the wm decoration window), - so, it is better to let the user choose one. -Before starting the main loop, now xedit sets the keyboard focus to the - text window if a file was loaded, or to the prompt for a file name if - none was especified in the command line (do not use the new xedit without - the new Xaw library, or you will not be able to change the keyboard focus). -Updated the Scrollbar configurations in Xedit.ad - - -#1788 12 July 1998 - --- TextWidget -- - + Corrected problem whem moving the cursor over a non-printing character - + Now, does not allow scroll with ^Z when there is only one line of text - + Automatic resize was removed, it is not required with automatic horizontal - scroll, but I will look for programs that rely on it; the only program - affected (that I know) is xmh, because it popups dialogs of a small size, - and expects that the text widget (with a warning message) do a geometry - request. - + Scroll mode set to "WhenNeeded" was removed. It generates several unespected - conditions when editing text, and the new feature of automatic scrolling - the text widget while typping is more useful. - + Removed a leak in TextAction.c:AutoFill(), generated by the code - text.ptr = (char *)XtMalloc(sizeof(wchar_t) * 2); - that memory was never released, but the fix was simple, since the amount - of memory requested is fixed. - + Several optimizations in the redisplay of the text. - + Now, wrap mode set to word or line is expected to work, while typping text. - + AutoFill will only break lines in word boundaries now. - + Added a set-keyboard-focus action to TextAction.c, so that when pressing - the left button over a text widget, it will receive the keyboard focus. - This behaviour is the default, but can be disabled, with something like: - *Text.translations: #override\n<Btn1Down>: select-start()\n - in your .Xdefaults. - + Corrected several cases that would left the text widget showing incorrect - data. All the problems should have been fixed, but in case you find one, - a quick fix is: - *Text.backgroundPixmap: black?foreground=<some-color> - because it does not try to optimize the redrawing when using a background - pixmap, and thus, avoid several possible problems. - - --- XAW -- - + I had added a XawStackAlloc definition to "Private.h", to avoid a XtMalloc - request for every character typped in TextAction.c:InsertChar(), but - when syncing with 3.9Aj, saw that the file "XawAlloc.h" is no longer - required. Please, remove XawAlloc.h from 3.9Aj. - - --- XMU -- - + Added the file Clip.c, with clipping code, that, now is being used by - the text widget, but can be used by other widgets. - --- xedit -- - + Removed a XDefineCursor from xedit.c:main() - + I have added a XtSetKeyboardFocus in xedit.c:main(), but comented it - because it would make xedit unusable with previous versions of Xaw, - or with the Xaw replacements (Xaw3d, Xaw95 ...) - -Comments: - I wrote a lot of code to work properly with italic fonts in the text widget, -that code made the cursor do not erase portions of the text while moving the -it, but it was failing at some places that would need that the TextWidget, -and not only the {Ascii,Multi}SinkObject had access to the fonts, so I -choosed to left it to the future (and keep the sources simple, by now). -The text widget is useable with italic fonts, but fonts with: - f->per_char[<char> - f->min_char_or_byte2].rbearing - > f->per_char[<char> - f->min_char_or_byte2].width -or - f->per_char[<char> - f->min_char_or_byte2].lbearing < 0 -will not allways be displayed correctly. - - I haved also added a xedit configuration file to this mail. - - -#1842 27 July 1998 - -Fixed problem with the default macro for type conversion, where it was - possible to the code tell the wrong size of a string, since it was - returning the string size with 'strlen' but making the copy with strcpy. -Complete ansification of Xaw (and Xmu). -Corrected some problems caused due to an alteration in the text code, to - make the cursor always visible when the wrap mode is 'line' or 'word'. -Text.c:VJump() was made a bit smarter and a problem that would cause it - to jump incorrectly was also corrected so that now the jumping should be - very smooth. -Corrected problem that would cause a coredump due to the - Text.c:_XawTextReplace() deferencing a NULL pointer. Now ctx->text.lt.info - is initialized when the text widget is created, solving this problem. -All the variables with name 'new' and 'class' where renamed to 'cnew' and - 'cclass'. This allows even building Xaw with 'gcc -x c++'. -Variables shadowing other variables or functions where also renamed. -Static functions were changed to use wide parameters, where applicable. -(Almost) every time a StringTo<Type> converter is installed in the class - initialization of a widget, the code also installs a <Type>ToString converter - since now editres seens to work better. -Complete reestilization of the indentation. See the files Template*.{c,h}. -Corrected problem with the 'virtual' function Layout of the Form widget. That - function requires 4 parameters, but the Viewport widget (a Form subclass) was - calling that function with only 3 parameters; the ansification flagred that - error. -TextTr.c was modified to have only one string. I believe that that weird - thing was due to the inheritance of compatability with some very old and - probably buggy ld. -Xaw is expected to be binary compatable with R6.3; there are some - preprocessor macros that keeps binary compatability, and unless the gains - of breaking binary compatability show worth enough (and people think) it - is good that code would be made default, otherwise it will be forgotten. -I have also added a XFree86 copyright notice to Text.c, since there is - a very large amount of work in that file (and it is not yet ready). ---------------------- - --------- Xmu -------- -Complete ansification of Xmu. -Rework of EditresCom.c to allow editres working correctly. It was also - added a new feature, that allows editres finding some extra child widgets, - i.e. widgets that aren't a child of a subclass of composite and aren't in - the popup list. This modification is not enough, since it does not find - child widgets that don't a XtRWidget resource in the parent widget. -Rework of ShapeWidg.c, so that it will give the correct feeling to the - ellipse shape, and inversion of the oval, if shape is oval and - height > width. To see these changes, run a program with: - <prog> -xrm '*shapeStyle: ellipse' - and/or - <prog> -xrm '*shapeStyle: oval' -Revision of DrRndRect.c to make the widget looks 'more correct' when using: - <prog> -xrm '*shapeStyle: roundedRectangle' ---------------------- - ------- editres ------ -Added small patch to bug in handler.c so that editres will correctly now. ---------------------- - -------- xedit ------- -Changed the resources file, to avoid a problem when resizing xedit to a - very small size and than restoring it's size. Probably the culprit is the - Paned widget, but the new resource file is at least a good workaround for - the problem. -The resource file was also modified so that the default xedit size will - give a 80x25 rows/columns when using the default font. ---------------------- - --------- xgc -------- -Small patch to clear correctly the status text window, when pressing the - 'Clear window' button. Note that this patch showed a bug in - Xaw/{Ascii,Multi}Src.c; only apply this patch with the latest Xaw, or - be sure that Xaw/{Ascii,Multi}Src.c:*SetValues() has something like: - if (old_src->ascii_src.ascii_length != src->ascii_src.ascii_length) - src->ascii_src.piece_size = src->ascii_src.ascii_length + 1; - instead of: - if (old_src->ascii_src.ascii_length != src->ascii_src.ascii_length) - src->ascii_src.piece_size = src->ascii_src.ascii_length; - or it will enter a infinite XtMalloc(0) loop :( -also fixed a possible buffer overflow while searching the source of the - bug described above. ---------------------- - -#1945, 31 Aug 1998 - --- XAW -- - + Corrected bug in Viewport.c:ComputeLayout(), that would put the scrollbar - in the incorrect position, if w->viewport.useright == True - + Corrected bug in Converters.c:_XawCvtCARD32ToString(), so that now it - will correctly format the converted value. - + Corrected problem in {Ascii,Multi}Src.c:Search(), that would cause a - incorrect offset to be returned, if the searched text (or a substring of - it) were in a 'Piece' boundary. - + Some small patches to other sections of the code, to reduce the number - of warnings generated by gcc, when using more restrictive warning options. - --- XMU -- - + Corrected a problem in Atoms.c:GetAtomName(), to return a NULL pointer, - instead of a const if the given atom is 0. - + Corrected a typo in Xmu.h - + Several 'ansification' patches, to get function definitions and avoid - unecessary definitions. - - -#2028, 2033, 7 Oct 1998 - --- Xaw -- -Added a delete translation to the text widget, that deletes the current - selection if any, else the backwards char. -Corrected bug that would not update correctly the screen if page-up or - page-down was pressed while there was an selection. -Added a ^Q<any-char> translation to the text widget, to be able to insert - any char in the text. -Changed TextAction.c:Move() to set ctx->text.showposition, so that even - if the cursor did not change the position, it will become visible. -Corrected problem with the 'form-paragraph' translation, so that the - text will be always correclty shown. -Modified the automatic scrolling of the text to one line at a time, to - make it easier to see what is being selected. -Added a 'hack' to be able to type ^U<any-numeric-sequence> to be able - set the multiply of the text widget. Since it is a hack (besides seens - to work very well) it can be disabled with -DNO_NUMERIC_HACK -Corrected a nasty bug in Text.c:CvtStringToScrollMode(); XtConvertAndStore - can't be called from a type converter! -added UNDO/REDO to the text widget. Please try it, I think it is very nice. - Undo is enabled by the new resource 'enableUndo', and, by default is - triggered with 'Ctrl+_'. - --- editres -- -Resubmitting a patch to editres/handler.c, to make editres work properly. - --- xedit -- -NOTE that with this patch, xedit probably will not work with Xaw3d, neXtaw... - this surelly can be fixed, or in the xedit side or the *Xaw* side, but - the patch seens to be necessary. -Changed the defaults file to be more user friendly and previsible. - Added some 'Emacs like' binding translations. -Added file completion in the filename prompt. This is a very nice - feature, but I'm not sure if the code is portable to all the XFree86 - supported platforms (surely it will not work 'as is' with OS/2). - - -#2083 18 Oct 1998 - --- XAW -- -Changed the functions {Ascii,Multi}Sink.c:CharWidth and PaintText, to - improve speed, and avoid too much recalculations. On normal files, it - becames about 5:1 faster, but can go up to 20:1 when editting files with - very large lines. Besides this speed improvement, I believe it can - surely be made faster (based on comparition with some popular X editors). -Changed the way the AsciiSink prints characters with value bigger than - 126 decimal. Now it prints DEL as ^?, and the other characters as \XXX - where 'X' is an octal digit. The MultiSink widget was unchanged in this - respect, i.e. when calling xedit with something like: - xedit -xrm '*international: true' -Converted all calls to strncpy, in AsciiSrc.c to memcpy, so that the (ascii) - text widget will work properly with data containing nulls. -Added a experimental 'Xaw Scan Type' XawstAlphaNumeric, that shoud make - edition of C (or any other language) easier in xedit (i.e. the text widget). - It can be tested with Ctrl-Left and Ctrl-Right, by now. -Changed the TextWidget to handle text lines that would result in more than - 32767 pixels. Besides the text widget is not meant to be used in the - edition of binary files, this change allows it. -Changed Text.c:TextScroll() to be smarter when calculating the offset of - the line table on scroll up. -Added a nice feature, to show the matching '(', '[' or '{', when a ')', - ']' or '}' is typped. -Changed TextAction.c:FormParagraph() to generate only one undo/redo step. - --- xedit -- -Changed the defaults file to enable backups and made the backup suffix - the character '~'. -Replaced all instances of sprintf by XmuSnprintf. -Changed xedit to set the label when saving a file also, to reflect what - is being edited correctly. -Corrected a bug in the new action 'file-completion', to replace correctly - the home directory, and keep correctly whatever was after the '~'. This - isn't the correct place to this code (xedit/commands.c), since there are - several other file name prompt windows in Xaw, but since it is required - another window to show the possible matches, I'll study a better way to - implement it. -Added a 'hints' feature to xedit. Instead of a 'dead' - "Use Control-S and Control-R to Search." label, now it allows the label - string being changed at user settable intervals. - - -#2205 10 Nov 1998 - --- xaw -- - + Fixed some 16 bit overflows in AsciiSink.c and some cases where it would draw - past the end of the text window (a no-op), the overflows were not a - problem, but could left the text window with incorrect data. - + Moved the undo/redo code to TextSrc.c, and some code/data from - {Ascii,Multi}Src.c to TextSrc.c. The callback now is called when the - source is changed, or becames unchanged due to an undo/redo. Also - changed the Scan procedure to be a bit faster. - + The asciiTextWidget will now accept a source or sink object being set at - creation time. - + Fixed the 'struct XawDisplayList' being redefined when compiling Xaw under - SunOS. - + Several changes to the SimpleMenuWidget to make the geometry management - work correctly when adding/removing/changing menu entries at run-time. - + Added a 'kill-ring' feature to the TextWidget. The behaviour is identical - to Emacs. Pressing C-K repeteadely will merge the lines being killed, so - that a C-Y latter will paste all the killed lines. - + Added the enough glue code (and as backwards compatible as possible) to - allow the *src object be shared between several TextWidgets. My initial idea - was to make the TextWidget be able to have more than one source, but, to - be backwards compatible, I did the reverse (the source can have more than - one TextWidget). - + Fixed a automatic wrap bug (TextWidget) that could eat non white space - characters (my previous patch to this problem was completely wrong). - --- xedit -- - + Added a split-window feature to xedit. To keep xedit simple, it only allows - two windows at the same time: or subdivides in the vertical or horizontal. - + Added more some key-bindings, that should do the same as Emacs. - -#2291 5 Dec 1998 - --- Xaw (only changes to the 'text' code) -- - + Changed the default 'piece size' from BUFSIZ to the value returned by - the getpagesize() function (or keep BUFSIZ if that value is smaller). - + Added a case sensitive option to the search popup. This is a 'hack' by - now, but should not cause trouble to anybody. - + Fixed a bug inserted when changing the code for the search, the only side - effect I saw was that the jumping cursor to show the matching '(', '[' or '{' - stopped working in my last patch. - + Moved back my change to the function XawTextSetSource. The 'correct' function - is _XawTextSetSource. This is only to make sure old code should compile - cleanly. - + Added line and column number calculation code (and a callback to tell when - that information changed) to the TextWidget. This was not an easy task, - because I tried to optimize as much as possible the code, and do relative - calculations, instead of scanning the entire file to count the number of - lines (there are several special cases, when removing/inserting text). - + Added the selection type XawselectAlphaNumeric. This adds one step in - the sequence word-line-all when doing multiclick in the text. - + Fixed some bugs in the 'kill ring' feature added in the last patch. Now - it is expected to never fail. - + Corrected the indentation of TextP.h, and changed more some fields. The - internal data of the TextWidget changed a lot, so it is not expected that - program code read directly the private data, at the price of requiring the - correct library version. - + Fixed a small bug in the undo code, that would 'think' the file was unchanged - in the incorrect position in the undo buffer. - + Changed the default key bindings for delete/kill word functions to use the - alpha numeric versions (this is better for coding, and more compatible with - other text editors). - --- xedit -- - + Changed the labelWindow, to show the current line number (but it is also - possible to show the current column number, offset or file size). - + Fixed bug when saving the *scratch* buffer with a new name. - + The 'changedBitmap' is now correctly displayed on all the windows showing a - changed file. - + Small changes to the xedit man page. - - - -#2371 8 Jan 1999 - ---- Xaw --- - + More some changes to AsciiSrc.c:Scan(). This improves a bit the speed when - scanning text. - + Added sanity checking for AsciiSrc.c:Search(), to avoid the risk of - deferecing a null pointer (or reading memory out of the text piece) if the - searched text happens to be larger than a "piece size". - + Fixed bug when trying to optimize line number calculation, due to a typo, - while meaning XawTextWrapNever I wrote XawTextWrapLine. - + Fixed a problem shown by xclipboard, when setting the "string" resource - of the text source, the sink object was keeping the insertPosition in the - old text contents, and then, when showing the cursor, it was incorrectly - 'erasing' the old cursor position. - + Fixed problem in XawTextReplace, that would not update correctly all the - TextWidget's sharing the same source. - + Added a kill ring list to the text code. This works like the emacs feature, - but, unlike emacs, it is not required to press C-Y before M-Y, to start - looping through the kill ring list. To use it, just press M-Y repeteadly, - and all the text that was killed will be inserted, one at a time, so that - you can choose one. Note that the text inserted from the kill ring list - will also enter in the undo list. - + Changed the Move{Backward,Forward}Paragraph actions to make the cursor always - stop in a blank line. This makes only one step moving from a paragragh to - another, instead of two. - + Added code to check for overflows in the C-U<number> sequence. - + Changed the FormParagraph action to keep the cursor at the correct position. - + Changed the default translations in TextTr.c to get a more emacs like - behaviour with the kill ring list. - ---- xedit --- - + Added a few more resource settings to the Xedit-sample file. - + Added some sanity checkings when trying to save a file. This avoids the - case of saving a file with the name of a directory (but moving the directoy - to other name before). A possible case is: have a directory named 'dir', - saves a file as 'dir', but before saving, renames the directory as 'dir~'. - + Allows saving a file that xedit thinks is not changed (the file may have - changed on the disk, but the user really wants to rewrite it). - + Corrected several bugs in the FileCompletion action, and added a new - feature, that is to complete the partial names, when there is a '/' or '.' - after the cursor position. - - -#2479 19 Feb 1999 - --- Xaw -- - + Fixed bug in the line numbering code, when removing lines before the - top position. - + Changed code to form regions to always show the cursor after formatting the - text. - --- xedit -- - + Added code to keep the file mode, after saving. This is useful when editting - scripts, so that the executable flag will not be lost after edition. - - -#2544 12 Mar 1999 - --- Xaw -- - Mostly changes to add support to latin-* languages in the text code, when not - using the international resource. -Actions.c: - + Corrected some bugs in the boolean expression parser. The old version would - not parse correclty parenthized expressions, and was giving equal precedence - to AND, OR and XOR (what is incorrect). -AsciiSink.c: - + Changed to display characters in the range 0x32-0x7e and 0xa0-0xff literally. - The other characters are represented as control-codes, as before. This is - better for edition of Latin-* text files. -AsciiText.c: - + Changed the code, so that even if the *international resource is not set, - _XawImRegister and _XawImUnregister are called for the text widget. This is - useful for latin-* locales, that use one byte wide characters, and makes Xaw - more compatable with modern toolkits, like qt and gtk. -List.c: - + Added code to work correctly with a background pixmap. - + Added a smarter code for list window size calculation, that is used if the - number of columns is especified to be zero (automatic). -MultiSink.c: - + Fixed a core-dump problem caused when passing a null pointer to - XwcTextEscapement. -Text.c: - + Removed the resource adjustScrollbars. This resource was not used, and its - funcionality was not finished, and by now, it is not required. -TextAction.c: - + Does not call XLookpupString in InsertChar any more, but the new function - _XawLookupString (in XawIm.c) to work correclty with composed characters. -XawIm.c: - + Added the private function _XawLookupString, that just calls XmbLookupString, - or in case of any initialization error, XLookupString. - --- xedit -- - The most important change is the addition of a new functionality, that allows - the user to navigate the file system, in a 'ls -a' like list widget, if - the file is not a directory it is loaded for edition, else, the list widget - is rebuilt with the contents of the selected directory. To test it, just - type: C-X d, or tab when 'finding a file'. To exit the dirwindow without - loading a file, type C-G or Escape. -Xedit-sample: - + Added more some resource entries, to use the new 'emacs dired like' feature. -Xedit.ad: - + Same as for Xedit-sample, but more important resource settings. -commands.c: - + The code now checks if the filename is a directory and calls the dirwindow - code in that case, when trying to open a file. - + Changed the function IsDir from static to global, to use it from xedit.c. - + Most of the code for the filesystem navigation window was added to this file. -util.c: - + Fixed a bug that was causing core dump due to passing garbage to XtGetValues - as the widget address. - + Added the code for managing the dirwindow and its relationship with the - text windows to this file. -xedit.c: - + Added the code for creation the dirwindow to this file. - - -#2638 2 Apr 1999 --- Xaw -- - + Added xpm pixmaps support to the library. This time, it is required to - compile Xaw with -DUSE_XPM. - + If the xpm image has a mask, the widget will be automatically reshaped - to the pixmap mask. - + Changed the kill_ring code in TextAction.c to always end in a text block - of zero length, this way, it is easier to know when one traversed the - entire kill ring (it may be interesting to forget the undo sequences - while traversing the kill ring list). - --- xedit -- - + Changed the Xedit.ad file to avoid overriding a translation that would - make the search window do not respond to WM_DELETE_WINODW messages. - + Fixed a core dump condition in the new code for listing files and - directories, due to deferencing a null pointer. - - -#2662 10 Apr 1999 --- Xaw -- - + Corrected the problems gererated in my last patch. I was compiling with - -DUSE_XPM defined, and did'nt realize that the patch would not compile - without it. Just ifdef'ed again the code to avoid warnings or dead code. - --- xedit -- - + Added a ispell interface to xedit. Sorry for not documenting enough about it - the man page, but here is a small explanation of the new funcionality: - Replace: Replace's the selected word. - All (right side of Replace button): Replaces all occurrences of the selected - word. - Undo: When this button is sensitive, allow undoing the last replace, - this is useful when doing a incorrect "Replace All" action. - Ignore: Ignore this word, and continues spell checking. - All (right side of Ignore button): Ignore any further ocurrences of the - selected word. - Add: Add's the selected word to the user's private dictionary. - Suspend: Go back to text edition, but does not kill the ispell process, - This is useful if you have a really big dictionary or slow - machine. I believe it is mostly useful to keep in memory - the words selected to be ignored, but that you don't want to - add to your private dictionary. - Close: Kill the ispell process, and go back to text edition. - Automatically saves the user's private dictionary. - When pressing the Add button, the word in the "Mispelled word:" field is - added to the user private dictionary (normally ~/.ispell_*). When pressing - the Replace button, the text in the "Replace with:" field is used. - If no word is selected in the "Suggestions:" field, this mean that the - selected word was not found in the ispell dictionary. - - -#2716 24 Apr 1999 --- Xaw -- - + Minor changes to AsciiSrc.c to try to get more speed in the FindPiece - function. Xedit may become very slow when editing files bigger than 1M, - and I'm studing ways to get more speed in the Scan and FindPiece functions. - The FindPosition function in *Sink.c also can consume a lot of cpu time, - and may need some rework. - + Added submenus support to the SimpleMenuWidget. This is something essencial - to a widget toolkit. Just plugged in the code of a menu widget I wrote some - time ago. Xedit uses submenus now. To use it, set the resource menuName - of a SmeBSBObject to the name of the submenu. - + Added code for text justification to the TextWidget. To use the justification, - set the resources autoFill, leftColumn and rightColumn. If autoFill is set, - and leftColumn is smaller than rightColumn, an alternate code will be - used in the form-paragrpah action, normally triggered with M-Q. The values - for justification can be left, right, center and full. - + Added a overwrite mode to the TextWidget. The default translation is to - press the Insert key, that will toggle the overwrite mode. - + Made the TextWidget understand negative values for the multiply. This is - like the emacs feature, to indent text to the left. To set a negative value - to the multiply, just start the numeric sequence with a '-'. Like C-U -1. - + The code for justification added several new functions to TextAction.c. - Functions to tabify, untabify, get block boundaries, verify if a line - is completely blank, and strip excess of spaces. - + Added a indent action to the TextWidget. The default translation, only - used by xedit, is C-X Tab, did this way, to make it fully compatable with - emacs, but other translations can be used. The multiply value is used to - calculate the amount of spaces to move to the left or right. - + Corrected a very hard to find (and reproduce) bug in the undo code, that - would easily cause core dumps. The problem would happen when starting - editing exactly in the moment the redo automatically reverts to undo. - + Added translations for toggling the overwriting mode with the Insert key, - and to paste the selection with S-Insert. - --- xedit -- - + Corrected all the known bugs in the ispell code (including a memory leak). - And added a compile time limit of 16 levels of undo, for all the actions, - that include Add, Ignore and Replace. 16 levels is more than enough, but - more than this can be done with the undo action, but then, only to revert - replaced text, to remove added words that the undo code forgot, it is - required to edit the personal dictionary file. The code now also understands - root/affix combinations, that ispell normally returns when using the - -m option. The ispell code should now also work when using the international - resource of the edit window. - + Added a new file, called options.c, that holds the code for the editMenu, - to enabling setting the wrap, autoFill, justify, leftColumn, rightColumn, - verticalScroll and horizontalScroll resources of the current edit window. - - -#2746 1 May 1999 --- Xaw -- - + Reverted most of the #if NeedWidePrototypes definitions, only two - functions were kept, to not break some of the new features, but these - functions aren't called by any program: XawTextSinkDisplayText and - XawTextSinkClearToBackground. - + Rewrite of the functions *Sink.c:FindPosition() and FindDistance() to - try to get more speed. - + Reworked the function Text.c:_BuildLineTable, to correct some strange - code, and to avoid unecessary recalculations. - + Made negative values of the multiply work for all the actions, not only - for negative indentations. This makes the TextWidget behaviour more - compatable with emacs. - + Optimization of the new code for text justification, to avoid a call to - malloc on every char typped, when undo is enabled. - + Reorganized the offsets of the fields of the TextWidget, trying to make - xxgdb work again with the new Xaw code, but, unfortunately, the SimpleWidget - (a subclass of the TextWidget) have growed by 4 bytes (a XawDisplayList*) - added at the end of the structure, and xxgdb incorrectly reads the text.sink - field. Old xxgdb binaries dont work with the current code. - + Removed several XtIsSubclass checks in TextSrc.c. While those checks could - be useful for debugging, the functions are called so frequently that it is - a big waste of time for running programs. - --- xedit -- - + Added/Changed some translations to work correctly when CapsLock and/or NumLock - are pressed. - + Fixed some bugs in the ispell code. The biggest bug was that it was not - correctly saving the Add'ed words in the user dictionary when pressing the - Close button. - - -#2764 8 May 1999 --- Xaw -- - + Create two new private functions, to replace internally the public interfaces. - These two functions are XawTextSinkClearToBackground and - XawTextSinkDisplayText. These two functions use wide prototypes, and - are required to support text lines that are represented by more than - 32767 pixels. This was done to make sure that the public interfaces remain - 100% backwards compatible. - + Fixed the deferencing of a null pointer when the source object of a text - widget is not initialized. I noticed this problem when recompiling xcolorsel. - + Added a new type converter to Converters.c, that is Short -> String. - + Added a new compile time option, called NO_BIN_COMPAT_HACK. If defined, - it will break some programs that access private data. It only works with - programs that access private data structures, but don't subclassify any - widget. It fixed old binaries of chimera1, the Offix editor and xxgdb. - There is no way to fix old binaries of chimera2, xcolorsel and xmh, these - programs need to be recompiled. I would like to know of other programs that - became broken, to try to fix them with the NO_BIN_COMPAT_HACK option. - + Fixed some compile warnings, with shadowed, uninitialized and unused - variables. - + Fixed a inifite loop problem that could happen when the text widget window - was resized to a very small width. - + Reverted some of the text widget translations, to avoid conflicts when - setting the input focus and programs that do so. - --- xedit -- - + Fixed a problem in the file-completion code, that would insert the partial - match in the incorrect position, if the cursor was not at the end of the - string. - + Changed ispell.c to use only one hash for ignored and added words. Also - changed the IspellSend function to not call itself recursively, what is - a big problem when spell checking big files that are correct or have too - few errors. - --- editres -- - + Changed Editres.ad in several places, to try to avoid resource setting - problems. Most of them were changed to address more directly the resource, - and avoid confusion. Also, added some new resource settings to configure - the code I added to widgets.c. - + Changed widgets.c to make sure the resource setting dialog is allways - entirely in the screen, and if it does not fit, scrollbars will be created. - - -#2793 15 May 1999 --- Xaw -- - + Changed AsciiSrc.c:LoadPieces to load the file incrementally, instead of - allocating a big buffer. - + Added several new functions to DisplayList.c. Almost all gc and painting - related functions were mapped to displayList functions. There are - several optimizations that can yet be done to the displayList code, and - I'm working on it. That code is clearly not finished yet, but is stable. - Also, changed some functions to be more exigent with it's parameters, - because it is better to receive a warning message than see the program - core dumping. The functions are documented in Xaw.man. - + Corrected a problem in the SimpleMenu code, to make the sub menus popup - more 'visually' correct, when popping up in the left side. - + Added a optimization in Text.c, to avoid unnecessarily recalculating - the line and column number when scrolling text. A big speed up should - be seen when scrolling large files. - + Modified all code that expected TAB_SIZE to be equal to 8, to read the - TextSink resources, and work properly with whatever value the program - had set to the tab stops. - + Fixed a very bad bug in the form-paragraph function. It was very hard - to find because I was looking at the wrong places. If the text was - allready formatted, or did not need formatting, the code was not - reenabling undo, making the undo/redo behaviour imprevisible. - --- xedit -- - + Added Xedit-color.ad file, to show some of the new features of Xaw. - Tried to keep it simple, but since it uses gradients, maybe it should - better be called Xedit-TrueColor. The better way to see the functionality - of this file is (if you don't have it already) add to your .Xdefaults: -#ifdef COLOR -*customization: -color -#endif - and make sure xrdb parses it. - + Changed a bit Xedit.ad, to work properly when Caps Lock is pressed. - + Several changes to ispell.c. It should run very faster now, because - the code keeps information about words already ignored or correct - in the xedit side, instead of asking ispell every time. Added also - a terseMode resource, and made the interface ask for user interaction - allways ispell does not say the word is completely correct; the - terseMode resource makes ispell itself decide what words are correct - or not. - --- editres -- - + Small patch to Edit-col.ad, to use a default text cursor color of 'Azure' - in text fields, instead of the default 'black'. - - -#2811 22 May 1999 --- Xaw -- - + Removed the 'NO_NUMERIC_HACK' preprocessor definition, and renamed the - 'doing_numeric_hack' field of the text widget to 'numeric'. - + Changed the code to always create the horizontal scrollbar, if requested. - + Small changes to TextPop.c, to automatically scroll horizontally the - text window when the text found in a search/replace action is not visible. - + Added a optimization when editting large files, to rebuild the line table - if the region containing the text being added/replaced overlaps the lt.top - field of the text widget. - + Changed the undo code to also merge text typed when overwrite mode is - active. The new behaviour is not like emacs (that generates a undo step - for every character), but uses less memory, making only one undo/redo step. - --- xedit -- - + Added a new file, hook.c that is intended to be used for the addition of - some new features to xedit, like auto indentation of program files. The - first feature added is the 'autoReplace' resource, described in the xedit - man page. - + Corrected a bug in ispell.c, that would make the code alocate lots of - memory unnecessarily, due to an uninitialized variable. Thanks to David - Dawes that found the bug. The bug was not in 3.9Pn, but the solution in - the later release was not completely correct. - - -#2834 29 May 1999 --- Xaw -- - + Added a ChangeSensitive function to Command.c, to avoid it creating an - incorrect insensitive border if the button is set. This is a side effect of - the function XawCommandToggle I added some time ago. The solution for the - problem is not very elegant, since it copies almost verbatim the code from - Simple.c, but it works as expected. - + Moved some calls to _XawTextSetLineAndColumnNumber in Text.c to other places, - to make sure it is safe to change the text when the positionCallback is - called (like what is done by the new xedit file hook.c). - + Another optimization was added to the undo/redo code. Now it also merge - erases, needing yet less memory for undo, and this way, generating less - undo/redo steps. - + Removed the default translation to call the toggle-overwrite action from - TextTr.c. Only the xedit edit windows calls this translation now, instead of - every text widget. - --- xedit -- - + Changed the auto replace feature to be a bit more easier to use. The new - behaviour is almost identical, but if the user types some text, and it is - auto replaced, only one undo step is enough to correct it. Example: - 1) user types 'nto.' - 2) text is auto replaced by 'not.' - 3) user call undo action - 4) text is converted to 'nto.' - It should be a very infrequent problem, but makes the xedit behaviour - identical to a "well known text editor", from where this feature was borrowed. - + Added a 'Check' button to the ispell interface. This button allows - checking the word in the text field. This feature was borrowed from the spell - checking interface of the Netscape html editor. - + The ispell checking interface now also asks for user interaction if there are - two identical words togheter. - + Added a status bar to the ispell interface, to give feedback to the user - about what is happening. - + Added some new resources, to let easier customization of the ispell status - bar strings. The new resources are documented in xedit.man. - -#2849 5 Jun 1999 --- Xaw -- - + Add a OLDXAW define, to enable building a binary compatible version with - 6.1, and changes to the Imakefile, to try to keep the changes only in Xaw. - I hope it can be removed in the future. - + Add a XawVendor define, with the value "XFree86". If this is not a good - idea, please correct it an let me know. - + Add a XawVersion define. The value for the new xaw is 7000L, and for the - compatible one is 6700L (same comments as for the XawVendor define). - + Bug fixes to the undo/redo code, and code to merge erases generated by - ^H and ^D. Also, if the cursor is moved, it stops merging the text typped - in the undo buffer. - + Bug fixes to the Form widget geometry management code, to work correctly - when child widgets are removed or added at run time. - + Xaw now links with XPM by default, and the config files where changed to - enable newly compiled programs to do so. - + Added 16 pad bytes to every widget, to try to avoid binary compatability - problems in the future. - + Added a displayList resource to the Tree Widget. - + Added the functions XawTextGetSink and XawTextLastPosition, to enable a - public way to get the <TextWidget>->text.sink and <TextWidget>->text.lastPos, - since these are the most commonly private fields the programs access in - the text widget. - + Added the actions 'capitalize-word', 'donwcase-word' and 'upcase-word' to - TextAction.c. The bindings are the same as of Emacs (and the way it works). - + Corrected some problems with negative values of the <TextWidget>->text.mult. - --- xedit -- - + Correct possible problem in the file hook.c, when interpreting the auto - replace list, that is, it was not checking the buffer size when finding - the '\' character. - + Updates for the configuration files. - + Added a 'Look' button the the ispell interface, that will by default run - "/usr/bin/bin/egrep -i '^<VALUE OF TEXT FIELD>.*$' /usr/share/dict/words" - and put up to 256 returned words in the ispell list. The behavior is - almost identical to the one in the terminal interface of ispell. - + The ispell interface works correctly with aspell now. - + Added some resources and a popup to enable changing the dictionaries in - run time. - + Added a toggle button to the ispell interface to allow changing the terse - mode in run-time. - + Added a 'Uncap' button, to allow adding an uncapitalized word to the - private dictionary, and enough code to do the capitalization checks inside - of xedit (to enable undo actions). - + Added a "text mode" and a "html mode". The html mode is not yet completely - finished. It must work correctly with some html specific things like - converting internally "á" to "รก" and so on. I'm planning also, at - least a nroff mode too. - + The wordChars resource is set by dictionary now. - To set the word chars for the br dictionary, write something like: - *ispell*options.dictionaries.br.wordChars: <VALUE> - or - *ispell*br.wordChars: <VALUE> - or simply - *ispell*wordChars: <VALUE> - + The skipLines resource is set only for the text mode now. - To set it, write something like: - *ispell*options.formats.text.skipLines: <VALUE> - or - *ispell*options*text.skipLines: <VALUE> - or simply - *ispell*skipLines: <VALUE> - - -#2877 12 Jun 1999 --- Xaw -- - + Note: The compatible old version of Xaw is not fully compatible. There - a few things that are not equal to the standard old Xaw. These are: - + The cursor code in the *Sink.c files is not identical, and the - field insertCursorOn (type Pixmap) was replaced by the field - cursor_position (type XawTextPosition). - + There are some changes in TextP.h, that include changes to the fields: - options -> left_margin - unrealize_callbacks -> pad1 - updateFrom -> update - updateTo -> pad2 - numranges -> pad3 - maxranges -> from_left - copy_area_offsets -> pad4 - + The text window does not increase its size when text is typed past - the end of the window, instead of it, it is automatically scrolled - horizontally, but this may not be enough to every usage of this - feature; xmh uses that code to make the text widget auto resize - warning popup widgets. I dont know what is better in this case, - if re-enabling the auto resize code of changing xmh to use label - widgets in the warning popups. - It is very unlikely that exists code that will have problems with these - changes in the fields of the TextWidget and the *SinkObject, but if any - code that has trouble with it exists, I will promptly make the required - changes to correct it (at least for the compatible version of Xaw). - + Several optimizations for the code to redisplay the text window in the - TextWidget. Including fixes for bugs in the XawTextScroll function, and - making it really works. Previous versions of the library have made this - function ineffective, because it was always redrawing everything when - the text window was scrolled. The optimizations should be more noticeable - when running some application that uses the TextWidget (like xedit) on - slow hardware, or over slow connections. - + Corrections for the FormWidget geometry management code, to work correctly - in the old version of Xaw, and some bug fixes for the new Xaw. Also added - 8 pad bytes to the FormConstraintsPart structure, to have space for extra - information on possible future optimizations for the FormWidget geometry - management code. - + Some fixes for the OLDXAW define in the SimpleMenuWidget code, that was - not hiding some of the new fields introduced in the new Xaw code. - + Some corrections for the code handling the necessity of having scrollbars - in the text widget, and bug fixes for cases where the scrollbars were not - being updated when the text window contents were changed. - + Re-enabled code to also process GraphicsExpose events in the text code. It - became required due to the optimizations in the text redisplay code. - + Several fixes in TextAction.c, for symbols that were not being included - in the compatible version of the library, and for symbols that were being - included with no need. - + Fixes for the form-paragraph action, in the old Xaw code. - --- xedit -- - + Some bug fixes for the ispell undo code, to avoid deferencing a NULL pointer - in the function IspellCheckUndo. - + Added code to handle correctly &<VALUE>; in ispell.c, when using the html - mode. - + Fixed some compile time warnings, and updated the code for setting the - scrollbars in options.c. - - -#2899 19 Jun 1999 --- Xaw -- - + Changed all the 'char pad[<number>]' to 'XtPointer pad[<number>/4]' to - make sure 64 bit machines will not have binary compatibility problems before - the 32 bit ones. - + Added a new static function 'WritePiecesToFile' to AsciiSrc.c, to avoid - allocation of temporary memory. This is useful when editing very large - files (I have some people using xedit on text files that can have up to - 80,000 lines). - + Added more some optimizations to AsciiSrc.c:Scan, to try to get the maximum - speed of this function. - + Added a new function to the displayList's, called 'image', that will tile - pixmaps on the widget. It is documented in Xaw.man. - + Several widget classes did not have a 'extension' field. I added it to them. - The first usage of this field that I'm planning is to extend the *Src and - *Sink objects to handle formatted text, and add text properties, like - foreground, background, font and so on. - + Fixed a bug in MultiSrc.c, that was crashing Xaw after the first character - was typed, or if text was removed. - + Some minor changes to SimpleMenu.c, to work properly with very large menus. - + Fixed some bugs that were caused by my previous optimizations of the text - redisplay code. - + Bug fixes and optimizations to TextPop.c, there were some cases that the - function XawTextDisableRediplay was being called, but XawTextEnableRedisplay - was not being called later because of a error condition (the error - conditions were only warnings). -+ Updates to Xaw.man. - --- xedit -- - + Fixed a memory leak when freeing list widget strings. The code was not - releasing the memory of the string at offset 0, in the list. - + Changed the way the ispell undo code handles the terse mode, to not need - to make the toggle button insensitive. - + Updated xedit.man. - - -#2932 26 Jun 1999 --- Xaw -- - + Added a new tip resource to the SimpleWidget. This may also be seen as - a test of the binary compatibility issues. Besides of being a new feature, - it cannot cause problems with old binaries, because the code is only - called if the tip resource is set to any SimpleWidget subclass. If the - tip resource is set or reset, the SimpleWidget code will call one of the - two new functions XawTipEnable or XawTipDisable. - + Added 3 new files: Tip.c, Tip.h and TipP.h. These files are used only - by the new Xaw. - + Updates to Xaw.man, including a problem with accented characters on SunOS. - --- xedit -- - + Added resource configurations to show the new tip code in Xaw. - + Some fixes to ispell.c, to make it more previsible/user-friendly. - + Fixes xedit.man to avoid problems with accented characters. - - -#2964 3 Jul 1999 --- Xaw -- - + Fix for problem found in the search/replace dialog when using splitted - windows in xedit. - + Added initialization for the display_list field of the Tree widget. - --- xedit -- - + Fixed some problems in the undo code of ispell interface. - - -#2999 10 Jul 1999 --- Xaw -- - + Added code to check the return value of XAllocColor and XAllocNamedColor in - Pixmap.c. - + Reverted back some code, and did a carefull review of the code in TextPop.c - to avoid the possibility of calling XawTextDisableRedisplay, and not calling - XawTextEnableRedisplay later (due to errors or end of file reached). - + Added code to TextSrc.c, to use two static variables, that represent a new - line in 8 bits and wchar_t, to avoid allocating memory in the undo buffers - to store only a new line. - + Small change in the behavior of the Tip widget, to not unmap the tip window - when the cursor is moved. - --- Xmu -- - + Fixed a bug and a typo in the XmuToupper macro. - --- xedit -- - + Small update to the Xedit-sample file. - + Fixed a bug in the ispell code that checks for repeated words. - - -#3122 14 Aug 1999 --- Xaw -- - + Mixed fonts and colors can be used in the text widget (currently only - in the Ascii*Object). - + Added the XawTextAnchor, XawTextEntity, XawTextProperty, XawTextPropertyList, - XawTextPaintStruct, XawTextPaintList and XawTextPropertyInfo structures to - Xaw, to be used in the new text code. - + Added the functions XawTextSourceAddAnchor, XawTextSourceNextAnchor, - XawTextSourcePrevAnchor, XawTextSourceRemoveAnchor and - XawTextSinkConvertPropertyList, that probably should not be used outside of - Xaw. - + Added the functions XawTextSourceFindAnchor, XawTextSourceAnchorAndEntity, - XawTextSourceAddEntity, XawTextSourceClearEntities and XawTextSinkGetProperty - that are probably the ones that should be most used in programs. - + Italic fonts should be always displayed correctly. - + The text widget cursor is now displayed with a gc with the Xor function, to - avoid unnecessary computation/redrawing. - + Most changes were done in the {Ascii,Text}{Src,Sink}Object, but the text - widget was also a bit modified for things like automatically changing the - number of lines in the line table when needed. - --- Xmu -- - + Fixed bug in Clip.c, that could cause a SEGV. - --- xedit -- - + Added the file c-mode.c, to interface with the new Xaw text code, and show - what can be done when interfacing that new code. - + Added the necessary code to util.c and options.c to let the user select - if he or she wants to use the color/font syntax highlight in the C/C++ mode. - - -# 26 Aug 1999 - ---Xaw-- - + Added initial support for two new XawTextEntity attributes, that enable - hidden text and replaced text. This initial support was the minimum - required to get the new html mode in xedit working. A lot of code does - math with text positions, and became broken with the addition of these - two attributes. Since only code that knows about these two attributes - should use it, it is only a question to fix the remaining code in - Xaw/xedit. - + Bug fixes to AsciiSink.c:PreparePaint to work correctly with tabs and - the two new entity attributes. - + Disabled the translation "c<Key>q,<Key>Tab" of the search/replace popup. - This action is already done by the translation "<Ctrl>Q,<Key>" that I added - to TextTr.c. Disabling that translation has the advantage that now it - is possible to replace ^Ms by nothing. - + Added some new functions to TextSink.c. The functions XawTextSinkCopyProperty, - XawTextSinkAddProperty and XawTextSinkCombineProperty are candidates to being - public in the future, but, there is a problem when using - XawTextSinkCombineProperty, that requires the AsciiSinkObject having the - correct XawTextPropertyList, what can generate a "chicken and egg" like - problem (I did some hacks in xedit to have the first html-mode version - working). - + Added several new flags to the XawTextProperty attributes, and a new field, - called xlfd_mask. - + Some bug fixes to XawTextSourceReplace and to the code to manage the - XawTextAnchor e XawTextEntity structures. The form-paragraph, called with - M-Q does several consecutive text changes, and was very useful to find bugs. - + The flag XAW_TENTF_REPLACE is a hack for XawTextSourceAddEntity currently. - The function XawTextSourceAddEntity will probably change its parameters - to receive a structure pointer, or a pointer parameter. - ---xedit-- - + Fixed some bugs in c-mode.c. Again, this patch fixes all the bugs I have - found. - + Added the html-mode.c file to xedit. The html-mode is in its initial steps. - It is not usable yet, but should not core-dump or leak memory (unless you - try to edit the file, then, I cannot say what will happen). The html mode - should be used only to see a rendered version of the file, but, there are - several markups not implemented. To be usable, it must yet understand at - least <ul>, <ol>, <li>, <dl>, <dd>, <hr> and the table tags. - - - -$XFree86: xc/lib/Xaw/Changelog,v 3.31 1999/08/15 13:00:31 dawes Exp $ |