aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/Xaw/Changelog
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/Xaw/Changelog')
-rw-r--r--nx-X11/lib/Xaw/Changelog1370
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 "&aacute;" 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 $