Commit Graph

76 Commits

Author SHA1 Message Date
Manolo Gouy
f451946d42 Homogenize use of re-encoding and transcoding (in favor of the latter).
Also, makes clear that the code is ready to deal with any encoding, not just fixed-length ones.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8040 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-15 17:38:39 +00:00
Manolo Gouy
d2cbe9abf7 Removed compilation warning.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8032 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-15 10:04:36 +00:00
Manolo Gouy
85a03a76c9 Fix STR #2348. Files encoded with UTF-8 or CP1252 are accepted. Any non-UTF-8-encoded
data is interpreted according to CP1252 and transcoded to UTF-8. By default, a warning
message is displayed when the input file was transcoded. This default behavior can be 
modified by changing a function pointer. A flag has been added to the Fl_Text_Buffer object
that informs the caller if the input file was transcoded to UTF-8.
The Fl_Text_Buffer.cxx file contains some preliminary code that could be used in the future
to input other encodings provided they are fixed-length (e.g., all ISO-8859-* character sets,
UTF-16). This code is not compiled at this point.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8004 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-10 19:24:28 +00:00
Albrecht Schlosser
ee3e8180b4 Fixed Windows text file line endings, as discussed in STR 2348 and
fltk.development. Side effect: All Windows text files written are
in Windows, aka DOS format (with CR/LF line endings), no matter what
format they had when read. This is compatible with FLTK 1.1.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7979 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-08 14:47:11 +00:00
Matthias Melcher
0db080e762 Restoring the non-binary read for MSWindows files. Still, I think this is harmful because now we read in ASCII and write in binary format...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7969 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-07 16:00:16 +00:00
Matthias Melcher
6e7ed9c46a Ooops, Fl_Text_Buffer::insertfile must read in binary format, or it will screw up line endings! (Actually, this could be debated, but by reading and writing in binary format, the file integrity would remain)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7968 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-06 23:25:52 +00:00
Matthias Melcher
804ef7d4f9 Fixed case when reading empty file
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7967 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-06 23:23:44 +00:00
Matthias Melcher
f18e8f4377 Fixed Fl_Text_Editor::insert_file to load all text in a single chung to avoid UTF8 confusion and missmatched gaps.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7966 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-06 18:44:33 +00:00
Matthias Melcher
1bac8a0cca Fixed crashes when Fl_Text_* detects illegal UTF 8 sequences. Widgets will not do any further processing but just jump over the character. Screen representation depends largely on whatever the underlying OS does with those sequences, but I feel that this is out of the scope of this library. (STR 2348)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7965 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-06 18:22:22 +00:00
Albrecht Schlosser
e5fc1560b0 Fixed Doxygen comments, typos, and a few indenting issues.
Part 1, more to come ...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7936 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-02 00:43:07 +00:00
Matthias Melcher
e454f97acc Fixed Copyright to 2010.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7903 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-28 21:06:39 +00:00
Matthias Melcher
c6e46fed45 Preliminary implementation of Tab characters insisde Fl_Text-*. We still need to test wrapping, etc.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7895 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-27 20:13:10 +00:00
Matthias Melcher
6fbc3f3556 Added smarter Macro to check for utf-8 violations in Fl_Text_*
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7810 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-08 14:19:47 +00:00
Matthias Melcher
accf34f276 Implemented search backwards for utf-8. Tested on MSWindows - OK. Tested on Linux (Ubuntu) - K.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7808 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-07 20:13:50 +00:00
Matthias Melcher
f099311481 Better alignment testing
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7807 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-06 23:58:57 +00:00
Matthias Melcher
213318ccb3 Removed some unused stuff and duplicates.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7806 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-06 23:16:07 +00:00
Matthias Melcher
8ae745f5b3 UTF8 Text Display and Editor: added tons of tests for utf8 alignment, fixed a bunch of methods that did not understand utf8. Still lots of places to visit.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7800 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-06 14:29:12 +00:00
Matthias Melcher
0fb4feb11a Working on correct line wrapping in Fl_Text_Display: starting to replace all byte based charracter calculations with utf8 functions. Current version wraps, but scroll bars are wrong. Non-wrapping text display starts to work better.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7797 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-06 00:29:58 +00:00
Matthias Melcher
38dcb5a463 Starting to rework Fl_Text_Display from scratch to make wrapping work correctly. Fixed a few issues that made wrapping crash. Using ASCII range only with fixed character sizes should still wrap as expected?!
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7794 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-04 21:53:56 +00:00
Matthias Melcher
cac40a9b02 STR 2158: partially solved. This commit is huge, I admit. I recoded most of Fl_Text_Buffer and large chunks of Fl_Text_Display to make it UTF-8 safe. Rendering of all left-to-right scripts works well on OS X for all tested fonts. International input works AFAIK. Copy and paste of UTF-8 data works. ----> what's not working yet though is line wrapping. Also, text search for internationsl characters is not working yet.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7792 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-03 22:01:43 +00:00
Matthias Melcher
291faee430 Fixed a bunch of warnings from gcc 4.4.5 . Most of these are parenthesis missing to make the precedence of && over || obvious. Ah well, why not...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7765 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-10-28 18:02:20 +00:00
Matthias Melcher
463416d0c7 Remove OS X Xcode compiler warnings.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7726 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-10-22 15:15:23 +00:00
Matthias Melcher
32716d6b1e Updated the Fluid IDE support for the current source file structure. Changed the Fl_Tree rendering code around a bit to make the tree more like MSWindows on Windows and more like Apple on Apple machines. I hope you guys like it. I also moved the function to load Fl_Preferences into an Fl_Tree into the Fl_Tree class where it belongs.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7672 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-07-10 09:44:45 +00:00
engelsman
a10e58a690 added implementations of fl_wcwidth_() and fl_wcwidth() to src/fl_utf.c
these supercede the old fl_wcwidth() code in src/xutf8/fl_wcwidth.c.
also added corresponding declarations to FL/fl_utf.c, and updated
src/Fl_Text_Buffer.c to enable the call to fl_wcwidth()



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7551 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-20 21:43:31 +00:00
engelsman
9545e033bb Fl_Text_Buffer/Display fixes for UTF-8 / STR-2158 (part 1)
fixes to handle incorrect counting of UTF-8 characters by checking
for complete UTF-8 encodings in char* rather than char by char.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7527 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-18 14:33:33 +00:00
Matthias Melcher
29317e7b2d Marked some more issues with Fl_Text_...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7462 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-06 23:00:56 +00:00
Matthias Melcher
61cf49ddfc Another update to Fl_Text_Buffer. This is by no means perfect, but at least it currently does not crash (I am so easily satisfied :-P).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7449 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-05 22:18:14 +00:00
Matthias Melcher
07a4509a63 Validated utf-8 safety of Fl_Text_Selection.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7443 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-05 21:10:40 +00:00
Matthias Melcher
814da7f392 Little fix that will keep Fl_Text_Display from crashing on German umlauts. This is by no means a fix.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7440 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-05 21:02:48 +00:00
Matthias Melcher
fca1c022e7 Holy Gucamole! NEdit was designed with 'C' style strings in mind. Until that is that someone had the great idea to allow <nul> as a valid character in the text editor. The developers jumped through quite some hoops to allow that without rewriting the core. Well, actually they did: they added a parameter to pretty much every internal call that conatined the null-replacement-character. Anyway, since we only handle 'C' strings, I remove all related code.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7437 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-05 20:22:43 +00:00
Matthias Melcher
d5175c0b88 Adde /todo tags to all function which I will remove as soon as I am sure that they are entirely Unicode safe.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7433 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-05 20:01:10 +00:00
Matthias Melcher
024c4b995b I humbly apologize for this commit, but I just could not bear it anymore. I moved all Doxygen comments from Fl_Text_Buffer.cxx into the header (I kept searching back and forth for the comments) and then did the unthinkable: I reformatted Fl_Text_Buffer.cxx! OMG. It is actually somewhat *readable* now. I shouldn't have done it! It's a mess ;-). Fl_Text_Buffer was modified many times to do things it was never designed to do. And looking at 'svn b;ame', I remember that I tried to quick-fix UTF-8 on top of that. Anyway, I'll dig into this now. I want 1.3.0 out of the door (end of ramble).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7432 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-05 19:52:52 +00:00
Fabien Costantini
9eaf693d4a Fl_Text_Display C code simple refactoring:
+ Replaced uninitialized C parameters archaisms, by on the fly C++ local var. decl.
  Not only it will be more optimized by modern c++ compilers,
  code is easier to read, maintain and debug and is shorter.
  Most local variables are now explicitly intialized when declared.
+ Replaced some non const vars by const equivalents when required.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6825 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-07-04 05:18:29 +00:00
Fabien Costantini
9182195f17 UTF8: Fl_Text_Display and related:
+ Even more const constraints added to Fl_Text_Selection and Fl_Text_Buffer methods.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6820 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-07-04 00:06:32 +00:00
Fabien Costantini
e982ba24a9 UTF8: Fl_Text_Display and related:
+ Added more const constraints to Fl_Text_Selection and Fl_Text_Buffer methods.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6819 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-07-03 23:54:34 +00:00
Fabien Costantini
d4e85cef93 UTF8: Fl_Text_Display and related:
+ Made char * text() const., this method should be further checked for UTF8 compat.
  + Added a fixme comment to remember we must check for the potential incorrect
  assumption that that a buffer size equals the string length + 1.
  + Correct a protected attrib. typo as we  don't need to care about ABI compat. for now.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6818 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-07-03 23:32:47 +00:00
Matthias Melcher
d3206f01ec More Fl_Input keyboard fixes / OS X transparency for RGBA data / some utf8 reorganisation
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6765 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-04-15 08:35:28 +00:00
Fabien Costantini
15489bda1b Major documentation update including: now html doc API is sorted, navigation problems/side effects fixed, html tags replaced by proper doxygen commands, parameters command switched from a to p. Includes a pdf update.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6716 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-03-24 01:40:44 +00:00
Matthias Melcher
c15fc3e71a Added flexible gap size for text buffer (STR #2046)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6618 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-01-01 21:54:10 +00:00
Matthias Melcher
5251b64d57 Changed Copyright in 'src' directory
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6616 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-01-01 21:28:26 +00:00
Fabien Costantini
ffad932289 + Cairo branch merged after successful testing on Mac OS X 10.5.4, Linux Ubuntu 8.04,Windows XPSP2.
This integration is minimum as discussed, in particular it does not feature any fltk cairo drawing substitution
  as in fltk2.
  Still it provides all the fundations to go further even in next 1.4 ... 
  By default *no* cairo features are implemented nor linked, it can only be activated by --enable-cairo
  whose default is false.
  Please visit the README.cairo for complete description.

+ fixed UTF8 compilation pb on linux ubuntu

+ minor comments fixes on the fly



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6350 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-25 18:26:33 +00:00
Albrecht Schlosser
fb343ffdf6 More doxygen updates for Fl_Text_Buffer. Also changed some argument
names from "char *s" to "char *text" to be in sync with the docs.

Caution: If there will be name conflicts with Fl_Text_buffer::text(),
then this can at least be fixed easier, because searching for "text"
is better than for "s". I remember that some argument names x,y,w,h
have been changed to uppercase, because of conflicts with x(), etc.
with ... valgrind (?) or maybe some compilers ?

I did this deliberately, because changing the headers and doxygen docs
to "s" instead of "text" appeared to be not feasible.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6326 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-21 01:46:27 +00:00
Fabien Costantini
87c649e153 Corrected duplicated paragraph in previous commit.
Much prefer the \a syntax rather than the \p syntax as it has the same look that the parameters shown in the function declaration (italic).
Should be added to the todo list how to.
Completed all other parameters applying the \a modification in this file. 


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6323 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-21 00:09:12 +00:00
Albrecht Schlosser
b804e1f3ab Fixed some typos and links and added a section about document structure
and some more to development.dox.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6320 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-20 22:46:24 +00:00
Matthias Melcher
e8f467b9e3 Updating fl_utf8.h references. Fixing copyright date in .fl files.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6311 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-19 17:40:20 +00:00
Fabien Costantini
e8478458bf Doxygen documentation: Fixed most important warnings for the Fl_Widget, Fl_Window, Fl_Valuator classes that should be now a 100% documented. For the rest I drastically reduced the undocumented APIs, but many others (less important) remains.
It looks and feels pretty good now :-)


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6299 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-18 19:09:34 +00:00
Fabien Costantini
b8955a9ced Doxygen documentation WP11 Done!
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6255 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-15 16:39:05 +00:00
Matthias Melcher
b6bde2e456 Merging the UTF8 patch, consisting of O'ksi'd s original 1.1.6 patch and additions by Ian. PLEASE BE AWARE that the patch in its current incarnation is a regression in many aspects and further work is required before we can announce Unicode support.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6212 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-10 23:56:49 +00:00
Matthias Melcher
329f5de330 Fixed Fl_Text_Display redrawing for focus changes for primary selection and highlight
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@6011 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-01-04 20:32:37 +00:00
Matthias Melcher
abd221aa56 Increased gap size in Fl_Text_Buffer to make the buffer suitable for much longer text, which seems to be a common use.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5181 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2006-06-06 21:12:45 +00:00