diff --git a/ChangeLog.txt b/ChangeLog.txt index 4f5f16ae0a..6d27a43403 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -7,6 +7,45 @@ Entries may not always be in chronological/commit order. See license at the end of file. */ +2017-09-12 15:13 UTC Viktor Szakats (vszakats users.noreply.github.com) + * bin/check.hb + * config/*/*.mk + * contrib/gtwvg/wvgwing.c + * contrib/hbcomm/comm.prg + * contrib/hbfbird/tfirebrd.prg + * contrib/hbfimage/fi_wrp.c + * contrib/hbformat/hbfmtcls.prg + * contrib/hbformat/utils/hbformat.prg + * contrib/hbhttpd/core.prg + * contrib/hbnetio/utils/hbnetio/hbnetio.prg + * contrib/hbnetio/utils/hbnetio/netiomgm.hb + * contrib/hbsqlit3/hdbc.prg + * contrib/hbwin/win_bmp.c + * contrib/xhb/htmutil.prg + * contrib/xhb/thtm.prg + * contrib/xhb/xhbarr.c + * contrib/xhb/xhbtedit.prg + * ChangeLog.txt + * debian/control + * debian/copyright + * doc/*.txt + * LICENSE.txt + * package/harbour.spec + * README.md + * src/compiler/hbusage.c + * src/pp/hbpp.c + * src/rtl/memoedit.prg + * src/rtl/teditor.prg + * src/rtl/tget.prg + * src/rtl/version.c + * utils/hbi18n/hbi18n.prg + * utils/hbmk2/hbmk2.prg + * utils/hbmk2/po/hbmk2.hu.po + * utils/hbtest/hbtest.prg + * sync with 3.4 fork (no change in functionality) + CC3 -> CC4 license, copyright banners, some strings, minor + code changes, doc folder, TOFIX -> FIXME + 2017-09-12 10:19 UTC Viktor Szakats (vszakats users.noreply.github.com) * contrib/gtwvg/class.prg * contrib/gtwvg/menubar.prg @@ -5838,7 +5877,7 @@ * moved -fn[:[l|u]|-] -fd[:[l|u]|-] -fp[:] and -fs[-] switches parsing to core compiler library. Now these switches are also works with compiler library linked with HBMK2. - ; TOFIX: HBMK2 ignores -fn/-fd switches and allocates temporary names + ; FIXME: HBMK2 ignores -fn/-fd switches and allocates temporary names which are not compatible with names used later by harbour compiler when above switches are activated. HBMK2 should parse parameters and update SET FILECASE / SET DIRCASE before @@ -9121,7 +9160,7 @@ ! fixed to precisely verify against multiple expected class names previously a custom class named f.e. 'LIST' was accepted in some places for LISTBOX - ! fixed TOFIX where CP/encoding dependent string was + ! fixed FIXME where CP/encoding dependent string was used to determine whether a menu item is separator throughout the lifetime of the menu. @@ -12227,7 +12266,7 @@ will now be ignored instead of deleting the item * utils/hbmk2/hbmk2.prg - * TOFIX added to a help text + * FIXME added to a help text 2013-04-01 13:36 UTC+0200 Viktor Szakats (vszakats.net/harbour) * .gitignore @@ -12242,7 +12281,7 @@ + more automatic doctoring of translated strings * utils/hbmk2/hbmk2.prg - * added TOFIX for an ambiguous translatable string + * added FIXME for an ambiguous translatable string 2013-04-01 04:21 UTC+0200 Viktor Szakats (vszakats.net/harbour) * utils/hbmk2/hbmk2.prg @@ -12913,7 +12952,7 @@ 2013-03-25 21:41 UTC+0100 Viktor Szakats (vszakats.net/harbour) + tests/achoice3.prg - + added another AChoice() TOFIX demonstration. + + added another AChoice() FIXME demonstration. Sent by Tony ! code adatped to Harbour stds, some formatting for hbformat misses. @@ -13115,7 +13154,7 @@ * contrib/hbtip/client.prg * contrib/hbtip/ftpcli.prg * use F_ERROR - + added TOFIX for unhandled FOpen()/FCreate() error + + added FIXME for unhandled FOpen()/FCreate() error 2013-03-21 12:20 UTC+0100 Viktor Szakats (vszakats.net/harbour) * src/pp/hbpp.c @@ -13577,11 +13616,11 @@ 2013-03-15 04:18 UTC+0100 Viktor Szakats (vszakats.net/harbour) + tests/fwdref.prg - + added TOFIX and demonstration for this bug by Kevin Carmody: + + added FIXME and demonstration for this bug by Kevin Carmody: https://sourceforge.net/tracker/?func=detail&aid=1635310&group_id=681&atid=100681 + tests/sortbug.prg - + added TOFIX and demonstration for this bug: + + added FIXME and demonstration for this bug: https://sourceforge.net/tracker/?func=detail&aid=2096950&group_id=681&atid=100681 2013-03-15 03:24 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -14268,7 +14307,7 @@ needed to be able to use Harbour, since it works without 'install' as is. INCOMPATIBLE in the unlikely case you used this. - (it also clears a related hbmk2 bug and a TOFIX in code) + (it also clears a related hbmk2 bug and a FIXME in code) * utils/hbmk2/hbmk2.prg + documented another -vcshead= feature @@ -15066,7 +15105,7 @@ * use short form #pragmas (the ones identical to Harbour options) ; NOTE: Except -l which works reversed compared - to cmdline -l option. TOFIX? (I tried and failed) + to cmdline -l option. FIXME? (I tried and failed) * src/rtl/hbi18n2.prg * contrib/xhb/tfile.prg @@ -15275,7 +15314,7 @@ * date formatting * ChangeLog - * closed two recent TOFIXes + * closed two recent FIXMEs 2013-02-21 17:52 UTC+0100 Viktor Szakats (vszakats.net/harbour) * utils/hbmk2/hbmk2.hbp @@ -15362,7 +15401,7 @@ ! FuncNameEncode() "fixed" to be in sync with how Harbour compiler (incorrectly) encodes function names. This fixes: 'hbmk2 1.prg' - ; TOFIX: ? hb_compGenCFunc() in src/compiler to encode + ; FIXME: ? hb_compGenCFunc() in src/compiler to encode the first character of a function if it's a digit. [FINE AS IT IS] @@ -15372,7 +15411,7 @@ was silently ignored since who-knows-when (pointer to int type received HB_BOOL value). Now it will accept a numeric value in sync with '-n' option. [INCOMPATIBLE] - ; TOFIX: It still doesn't work. Nor does existing '#pragma -n2' + ; FIXME: It still doesn't work. Nor does existing '#pragma -n2' Pbly it's too late to set this while compiling, or it needs deeper modifications. Or delete if unfixable. @@ -15957,7 +15996,7 @@ * contrib/hbtip/popcli.prg + QUESTION to method that returns three different types (of those two are indicating different errors) - + TOFIX added to code that can RTE (due to similarly + + FIXME added to code that can RTE (due to similarly messy solution which returns multiple type in different cases, which is obviously not accounted for when calling it.) @@ -16325,7 +16364,7 @@ * src/codepage/cpsr646.c * src/codepage/cpsr646c.c * separated collations from the two correct SR CP modules - ; TOFIX: ? This page suggests that there are latin digraphs + ; FIXME: ? This page suggests that there are latin digraphs that should be specially sorted: https://en.wikipedia.org/wiki/Serbo-Croatian#Writing_systems @@ -16348,7 +16387,7 @@ https://en.wikipedia.org/wiki/Ukrainian_language#Alphabet [REVERTED] - ; TOFIX: RUISO: + ; FIXME: RUISO: This has 4 extra character pairs compared to all other Russian CP modules: UPPER: @@ -16450,7 +16489,7 @@ Original contributor name kept but without a copyright, after all, it's two strings. - ; TOFIX: Here's the list of "CP" modules, that use irregular, but + ; FIXME: Here's the list of "CP" modules, that use irregular, but not 'raw' collations, that can't be explained with compatibility or other obvious reasons: SRWIN - is this 'sr_cyr' or 'sr_lat', or else? [CYRILLIC] [PATCHED] @@ -16788,7 +16827,7 @@ 2013-01-26 15:03 UTC+0100 Viktor Szakats (vszakats.net/harbour) * src/rdd/usrrdd/rdds/arrayrdd.prg ! more formatting fix to latest patch - ; TOFIX: hbformat to uppercase 'NIL' and to add + ; FIXME: hbformat to uppercase 'NIL' and to add space between '!' operator and next token. Also to format #define code (old) and to not break with inline comments inside continued lines (old). @@ -17322,7 +17361,7 @@ * repeat accept operation if other thread concurently accpeted new connection or some asynchronous network error appeared. - ; TOFIX: basic hbrun functionality is broken and now it is not possible + ; FIXME: basic hbrun functionality is broken and now it is not possible to create scripts starting with line: #!/usr/bin/hbrun which do not have .hb or .prg file name extension @@ -18452,7 +18491,7 @@ * harbour/config/win/xcc.mk * updated RC include paths - ; TOFIX: it's still wrong and hbmk2 cannot be compiled + ; FIXME: it's still wrong and hbmk2 cannot be compiled and xRC fails opening ../../package/harb_win.rc * harbour/contrib/hbwin/hbolesrv.c @@ -18581,7 +18620,7 @@ * contrib/hbct/tests/test.prg ! fixed one expected test result ! fixed one wrong test call - ; TOFIX: + ; FIXME: (first pbly result of different sting algorithm) ! MAIN(136) CharSort( "b1a4a3a2a1", 2, 1 ) Result: "a4a3a2a1b1" @@ -18933,7 +18972,7 @@ * harbour/contrib/hbmysql/tsqlbrw.prg * harbour/contrib/hbodbc/browodbc.prg % eliminated NextKey() calls - ; TOFIX: BrowseODBC() just like dbEdit() ignore setKey() actions + ; FIXME: BrowseODBC() just like dbEdit() ignore setKey() actions If key is pressed during stabilization faze. I think it's implementation problem not intentional decision and it should be fixed - there is nothing worse then application @@ -19559,7 +19598,7 @@ 2012-11-18 13:27 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbodbc/hbodbc.hbx * contrib/hbodbc/odbc.c - - Deleted SQLBINDPARAMETER(). Thus resolving the TOFIX, + - Deleted SQLBINDPARAMETER(). Thus resolving the FIXME, and after reading more about this function, it serves to bind stmt parameter to C memory buffers, where those bindings remain active for the lifetime of the stmt or @@ -19918,11 +19957,11 @@ ! fixed the code to respect manual call to SQLDisconnect() which discards associated statement handles % eliminated repeated calls to extract handles from pointer items - ; TOFIX: add protection against calling SQLConnect() with hDbc handle + ; FIXME: add protection against calling SQLConnect() with hDbc handle which is already in connected state. Possible solutions: - forbid such operation - execute SQLDisconnect() inside SQLConnect() - ; TOFIX: hb_parc() pointer is passed as write buffer inside + ; FIXME: hb_parc() pointer is passed as write buffer inside SQLBindParameter() ; Please make real test. I made this modifications without any real test. I do not have access to any ODBC server here. @@ -22020,7 +22059,7 @@ TRUENAME(). I do not know if it's really necessary but without the code which allocates one byte bigger buffer does not make any sense. - ; TOFIX: this code still uses HB_TCHAR_*() macros + ; FIXME: this code still uses HB_TCHAR_*() macros 2012-11-07 16:55 UTC+0100 Viktor Szakats (vszakats.net/harbour) * config/postinst.hb @@ -22561,7 +22600,7 @@ + harbour/contrib/hbmxml/3rd/minixml/minixml.dif + added diff file created by hbmk2 ../../../../bin/3rdpatch.hb -rediff - ; TOFIX: We have in our repository mxml-set.c v. 426 instead of + ; FIXME: We have in our repository mxml-set.c v. 426 instead of mxml-set.c v. 441 which is inside mxml-2.7.tar.gz. Why? 2012-11-05 12:32 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -23274,7 +23313,7 @@ * tests/gfx.prg * updated to run in script mode. - ; TOFIX: it doesn't draw anything with GTWVT + ; FIXME: it doesn't draw anything with GTWVT * tests/gfx.prg * tests/gtwin.prg @@ -23464,7 +23503,7 @@ locally in package folder. * ChangeLog - * updated status for past TODO/TOFIX items + * updated status for past TODO/FIXME items 2012-10-24 02:03 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbcairo/hbcairo.hbp @@ -23854,7 +23893,7 @@ + added links regarding sending in unicode * extras/httpsrv/uhttpd.prg - ! fixed a TOFIX + ! fixed a FIXME 2012-10-21 15:42 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbnf/aredit.prg @@ -23891,7 +23930,7 @@ 2012-10-21 12:18 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbformat/hbfmtcls.prg - + added one known and one new minor TOFIX + + added one known and one new minor FIXME + Array2File() changed to strip extra EOLs from the end of file (sometimes and extra EOL is generated by hbformat). @@ -23943,7 +23982,7 @@ (patched hbformat still fails around line 3900) * contrib/xhb/htmutil.prg - + TOFIX added for unicode incompatible Greek CP conversion + + FIXME added for unicode incompatible Greek CP conversion (from what to what it's not marked) 2012-10-19 15:18 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -24172,7 +24211,7 @@ 2012-10-18 02:19 UTC+0200 Viktor Szakats (vszakats.net/harbour) * src/rtl/gtdos/gtdos.c - * TOFIX added about duplicate macros with same functionality + * FIXME added about duplicate macros with same functionality but different name (POKE_BYTE/HB_POKE_BYTE) [DONE] ! fixed C++ comment ! fixed indenting/formatting in few places @@ -24701,7 +24740,7 @@ + added support for the now default HB_GTI_COMPATBUFFER == .F. mode. % exit char string is now internally converted to a keycode list. * use HB_UCHAR (was char) for buffer cells. - * TOFIX changed for support for input file encoding and + * FIXME changed for support for input file encoding and translating this to unicode when putting to screen. * contrib/hbnf/dfile.prg @@ -24760,7 +24799,7 @@ 2012-10-15 15:21 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbformat/hbfmtcls.prg - * new TOFIX: + * new FIXME: "end class" is converted to "end CLASS" instead of "END CLASS" * contrib/gtwvg/3state.prg @@ -24864,7 +24903,7 @@ 2012-10-15 12:20 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbformat/hbfmtcls.prg - * new TOFIX: + * new FIXME: ".T.," / ".F.," gets wrongly corrected to ".T. ," / ".F. ," * contrib/hbct/tests/atrepl.prg @@ -25191,7 +25230,7 @@ * contrib/hbnf/savearr.prg + do not use PRIVATE var. - * TOFIX added. This code only works with CENTURY OFF + * FIXME added. This code only works with CENTURY OFF and the on-disk format is dependent on _SET_DATEFORMAT. * contrib/hbnf/woy.prg @@ -25218,7 +25257,7 @@ + SET CENTURY ON where dates are displayed + hb_langSelect( "en" ) where output has language dependent strings - + TOFIX added where NF code is incompatible with CENTURY ON (and RTEs) + + FIXME added where NF code is incompatible with CENTURY ON (and RTEs) + use LOCAL instead of MEMVAR * contrib/gtwvg/hbgtwvg.ch @@ -25275,7 +25314,7 @@ * contrib/hbnf/pegs.prg * changed GETs to Get():New() ! replaced GetList memvar with a LOCAL - ; TOFIX?: It seems to offer wrong move suggestions in some cases + ; FIXME?: It seems to offer wrong move suggestions in some cases + contrib/hbnf/tests/pegs.prg + added test app for FT_PEGS() @@ -25508,7 +25547,7 @@ 2012-10-12 11:16 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbgd/gdbarcod.prg % AllTrim() removed from around Str( n, 1 ) - * TOFIX: added to gdbarcod.prg in one place where + * FIXME: added to gdbarcod.prg in one place where Str( n, 1 ) is used and the value can be 10. [DONE] * contrib/gtwvg/tests/dyndlgs.prg @@ -25871,7 +25910,7 @@ * contrib/hbgd/tests/tpoly.prg + added #require "hbgd" so they can be run as scripts * deleted platform specific stuff - + added TOFIXes for non-working font settings (not even + + added FIXMEs for non-working font settings (not even before above modifications) ! fixed some examples to save output to file * some mods to make code portable @@ -25938,7 +25977,7 @@ * hbformat, manual fixups * contrib/hbformat/hbfmtcls.prg - * added TOFIX for not recognizing INIT/EXIT PROCEDURE + * added FIXME for not recognizing INIT/EXIT PROCEDURE statements * tests/memtst.prg @@ -26867,7 +26906,7 @@ 2012-10-05 03:01 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbformat/hbfmtcls.prg - + added TOFIX + + added FIXME * INSTALL + added http://sourceforge.net/projects/mingwbuilds/ as @@ -26881,7 +26920,7 @@ 2012-10-05 02:40 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/gtwvg/*.prg * formatted using hbformat, critical manual fixups - ; TOFIX: hbformat breaks code like this: + ; FIXME: hbformat breaks code like this: FUNCTION Hello( /* comment */ ) * contrib/gtwvg/tests/*.prg @@ -27636,7 +27675,7 @@ 2012-10-02 04:07 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbnf/dispc.c - + added TOFIX (needs to be updated for unicode savescreen buffers) + + added FIXME (needs to be updated for unicode savescreen buffers) * contrib/hbnf/menu1.prg ! use inkey.ch constants @@ -27731,7 +27770,7 @@ * src/rtl/tmenuitm.prg * src/rtl/tpopup.prg - + added TOFIXes where drawing chars are used as internal + + added FIXMEs where drawing chars are used as internal flags. This may cause problems if switching CPs while using these objects. @@ -27826,7 +27865,7 @@ ! fixed to compile and build using Cl*pper after recent UTF8 compatibility updates (not tested though) - ; TOFIX: Pad*() function handle 3rd parameter as binary string, + ; FIXME: Pad*() function handle 3rd parameter as binary string, so it doesn't work properly in UTF8 mode. [DONE] 2012-10-01 11:33 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -28209,7 +28248,7 @@ * contrib/hbnf/tbwhile.prg * contrib/hbnf/week.prg * manual formatting (comments mostly) - + added TOFIXes where savescreen() buffers are manipulated + + added FIXMEs where savescreen() buffers are manipulated * contrib/hbnf/tests/ftgete.prg * contrib/hbnf/tests/nftest.prg @@ -28673,7 +28712,7 @@ * contrib/hbnf/madd.prg * contrib/hbnf/xbox.prg % using HB_IS*() functions - + TOFIXes added + + FIXMEs added % minor cleanups/optimizations 2012-09-26 03:40 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -28906,7 +28945,7 @@ * formatting * ChangeLog - * marked TOFIX in '2012-06-17 11:41 UTC+0200' DONE + * marked FIXME in '2012-06-17 11:41 UTC+0200' DONE (fixed in '2012-09-25 13:29 UTC+0200') 2012-09-25 20:41 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -29245,9 +29284,9 @@ It's also good idea to consult/ask questions before making such code rearrangement. Untested. - ; TOFIX: Some more stuff (code) has been added to hbxbp, + ; FIXME: Some more stuff (code) has been added to hbxbp, I didn't deal with those. [SOLVED] - ; TOFIX: Someone please remove the duplicate resources + ; FIXME: Someone please remove the duplicate resources from hbide/resources. Also, please make use of 'svn move' when moving around objects inside the repository tree, otherwise @@ -29843,7 +29882,7 @@ * contrib/hbide/projectwizard.prg ! referring to .hbc files as '.hbc files' not 'Hbc files' - ; TOFIX: this source is a total mess, replicating parts of + ; FIXME: this source is a total mess, replicating parts of hbmk2 options in a rigid and limited, fully incompatible with hbmk2, whilst hbmk2 supports these out of the box. It also contains references to an arbitrary selection of @@ -30221,7 +30260,7 @@ ! commented out unused static functions: rtlnk_libtrans(), rtlnk_filetrans() Looks that this functionality is not longer supported. - TOFIX: re-enable it or remove this code and document that automatic + FIXME: re-enable it or remove this code and document that automatic translation for libraries and files defined in Clipper .lnk files is not longer supported. @@ -31479,8 +31518,8 @@ ! some type corrections in C ! fixed (mingw, msvc) warnings in C code * other minor cleanups - ; TOFIX: try to use GC collected pointers - ; TOFIX: C code allows .prg code to create GPFs, f.e. + ; FIXME: try to use GC collected pointers + ; FIXME: C code allows .prg code to create GPFs, f.e. in 'devicelist[ hb_parni( 2 ) ]' the pointer is not checked for NULL, nor the index is validated to be inside limits. @@ -32132,7 +32171,7 @@ % only pull all codepages and base language modules required for dynamic language modules when user app REQUESTs and HB_LANG_s. - ; TOFIX: HB_LANGMESSAGE() often returns garbage when using + ; FIXME: HB_LANGMESSAGE() often returns garbage when using it from hbrun or other dynamic apps. Changing hb_retc_const() to hb_retc() didn't seem to fix it. @@ -32784,7 +32823,7 @@ ! translated output to English. At the same time removed non-ASCII (accented) chars. - ; TOFIX: extras/hbxlsxml which contains high 8-bit chars with + ; FIXME: extras/hbxlsxml which contains high 8-bit chars with unspecified codepage, which got corrupted in recent changes. [DONE] ; NOTE: Please use 7-bit ASCII chars only in sources and files, @@ -33307,7 +33346,7 @@ * deprecated HB_LEGACY_TYPES_ON build-time option. Use native Harbour types instead. (deprecated using HB_LEGACY_LEVEL4) + added HB_PARAMNO Harbour type to denote parameter number. - ; TOFIX: Use HB_PARAMNO instead of HB_BYTE, HB_USHORT, int, HB_ULONG + ; FIXME: Use HB_PARAMNO instead of HB_BYTE, HB_USHORT, int, HB_ULONG * src/rtl/version.c * deprecated HB_BUILDDATE(). use HB_VERSION( HB_VERSION_BUILD_DATE_STR ) instead @@ -33439,7 +33478,7 @@ * examples/hbapollo/tools.c * examples/hbapollo/use.c ! added 's_' prefix to static varnames - ! one static var got a TOFIX, but probably more should have + ! one static var got a FIXME, but probably more should have * cleaned externs * minor fixes (also to prev) @@ -34942,7 +34981,7 @@ 2012-06-29 19:37 UTC+0200 Viktor Szakats (vszakats.net/harbour) + contrib/hbtinymt/tests/test64.prg ! another missing file. - ; TOFIX: 64-bit supposedly unsigned numbers are returned with signs + ; FIXME: 64-bit supposedly unsigned numbers are returned with signs * contrib/hbtinymt/tests/test32.prg + added #require to make it run as script @@ -35620,7 +35659,7 @@ This means that dynamic module loading from scripts will only work in hbmk2 built with mingw. - ; TOFIX: 'make clean' on contribs doesn't work with mingw, + ; FIXME: 'make clean' on contribs doesn't work with mingw, because harbour dll is deleted before hbmk2 is called, so it cannot be started for cleanup. [DONE] @@ -35638,7 +35677,7 @@ and this can be reverted. In this case only one variable was inherited, so it was easy to do. BTW I was trying to use hb_MailAssemble() from a script which triggered this. - TOFIX: Self contained example (tested on win/mingw): + FIXME: Self contained example (tested on win/mingw): --- hbmk2 test.hb #require "hbtip" PROCEDURE Main() @@ -36339,7 +36378,7 @@ + hbmk2 will act as a hbrun, if renamed to hbrun * contrib/hbqt/qtcore/hbqt_misc.prg - + added two TOFIXes for missing PROTECTED keyword + + added two FIXMEs for missing PROTECTED keyword for two object variables of unknown purpose. Not even HBQT developers know what it is, but without it, HBQT breaks. @@ -36391,7 +36430,7 @@ + TODO for HBQT_ISEQUAL() - __HBQT_PTR() from .hbx ! fixed insane inverse camel casing in hbqt_bindGetHbObjectBYqtObject() - + TOFIX for MT which is completely broken now. + + FIXME for MT which is completely broken now. - deleted '#if 1's. Experiment locally, do not readd them. - deleted code protected by '#if 0'. Experiment locally, do not readd them. + QUESTION for code like: 'if( 1 == 1 )' @@ -37696,7 +37735,7 @@ * contrib/hbqt/tests/demoqt.prg * contrib/hbqt/tests/testbrow.prg ! killed HB_TR_ALWAYS _again_. Do not readd them. - + added TOFIX for .qth information embedded into plugin + + added FIXME for .qth information embedded into plugin % minor opt in .prg code * include/harbour.hbx @@ -38208,7 +38247,7 @@ * contrib/hbqt/qtcore/hbqt.h ! deleted hbqt_par_QString() macro. It was not translating between HVM CP, so it was wrong. - ; TOFIX: HBQSCINTILLA is broken now, because it's still used there. [DONE] + ; FIXME: HBQSCINTILLA is broken now, because it's still used there. [DONE] 2012-06-03 11:16 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtcore/qth/HBQString.qth @@ -39077,7 +39116,7 @@ ! fixed regex used in -head=full to recognize #include directives separated by ';', i.e.: #include "file1.ch" ; #include "file2.ch" ; #include "file3.ch" - ; TOFIX: UTF8 mode on output should not be enabled unconditionally in + ; FIXME: UTF8 mode on output should not be enabled unconditionally in all UNIX builds. There are many *nix installations where UTF8 is not system CP, i.e. older Linux distributions. In fact it's user attribute so each user can use different encoding @@ -39471,8 +39510,8 @@ * contrib/hbblat/blatcls.prg * formatting - ; TOFIX: hb_StrShrink() to work on UTF8 HVM CP [DONE] - ; TOFIX: hbnf [DONE], hbtip [DONE], xhb, gtwvg, tests and docs + ; FIXME: hb_StrShrink() to work on UTF8 HVM CP [DONE] + ; FIXME: hbnf [DONE], hbtip [DONE], xhb, gtwvg, tests and docs for unicode 2012-05-02 12:48 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -39532,7 +39571,7 @@ if the HVM CP is UTF8. Check me. * utils/hbmk2/hbmk2.prg - ! TOFIX removed from two FOR EACH loops, they work on ASCII chars only + ! FIXME removed from two FOR EACH loops, they work on ASCII chars only ! one FOR EACH loop conditionally converted to FOR NEXT to work with all CPs ! one FOR EACH loop converted to FOR NEXT and to work on binary data ! Changed certain function calls to hb_ascii*() prefixed versions @@ -39555,7 +39594,7 @@ * utils/hbmk2/hbmk2.prg + hbmk2 code made compatible with UTF8 HVM CP except where FOR EACH is used on strings, which are all - broken with UTF8 now. Marked these with TOFIX. + broken with UTF8 now. Marked these with FIXME. + strip UTF8 BOM from .hbm/.hbp/.hbc input files + added PROC CLIPINIT (I can't make it work, so commented for now) @@ -39568,8 +39607,8 @@ maybe on *nix I'll retry and moving to UTF8 will be done platform by platform. ; NOTE: I plan to make UTF8 the standard encoding for .hbp/.hbm/.hbc files. [DONE] - ; TOFIX: FOR EACH for UTF8EX CP - ; TOFIX: cmdline arguments via Main() parameters, hb_AParams() + ; FIXME: FOR EACH for UTF8EX CP + ; FIXME: cmdline arguments via Main() parameters, hb_AParams() and hb_cmdLine() on Windows. ; TODO: Add a way to detect maximum bit width of unicode chars, for now I hard-coded 16-bit. [DONE] @@ -39801,7 +39840,7 @@ * contrib/hbqt/qtcore/hbqt.h * object type checking patch from Teo and Francesco. Please test. (with minor changes) - + added TOFIX for missing CP conversion in certain cases. + + added FIXME for missing CP conversion in certain cases. * contrib/hbqt/qtcore/hbqt_misc.prg * implemented destroy patch from Francesco. Please test. @@ -40875,7 +40914,7 @@ ! fixed hb_osDecodeCP() usage * harbour/ChangeLog - * marked last TOFIX as [DONE] + * marked last FIXME as [DONE] 2012-03-28 23:56 UTC+0200 Viktor Szakats (vszakats.net/harbour) * src/rtl/fslink.c @@ -40895,7 +40934,7 @@ ! HB_FLINKREAD()/hb_fsLinkRead() fixed to return information for directories on win. + HB_FLINKREAD()/hb_fsLinkRead() now returns value in core codepage. - TOFIX: It crashes now on *nix, after hours of trying I give up, + FIXME: It crashes now on *nix, after hours of trying I give up, please review the hb_osDecodeCP() call and fix it. [DONE] ; TODO: this leaves only one HB_TCHAR_COPYFROM() macro in this file. [DONE] @@ -41098,7 +41137,7 @@ * harbour/contrib/sddodbc/sddodbc.c * harbour/contrib/sddoci/sddoci.c * removed redundant fieldname conversions - ; I left one TOFIX note in sddfb.c - It's not critical but I'd like + ; I left one FIXME note in sddfb.c - It's not critical but I'd like to ask someone with FB experience to verify it. 2012-03-13 12:55 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) @@ -41640,7 +41679,7 @@ * harbour/contrib/3rd/sqlite3/sqlite3.c ! fixed declaration of 64bit integer constant value in WinCE builds - ; TOFIX: in WInCE builds the following error is generated: + ; FIXME: in WInCE builds the following error is generated: implicit declaration of function 'osUnlockFileEx' and of course such functions does not exists (it's internal SQLITE3 macro) @@ -42075,7 +42114,7 @@ 2012-01-30 14:33 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * harbour/include/harbour.hbx + added HB_FUNC_EXCLUDE HB_MT - TOFIX: it also disabled HB_MTVM() function. It should not happen. [DONE] + FIXME: it also disabled HB_MTVM() function. It should not happen. [DONE] * harbour/include/hbcpage.hbx + added HB_FUNC_EXCLUDE HB_CODEPAGE_BIG5 @@ -42530,7 +42569,7 @@ * contrib/hbrun/hbrun.hbp - deleted unfinished solution for "DSO" builds (having two - TOFIXes for many months). Please supply required extra libs + FIXMEs for many months). Please supply required extra libs ('m' and 'z' in case of hbrun) manually to the build via HB_USER_LDFLAGS, HB_USER_LIBS, until a complete solution is discovered. @@ -42656,7 +42695,7 @@ * harbour/contrib/gtwvg/wvgutils.c * harbour/contrib/gtwvg/wvgwing.c * eliminated HB_TCHAR_*() macros - ; TOFIX: replace hb_parvc() and nCopyAnsiToWideChar() function + ; FIXME: replace hb_parvc() and nCopyAnsiToWideChar() function with valid HB_STR* macros. Function nCopyAnsiToWideChar() should be removed. @@ -42941,7 +42980,7 @@ 2010-12-19 03:28 UTC+0100 Viktor Szakats (vszakats.net/harbour) * src/rdd/usrrdd/rdds/arrayrdd.prg ! formatting and syntax cleanup - + TOFIXes added + + FIXMEs added 2011-12-18 17:03 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * src/rdd/usrrdd/rdds/arrayrdd.prg @@ -44043,7 +44082,7 @@ * minor updates * contrib/hbrun/hbrun.hbp - + added another TOFIX to latest patch, about HB_HAS_ZLIB_LOCAL usage, + + added another FIXME to latest patch, about HB_HAS_ZLIB_LOCAL usage, which has to be eliminated. * ChangeLog @@ -44056,7 +44095,7 @@ * contrib/hbrun/hbrun.hbp * using macro HB_BUILD_DSO to state an linux env with ld DSO linking model thanks to Viktor. - ; TOFIX: export this functionality to other .hbc files in need of this + ; FIXME: export this functionality to other .hbc files in need of this UPDATE: Before doing the above, it should be fixed to not use HB_HAS_ZLIB_LOCAL, as it is Harbour core build specific and is not present when using .hbc files outside this environment. Then this fix should be _moved_ to @@ -45106,7 +45145,7 @@ * contrib/hbqt/qtgui/hbqt_init.cpp * variables scopes * formatting - ; TOFIX: s_PHB_ITEM_tobedeleted logic to be moved to hbqtcore [DONE] + ; FIXME: s_PHB_ITEM_tobedeleted logic to be moved to hbqtcore [DONE] 2011-07-16 15:59 UTC+0200 Viktor Szakats (vszakats.net/harbour) * src/rtl/gtwvt/gtwvt.c @@ -45412,7 +45451,7 @@ 2011-06-19 11:27 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbqt/qtcore/hbqt_pointer.cpp - + added TOFIX to strtok() calls [DONE] + + added FIXME to strtok() calls [DONE] 2011-06-19 11:24 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbqt/hbmk2_qt.hbs @@ -46137,7 +46176,7 @@ * include/harbour.hbx * src/rtl/hbrandom.c * HB_RANDOMMAX() -> HB_RANDOMINTMAX() - ; TOFIX: now broken under mingw in all places where HB_RANDOMINT() + ; FIXME: now broken under mingw in all places where HB_RANDOMINT() is potentially called with larger than HB_RANDOMINTMAX() value. This will be impossible f.e. in RANDOM() CT function. [NOT A BUG] @@ -46324,7 +46363,7 @@ ! fixed for bcc (inline disabled for this dead compiler, getpid) ! fixed warning for all non-unix, non-win targets - ; TOFIX: it's also broken for watcom/dos and watcom/linux + ; FIXME: it's also broken for watcom/dos and watcom/linux Tamas, can you take a look at it? [DONE] * utils/hbmk2/hbmk2.prg @@ -46498,7 +46537,7 @@ * src/rtl/hbrandom.c + HB_RAND32() -> <32-bit random number> - ; TOFIX: random numbers are broken under mingw 4.5.2, only high 16bits are random. + ; FIXME: random numbers are broken under mingw 4.5.2, only high 16bits are random. in all HB_RAND*() functions [DONE] 2011-05-17 17:48 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -46516,7 +46555,7 @@ evaluate the condition at C compile time rather than .c code generation time. This particular fix would pbly only affect 16-bit cross builds, which we don't have any ATM. - ; TOFIX: same in hb_p_pushlonglong + ; FIXME: same in hb_p_pushlonglong 2011-05-17 15:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/rtl/gtxwc/gtxwc.c @@ -46879,7 +46918,7 @@ * contrib/hbtip/tests/base64.prg * File() -> hb_FileExists() - ; TOFIX: + ; FIXME: - files with ' = ' operator: * contrib/hbide/idetags.prg [DONE] * contrib/xhb/tcgi.prg [DONE] @@ -46910,7 +46949,7 @@ non *nix version of MEMOREAD() function ! do not write final EOF character if write failed in MEMOWRIT() function - ; TOFIX: In *nixes support for EOF character in MEMOREAD() and + ; FIXME: In *nixes support for EOF character in MEMOREAD() and MEMOWRITE() is disabled by default - IMHO it's wrong because it's not possible to use these functions to exchange safely data with CA-Cl*pper applications or even DOS/Windows @@ -47483,7 +47522,7 @@ * package/mpkg_win_nightly.bat + echoing self - ; TOFIX: nightly binaries are hosed and they don't seem to use live + ; FIXME: nightly binaries are hosed and they don't seem to use live .bat files from SVN. also, mingw is outdated. @@ -47590,7 +47629,7 @@ - contrib/hbqt/qtuitools - contrib/hbqt/hbqtuitools.hbc * contrib/hbide/hbide.hbp - - deleted dynamic UI loading. it had too many hopeless TOFIXes + - deleted dynamic UI loading. it had too many hopeless FIXMEs and it required raw pointers. and a lot of bloat. Should be reimplemented by loading and processing .ui files manually. @@ -47936,7 +47975,7 @@ fuzzy, where such option exists at all (f.e. BCC -A* options), mostly it's just toggling some compiler extensions. Comments are welcome of course. - + Added TOFIX for vxworks with potential disagreement on C std level. + + Added FIXME for vxworks with potential disagreement on C std level. I used hardwired C99 forcage hack while porting Harbour to it. + Added internal logic for C- and C++-only options. ; NOTE: Behavior with Objective C sources is yet to be tested. @@ -47993,7 +48032,7 @@ HB_CURLFORM_FILE, filename } } ) WARNING: This implementation is INCOMPATIBLE with the previous one. - TOFIX: Current implementation does allow to create GPFs because + FIXME: Current implementation does allow to create GPFs because it allows .prg code manually pass buffer sizes. This must be fixed and buffer length should always be automatically taken from Harbour item. This will require more sophisticated @@ -48163,7 +48202,7 @@ * contrib/hbsqlit3/hbsqlit3.hbp * contrib/hbexpat/hbexpat.hbp + Enabled -std=c89 option when building with any gcc compiler. - (TOFIX: now GTWVG breaks with error) + (FIXME: now GTWVG breaks with error) I mean this as an experiment which I'd like to extend gradually to whole Harbour as it seems a good way to @@ -48697,7 +48736,7 @@ 2011-04-13 03:13 UTC+0200 Viktor Szakats (vszakats.net/harbour) * utils/hbmk2/hbmk2.prg - + Added TOFIX. There is a build error caused by gpm, when + + Added FIXME. There is a build error caused by gpm, when trying to build 64-bit Harbour on a 32-bit Ubuntu (10.10) Linux. gpm lib is not available in 64-bit form, but 32-bit hbmk2 is built flagged with HB_HAS_GPM, so when @@ -48762,7 +48801,7 @@ ! fixed typos in my previos ChangeLog entry (I should try to read such things at least once before I'll commit) - ; TOFIX: contrib/hbexpat/internal.c: uses hb_cdpGetU16() which cannot + ; FIXME: contrib/hbexpat/internal.c: uses hb_cdpGetU16() which cannot be used with CPs using multibyte encoding. 2011-04-13 11:07 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -49475,7 +49514,7 @@ * contrib/hbqt/qtgui/qth/QPainter.qth ! Rewritten: manually :fillrect() which does not overload proper method with same number and types of arguments. - TOFIX: hbmk2_qt.hbs to entertain this construct. + FIXME: hbmk2_qt.hbs to entertain this construct. 2011-03-31 16:36 UTC+0100 Francesco Perillo ( fperillo at gmail.com ) * contrib/hbqt/hbmk2_qt.hbs @@ -50339,13 +50378,13 @@ + contrib/hbnetio/utils/hbnetio/netiosvc.prg + hbnetio will act as a service on Windows platform. To run it interactively from console, use: 'hbnetio -a' - ; TOFIX: I'm getting 'error 1067' when starting up the + ; FIXME: I'm getting 'error 1067' when starting up the service. It get resolved when I build hbnetio in -st mode. (I use mingw and did a full rebuild) * contrib/rddads/rddads.hbp ! Suppressing annoying mingw warning in ace.h. - ; TOFIX: hbmk2 overrides this ATM. + ; FIXME: hbmk2 overrides this ATM. 2011-03-09 18:30 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbwin/win_svc.c @@ -50434,9 +50473,9 @@ - Refixed strcpy() usage. - Added C++ puller for __QT* symbol. - Added manual version of HBQEventsFromPointer() which is still needed - by hbqtcore. (TOFIX) + by hbqtcore. (FIXME) Please test. - ; TOFIX: Remove remaining generated .prg, holding this code: + ; FIXME: Remove remaining generated .prg, holding this code: FUNCTION QtClass( ... ) RETURN HB_QtClass():new( ... ) Any takers? @@ -50502,7 +50541,7 @@ + Added autodetection on *nix systems. + Added darwin support. + Added os2 dll name. - ; TOFIX: Test (which is more or less the same as the official + ; FIXME: Test (which is more or less the same as the official example code) doesn't work on darwin, it pops X11 and gives a gs cmd prompt. @@ -50579,7 +50618,7 @@ * contrib/hbxbp/xbpappevent.prg ! Renamed XbpAppEventToQKeyEvent() to hbxbp_AppEventToQKeyEvent() - ; TOFIX: Demessify these public function names: + ; FIXME: Demessify these public function names: HBXBPAPPDESKTOP HBXBP_APPEVENTTOQKEYEVENT HBXBP_CLEAREVENTBUFFER @@ -50791,7 +50830,7 @@ * contrib/hbqt/qtgui/hbqt_init.cpp * Renamed HBQT_PUSHEVENT() to HBQTGUI_EVENTPUSH(). - * Commented this new function with a detailed TOFIX note, + * Commented this new function with a detailed FIXME note, with some notes needing more close inspection. 2011-03-01 18:22 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) @@ -51181,7 +51220,7 @@ (to avoid using macro evaluation and calling back to a .prg stub to create objects) in recent raw pointer modification. It contains modifications of mine. - ; TOFIX: Add puller code for internally created objects. Or, even better + ; FIXME: Add puller code for internally created objects. Or, even better use pure C++ object creation code, so this is not a problem. ; TODO: Delete remains of old method. [DONE] @@ -51290,7 +51329,7 @@ Please do tests. ! Fixed to pull required class wrappers for object types associated with events. - ; TOFIX: hbqt_create_object()/HBQT_CREATEQTOBJECT() is wrong + ; FIXME: hbqt_create_object()/HBQT_CREATEQTOBJECT() is wrong because it uses macro expansion to call object instantation, which means _ALL_ HBQT apps now require to pull and link every existing QT symbols to work reliably, which is @@ -51298,8 +51337,8 @@ these anyway) [DONE] We should move to full C++ wrappers to solve this cleanly. - ; TOFIX: Clean code to never use the unsafe hbqt_create_objectFromEventType(). [DONE] - ; TOFIX: Just a note: Raw pointers are still used in QLIST f.e., + ; FIXME: Clean code to never use the unsafe hbqt_create_objectFromEventType(). [DONE] + ; FIXME: Just a note: Raw pointers are still used in QLIST f.e., so even the raw pointer problem is not fully solved yet. * contrib/hbqt/qtgui/hbqtgui.hbx @@ -51376,7 +51415,7 @@ + Eliminated: raw pointers available to PRG code totally. Only a couple of places are left which I will look into - shortly. [TOFIX] + shortly. [FIXME] INCOMPATIBLE: Now any event fired by the Qt itself, either via SIGNAL/SLOTS mechanism or QEvent_* constants, @@ -51836,7 +51875,7 @@ value is defined by ADS header. ! Deleted hack to force usage of ADS_CISTRING, ADS_ROWVERSION, ADS_MODTIME. Now these features will be enabled based on - ADS_LIB_VERSION. This was old pending TOFIX. It may + ADS_LIB_VERSION. This was old pending FIXME. It may theoretically change behavior for these field types in certain client/server version combinations, ..or not. Pls comment, I'm not ADS user. @@ -51894,14 +51933,14 @@ ! Typo in comment. * src/rtl/errapi.c - ! Deleted old TOFIX most pbly not relevant anymore. + ! Deleted old FIXME most pbly not relevant anymore. * tests/testid.prg - ! Deleted old TOFIX and formatting. + ! Deleted old FIXME and formatting. 2011-02-17 13:57 UTC+0100 Viktor Szakats (vszakats.net/harbour) * src/rtl/achoice.prg - + Added TOFIX. + + Added FIXME. * src/rtl/hbrandom.c ! Fixed type and initialization of a variable. @@ -51990,10 +52029,10 @@ 2011-02-16 13:17 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/rddads/ads.ch - + Added TOFIX regarding COMMIT cmd. + + Added FIXME regarding COMMIT cmd. * contrib/hbtip/cgi.prg - ! Fixed TOFIX where *nix specific temp dir was hard-wired into + ! Fixed FIXME where *nix specific temp dir was hard-wired into multiplatform code. Pls test it. 2011-02-16 10:27 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -52045,7 +52084,7 @@ * contrib/hbide/idedocwriter.prg + Use core __HBDOC_TOSOURCE() to generate NG doc source. (just build tested) - ; TOFIX: idedocwriter.prg and ideharbourhelp.prg + ; FIXME: idedocwriter.prg and ideharbourhelp.prg still makes direct reference to NG doc physical format. Pls change these to use __HBDOC_* functions. @@ -52148,7 +52187,7 @@ One will need rddads-21.dll built for this and places in the same dir as hbide (that's where it's generated). You can build rddads-21.dll using HB_BUILD_CONTRIB_DYN=yes. - ; TOFIX: Get the dynamic lib name right for non-win platforms. + ; FIXME: Get the dynamic lib name right for non-win platforms. Pbly some core functions will be needed for that. 2011-02-14 12:04 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -52407,7 +52446,7 @@ 2011-02-11 19:24 UTC+0100 Viktor Szakats (vszakats.net/harbour) * src/rtl/base64d.c - ! Fixed TOFIX to handle too large result. Now it will RTE. + ! Fixed FIXME to handle too large result. Now it will RTE. Please check me. * src/rtl/hbrandom.c @@ -53718,7 +53757,7 @@ ; To generate manifests with -hbdyn and pocc/msvc compilers, use -dflag=-manifest (or any other manifest related options their linker support) - ; TOFIX: bcc's resource compiler doesn't work in -inc mode. + ; FIXME: bcc's resource compiler doesn't work in -inc mode. 2011-02-02 11:15 UTC+0100 Viktor Szakats (vszakats.net/harbour) * utils/hbmk2/hbmk2.prg @@ -53797,7 +53836,7 @@ what fixed it, so it's possible it's still broken with older watcom verions. Now it builds fine with 1.9. - ; TOFIX: watcom still has problems with missing externals when + ; FIXME: watcom still has problems with missing externals when building hbwin dll: Error! E2028: IID_IDispatch is an undefined reference Error! E2028: IID_IOleObject is an undefined reference @@ -53848,7 +53887,7 @@ an internal function. * Tweaked previous fix to HPDF_PDFA_SETPDFACONFORMANCE(), so that now it's included in dynamic builds, just returning dummy result. - Still a pending TOFIX though, as it's not right that dynamic + Still a pending FIXME though, as it's not right that dynamic and static version of the same lib works differently. Any tips which way to choose? It would be great asking libharu developers about whether HPDF_PDFA_SetPDFAConformance() is meant as a @@ -54229,7 +54268,7 @@ * check dependencies specified by .d files for .c and .o files generated from .prg ones % some minor optimizations - ; TOFIX: it's not safe to call FindNewerHeaders() with 3-rd parameter + ; FIXME: it's not safe to call FindNewerHeaders() with 3-rd parameter set to NIL (RTE) and HBMK2 does it when -autohbc option is used [DONE] 2011-01-29 00:32 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -54273,7 +54312,7 @@ ! Minor fix. * utils/hbmk2/hbmk2.prg - ! Resolved TOFIXes related to cygwin. + ! Resolved FIXMEs related to cygwin. + Added -head=dep option. Nothing fancy, just making room for it. 2011-01-28 11:01 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -54344,7 +54383,7 @@ - contrib/hbnetio/utils/netiosrq/netiosrq.hbp + contrib/hbnetio/utils/netiosrq/hbnetioq.hbp ! Renamed back to get in sync with installer. - ; TOFIX: Change hbnetioq to a pure management client without + ; FIXME: Change hbnetioq to a pure management client without embedded server daemon code. Pritpal, can you do it? [~DONE-ISH] ; TODO: Change hbnetio to be pure server daemon and add separate management console tool. Or, it's possible to put the @@ -54353,7 +54392,7 @@ 2011-01-27 12:26 UTC+0100 Viktor Szakats (vszakats.net/harbour) * ChangeLog - * Marked TODOs/TOFIXes DONE. + * Marked TODOs/FIXMEs DONE. 2011-01-27 10:21 UTC+0100 Viktor Szakats (vszakats.net/harbour) * src/rtl/tget.prg @@ -54585,7 +54624,7 @@ * Eliminated netio_srvSocket() call. + Displaying bytes sent and received. + Displaying connection status. - ; TOFIX: NETIO_SRVINFO_PEERADDRESS doesn't seem to work, returning NIL (or nothing), + ; FIXME: NETIO_SRVINFO_PEERADDRESS doesn't seem to work, returning NIL (or nothing), it's possible I'm missing something. [DONE - full rebuild fixed it] 2011-01-25 15:26 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -54675,7 +54714,7 @@ - Deleted Windows specific icon file. ! Fixed long filenames. + Added icon for OS/2. - ; TOFIX: Build doesn't work due to missing external (CONFIRMBOX). + ; FIXME: Build doesn't work due to missing external (CONFIRMBOX). [UPDATE: have to rebuild hbxbp.] 2011-01-25 10:21 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -55148,7 +55187,7 @@ * contrib/hbmxml/tests/testmxml.prg ! Reverted 2011-01-17 00:05 UTC+0200 Petr Chornyj. It's wrong solution, it makes the output non-portable. - ; TOFIX: Change LF to CRLF in libmxml for a proper fix. [DONE] + ; FIXME: Change LF to CRLF in libmxml for a proper fix. [DONE] 2011-01-17 00:05 UTC+0200 Petr Chornyj (myorg63 at mail.ru) * contrib/hbmxml/hbmxml.c @@ -55215,7 +55254,7 @@ 2011-01-15 16:34 UTC+0100 Viktor Szakats (vszakats.net/harbour) * bin/hb3rdpat.hbs + Added error message when URL is missing. - ; TOFIX: I could not test it because of this error: + ; FIXME: I could not test it because of this error: 'E: Can not find xz' I indeed don't have it, but this tool is not needed for this diffing session, so IMO it should be left @@ -55427,7 +55466,7 @@ callback information in PHB_ITEM instead of PHB_DYNS. For some reason I couldn't figure, reminder.prg fails after this modification. Please verify. - + Added TOFIX to severe buffer handling problem in all MXMLSAVE*() + + Added FIXME to severe buffer handling problem in all MXMLSAVE*() functions. Buffer is returned from save_cb() callback after it's freed. @@ -55521,7 +55560,7 @@ 2011-01-11 01:11 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbformat/hbformat.prg ! Fixed to recognize ENDSWITCH. - + Added vague TOFIX section. F.e. OTHERWISE is also not recognized, + + Added vague FIXME section. F.e. OTHERWISE is also not recognized, and increment/decrement statements have space separator added between variable name and operator (i ++), same is true for negative literals (- 1). @@ -55719,7 +55758,7 @@ decipher why PRIVATE was used in the first place, which means there is a chance I broke something. Please review it. - ; TOFIX: hbformat doesn't understand 'SWITCH' statement, which + ; FIXME: hbformat doesn't understand 'SWITCH' statement, which means it break with many valid source files with an error. [DONE] @@ -55830,8 +55869,8 @@ * contrib/hbformat/hbformat.hbp + contrib/hbformat/hbformat.hbc * Separated cmdline wrapper from class. - ; TOFIX: Class uses a MEMVAR! [DONE] - ; TOFIX: Class uses hbformat.ini, this is wrong as the notion + ; FIXME: Class uses a MEMVAR! [DONE] + ; FIXME: Class uses hbformat.ini, this is wrong as the notion of .ini config should be part of the cmdline wrapper. [DONE] 2011-01-08 11:47 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -55852,7 +55891,7 @@ * Formatting. * package/winuni/mpkg_win_uni.nsi - + Added TOFIX to recent HBIDE shortcut addition. + + Added FIXME to recent HBIDE shortcut addition. It should only be there if HBIDE component was selected. - Disabled HBIDE icon until a proper solution is found. @@ -56125,16 +56164,16 @@ ! Fixed MSVC (C++) missing cast. ! Applied uncrustify. ! type_cb() made static. (it's not used anywhere though) - ; TOFIX: bcc warning: + ; FIXME: bcc warning: Warning W8004 ..\hbmxml\hbmxml.c 585: 'iResult' is assigned a value that is never used in function type_cb [DONE] * contrib/hbxdiff/hbxdiff.c ! Fixed build-stopper typo in GC function name. ! Made memory wrapper functions static. - ; TOFIX: libxdiff build fails with msvc because of missing unistd.h. + ; FIXME: libxdiff build fails with msvc because of missing unistd.h. it also doesn't build with bcc, due to many and various errors. [DONE] - ; TOFIX: Update INSTALL with these new libs. Petr, can you do it? [DONE] + ; FIXME: Update INSTALL with these new libs. Petr, can you do it? [DONE] 2011-01-02 11:30 UTC+0200 Petr Chornyj (myorg63 at mail.ru) * ChangeLog @@ -56590,7 +56629,7 @@ ! Added HB_ prefix to locally rolled macros. + Moved locally rolled macros to separate .ch file. ! Fixed test to use hblzf.ch instead of repeating macro definitions. - ; TOFIX: errno.h. Replace with HB_LZF_* values? [DONE] + ; FIXME: errno.h. Replace with HB_LZF_* values? [DONE] * tests/wvtext.prg ! Fixed -w3 warnings. @@ -56689,8 +56728,8 @@ % Deleted HB_IS*() checks before hb_stor*() call. (unnecessary) ! Fixed formatting to comply with Harbour style. Pls don't reformat it with local style. - + Added TOFIX: eliminate static vars for MT compliance [DONE] - + Added TOFIX: eliminate reliance on errno.h, as it's not present on + + Added FIXME: eliminate static vars for MT compliance [DONE] + + Added FIXME: eliminate reliance on errno.h, as it's not present on some systems. * Renamed HB_LZF_DECOMPRESS()/HB_LZF_COMPRESS() to not have HB_ prefix. (HB_ prefix is only needed for functions which are not @@ -56973,17 +57012,17 @@ to be fixed. ; TODO: Delete this second parameter from all calls, now the value is ignored. - ; TOFIX: Review all + ; FIXME: Review all HBIDE_PATHNORMALIZED() and HBIDE_PATHNORMALIZED( p, .T. ) calls if they are used in comparison context and change caller code to use HB_FILEMATCH(). - ; TOFIX: All current code which uses LOWER()/UPPER() to + ; FIXME: All current code which uses LOWER()/UPPER() to "normalize" filename before comparison with '==' operator should also be changed to HB_FILEMATCH(). (except for cases where extension is used in the sense of file type). - ; TOFIX: Rest of cases where LOWER()/UPPER() is applied to + ; FIXME: Rest of cases where LOWER()/UPPER() is applied to filenames. ! Fixed HBIDE_PATHFILE() to never uppercase drive letter. It's not strictly required since all so far known systems @@ -57117,7 +57156,7 @@ * src/rtl/hbsocket.c + Comment. - ; TOFIX: Use SO_EXCLUSIVEADDRUSE on Windows. + ; FIXME: Use SO_EXCLUSIVEADDRUSE on Windows. See: http://paste.lisp.org/display/59751 - examples/udpds @@ -57615,16 +57654,16 @@ + Cleanups to build in Harbour. + Added PROTECTED scope for all object variables. This cause at least - one failure in sqlt. see TOFIX section. + one failure in sqlt. see FIXME section. + Changed to use PQconnectDB() instead of deprecated PQconnect() + Some formatting. - ; TOFIX: These hbpgsql functions are required, but they are not yet + ; FIXME: These hbpgsql functions are required, but they are not yet implemented in Harbour SVN: [DONE] PQPREPARE() PQEXECPREPARED() - ; TOFIX: Internal are accessing obj vars directly: [DONE - by simply exporting it, not necessarily good solution] + ; FIXME: Internal are accessing obj vars directly: [DONE - by simply exporting it, not necessarily good solution] Error BASE/42 Scope violation (protected): TSQLTSTATEMENT:PRES Called from TSQLTSTATEMENT:PRES(0) Called from TSQLTRESULTSET:NEW(0) @@ -57685,7 +57724,7 @@ ! SQLROWCOUNT() fixed to always return value by reference. (it's not wrapper's job to check success value and act anything depending on it). - ; TOFIX: There are some more wrappers which do that: SQLDESCRIBECOL(), + ; FIXME: There are some more wrappers which do that: SQLDESCRIBECOL(), SQLCOLATTRIBUTES(), SQLGETCONNECTATTR(), SQLGETSTMTATTR(). [DONE] % SQLROWCOUNT(), SQLGETINFO(), SQLNUMRESULTCOLS(), SQLCOLATTRIBUTE(): Minor optimization. ! SQLGETINFO(), SQLNUMRESULTCOLS(), SQLGETSTMTATTR(), SQLSETCONNECTATTR(), @@ -57697,7 +57736,7 @@ * TODBC:LoadData() changed to be able to retrieve fields with length of 256, instead of 64. This is still hack and should be fixed to retrieve full length. - ! TOFIX: TODBC:LoadData() to pull data in its original type + ! FIXME: TODBC:LoadData() to pull data in its original type instead of pulling everything as string, then trying to convert it back to original type. @@ -57897,7 +57936,7 @@ * harbour/src/rtl/sha2.c * minor formatting - ; TOFIX: Seems that there is sth wrong with src/rtl/sha1.c. + ; FIXME: Seems that there is sth wrong with src/rtl/sha1.c. Function SHA1_Transform() wrongly declares 2-nd parameter buffer[64] as const when in fact it changes it what can be seen if @@ -57966,7 +58005,7 @@ * contrib/hbtip/sendmail.prg * contrib/hbtip/mail.prg ! Fixed various ages-old bugs in recipient list handling. - ; TOFIX: BEWARE to all users. BCC is NOT actually blind in this + ; FIXME: BEWARE to all users. BCC is NOT actually blind in this implementation. If someone has an idea how to fix this bug, pls shout. [DONE] @@ -57989,7 +58028,7 @@ * contrib/sddpg/sddpg.c * contrib/hbpgsql/postgres.c ! Reverted previous fix because it didn't work on non-*nix platform. - - Deleted TOFIX comment, as apparently there is no better official way + - Deleted FIXME comment, as apparently there is no better official way to get these macros. * contrib/hbpgsql/postgres.c @@ -58149,7 +58188,7 @@ * contrib/hbfbird/tests/test.prg * contrib/hbfbird/tests/stress.prg * Formatting, fixes, cleanup. - ; TOFIX: OOP layer in hbfbird. + ; FIXME: OOP layer in hbfbird. * contrib/sddpg/sddpg.c * contrib/hbpgsql/postgres.c @@ -58241,7 +58280,7 @@ * contrib/hbzebra/pdf417.c * contrib/hbzebra/datamtrx.c ! Silenced msvc warnings. - ; TOFIX: These remaining ones: [DONE] + ; FIXME: These remaining ones: [DONE] ..\hbzebra\datamtrx.c(452) : warning C4309: '=' : truncation of constant value ..\hbzebra\pdf417.c(1230) : warning C4701: potentially uninitialized local variable 'coef' used ..\hbzebra\code128.c(265) : warning C4701: potentially uninitialized local variable 'iCodeSet' used @@ -58502,7 +58541,7 @@ * contrib/hbzebra/itf.c * contrib/hbzebra/codabar.c * Silenced three warnings. - ; TOFIX: Remains one: [DONE] + ; FIXME: Remains one: [DONE] ../../../../../contrib/hbzebra/code128.c: In function 'hb_zebra_create_code128': ../../../../../contrib/hbzebra/code128.c:316:19: warning: suggest parentheses around '&&' within '||' @@ -58762,7 +58801,7 @@ ! Do not apply HB_QTPOSTFIX to rcc tool. * utils/hbmk2/hbmk2.prg - + Added two potential TOFIXes. I'd be grateful is something + + Added two potential FIXMEs. I'd be grateful is something could get to the end of them. 2010-11-08 01:38 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -58992,7 +59031,7 @@ + Added HB_HOST_PLAT macro, returning: hb_Version( HB_VERSION_PLATFORM ) + Added HB_HOST_PLAT_UNIX macro. ! Fixed cygwin to be detected as cross target platform. - ! Few cygwin related TOFIX-es cleared. + ! Few cygwin related FIXME-es cleared. * external/Makefile - external/sqlite3 @@ -59033,7 +59072,7 @@ ; Such will be required for * external/libhpdf/libhpdf.hbp - * Cleared TOFIX after above changes. + * Cleared FIXME after above changes. * contrib/hbplist * contrib/hbmzip/hbmzip.hbp @@ -59290,7 +59329,7 @@ make tests with OS/2 and WinCE either, plus with some C compilers. Should build fine though with mingw[64], msvc[64], pocc[64], bcc. - ; TOFIX: Watcom build is broken. Any takers? [DONE] + ; FIXME: Watcom build is broken. Any takers? [DONE] * contrib/hbplist + Enabled hbexpat. @@ -59342,7 +59381,7 @@ * contrib/make.hbs * config/postinst.hbs * bin/hbxpatch.hbs - ! Resolved TOFIX notes: now the headers can be used + ! Resolved FIXME notes: now the headers can be used just like in any .prg, and no need to locally #define core constants. Also hbqt_hbmk2_plugin.hbs should work now in stdalone @@ -59567,7 +59606,7 @@ eventually .prg code can be eliminated fully. [WONTWORK] ; TODO: Resolve dependence on generated central headers, in manual source files. [DONE] - ; TOFIX: Error message in plugin now erroneously shows + ; FIXME: Error message in plugin now erroneously shows as "hbclass.ch(131)", IOW the compiler thinks its compiling the header, while in reality its compiling the .hbs file. @@ -59869,8 +59908,8 @@ + Replaced above solution with transparent one, using Str API usage and extended it for all places where UTF8 strings are expected or returned by sqlite3 API. - Please test. This clears an old TOFIX. - + Added TOFIX for raw pointer usage. + Please test. This clears an old FIXME. + + Added FIXME for raw pointer usage. * contrib/hbqt/qtgui/g/QApplication.cpp * contrib/hbqt/qtgui/qth/QApplication.qth @@ -59904,7 +59943,7 @@ * utils/hbmk2/hbmk2.prg + Applied cygwin patch from Tamas Tevesz. ! Few more cygwin related fixes here and there. - + Added more cygwin related TOFIX notes. + + Added more cygwin related FIXME notes. 2010-10-29 21:27 UTC+0200 Viktor Szakats (vszakats.net/harbour) * config/global.mk @@ -60214,7 +60253,7 @@ * contrib/hbqt/qtgui/hbqt_registersignals.cpp * contrib/hbqt/qtcore/hbqt_registersignals.cpp * contrib/hbqt/qtnetwork/hbqt_registersignals.cpp - + Added TOFIX notes to each hb_vmPushPointer() calls. + + Added FIXME notes to each hb_vmPushPointer() calls. 2010-10-25 12:09 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbqt/qtcore/hbqt_hbqevents.cpp @@ -60423,7 +60462,7 @@ * contrib/hbqt/qtuitools/hbqtuitools.hbx * contrib/hbqt/qtuitools/THbQtUILoader.prg * Renamed HbQtUI class to HbQtUILoader. - + Added TOFIX to change this class to inherit from HbQtUI. + + Added FIXME to change this class to inherit from HbQtUI. ; INCOMPATIBLE: If you use HbQtUI class to load on-disk .ui or .uic files, update your code to use HbQtUILoader(). ; NOTE: hbide must be clean built. (and all other apps that @@ -61019,7 +61058,7 @@ contains minor optimizations and cleanups. It works, but it's not yet activated. * Moved Q__TR() to hbqtgui from hbqtuitools. - ; TODO: Clear all TOFIX/QUESTION/TODO items in THbQtUI.prg. + ; TODO: Clear all FIXME/QUESTION/TODO items in THbQtUI.prg. F.e. user code like hbide makes quite many direct manipulations on HbQtUI internal variables. This should pbly be fixed. @@ -61032,7 +61071,7 @@ * Moved inclusion of hbqtuitools from hbxbp to hbide. Dynamic QUiLoader shall only be needed if app explicitly requires loading .ui/.uic files dynamically. - ; TOFIX: Separate dynamic ui loader code from static one + ; FIXME: Separate dynamic ui loader code from static one (pbly HbQtUi class needs to be split into two parts) [DONE] @@ -61129,7 +61168,7 @@ QtUiTools is not required to build hbide. (it was not actively used anyway) - ; TOFIX: QUiLoader class should be moved to a separated lib + ; FIXME: QUiLoader class should be moved to a separated lib from hbqtgui. [DONE] 2010-10-17 16:40 UTC+0200 Petr Chornyj (myorg63 at mail.ru) @@ -61237,7 +61276,7 @@ + Added NOTE about contradiction where :hasValidPointer() will never return .T. for valid objects created with FromPointer() call. Another reason to drop this object instantiation method. - + Added more TODO/NOTE/TOFIX text. + + Added more TODO/NOTE/FIXME text. * contrib/hbqt/qtcore/hbqtcore.hbx * contrib/hbqt/qtnetwork/hbqtnetwork.hbx @@ -61318,9 +61357,9 @@ * contrib/hbqt/utils/hbqtgen.prg ! Fixed to pass 'uchar' where QT needs it (instead of current 'char') - ; TOFIX: hb_parc() return value is still de-const-ed and passed + ; FIXME: hb_parc() return value is still de-const-ed and passed to QT which is 100% way to create random GPFs. - See TOFIXes in code. + See FIXMEs in code. * utils/hbmk2/hbmk2.prg * Formatting. @@ -61912,7 +61951,7 @@ Suggested by YD0DKL * contrib/hbqt/utils/hbqtgen.prg - + Added TOFIXes to some generated code lines. + + Added FIXMEs to some generated code lines. (missing const, hb_retptr(), char vs uchar) * contrib/hbqt/utils/hbqtgen.prg @@ -61931,7 +61970,7 @@ * contrib/hbqt/qscintilla/g/* * contrib/hbqt/qtdesigner/g/* * Regenerated. - ; TOFIX: Why is commented code in .qth spilling into generated code? + ; FIXME: Why is commented code in .qth spilling into generated code? * contrib/hbqt/qtcore/g/filelist.hbm * contrib/hbqt/qtcore/g/hbqtcore.h @@ -63530,7 +63569,7 @@ * harbour/package/harbour-win.spec.in * harbour/package/harbour-wce.spec.in ! removed HB_BUILD_EXTDEF=no which is not necessary -my fault - ; TOFIX: now windows builds need HB_INSTALL_PREFIX so these RPMs + ; FIXME: now windows builds need HB_INSTALL_PREFIX so these RPMs still cannot be created. [DONE] 2010-09-13 12:12 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -64380,7 +64419,7 @@ * contrib/hbide/idereportsmanager.prg ! Deleted www. from web address. Pls do not use www.. - ; TOFIX: ? IMO the saved report files should not hold or contain a + ; FIXME: ? IMO the saved report files should not hold or contain a Harbour copyright message. [DONE] * INSTALL @@ -65560,7 +65599,7 @@ ! Use HB_INSTALL_PKG_TOP to denote the root of package dir structure. ; TODO: Change the name to HB_INSTALL_PKG_ROOT [DONE] ; TODO: Optimize variable usage. [DONE~] - ; TOFIX: Use HB_INSTALL_DYN instead HB_INSTALL_LIB in context of + ; FIXME: Use HB_INSTALL_DYN instead HB_INSTALL_LIB in context of dynamic libs in postinst.hbs and package scripts. [DONE] * package/harbour.spec @@ -66235,7 +66274,7 @@ hb_gcCollect() hb_gcCollectAll() - ; TOFIX: I didn't want to add these as they look heavily internal (some even + ; FIXME: I didn't want to add these as they look heavily internal (some even marked as such, they are all used by xhb lib: hb_stackBaseOffset() hb_stackItem() @@ -66377,7 +66416,7 @@ * utils/hbmk2/hbmk2.prg ! Fixed regression where -head=native would miss the header dir options when doing the header detection. - + Added TOFIX about (experimental) -autohbc not working with -inc option. + + Added FIXME about (experimental) -autohbc not working with -inc option. 2010-08-02 15:13 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbqt/qtgui/qth/QMainWindow.qth @@ -66409,7 +66448,7 @@ * contrib/hbqt/qtwebkit/g/* * Regenerated. - ; TOFIX: qt docs are not currently converted to .hbd. + ; FIXME: qt docs are not currently converted to .hbd. I will deal this in the future, anyhow nobody uses .hbd yet, so it not a loss. [DONE] @@ -66512,7 +66551,7 @@ * contrib/hbqt/hbqt.h - Deleted (manual and central) HBQT_TYPE_* constants, - along with the TOFIX note. + along with the FIXME note. * contrib/hbqt/qtwebkit/g/hbqtwebkit.h * contrib/hbqt/qtcore/g/hbqtcore.h @@ -66764,7 +66803,7 @@ - Deleted manually added local GC headers. * contrib/hbqt/qtcore/hbqt_hbslots.h - + Added TOFIX about QtGui dependency. + + Added FIXME about QtGui dependency. * contrib/hbqt/qtcore/hbqtcores.hbp * contrib/hbqt/qtgui/hbqtguis.hbp @@ -66992,7 +67031,7 @@ + Added my copyright. * contrib/hbqt/hbqtcore.hbc - + Added TOFIX about slots subsystem making qtgui references. + + Added FIXME about slots subsystem making qtgui references. * contrib/hbqt/generator/hbqtgen.prg - Deleted more inactive code. @@ -67108,7 +67147,7 @@ ; TODO: Further cleanup to file layout. Componentize docs, qth files, move files in central dir to component dirs. [DONE] - ; TOFIX: hbqtcore references qtgui in QMESSAGEBOX() which is a + ; FIXME: hbqtcore references qtgui in QMESSAGEBOX() which is a hbqtgui function. This has to be fixed. hbqtcore.dll is not build because of this. The easiest would be to rewrite HBQT_MESSAGEBOX() in @@ -67116,7 +67155,7 @@ this function into hbqtcore. [DONE - differently] - ; TOFIX: If this is done it would be also good to fix hbqtcore -> qtgui + ; FIXME: If this is done it would be also good to fix hbqtcore -> qtgui dependencies. Currently this is QMessageBox plus some stuff referenced from hbqt_hbqabstractitemmodel.cpp. This latter can pbly be solved by moving this HB class to hbqtgui. [DONE] @@ -67294,7 +67333,7 @@ * contrib/xhb/thtm.prg % Changed hbct LTOC to simple iif() - ; TOFIX: xhb makes reference to (deprecated) hb_symEval symbol: + ; FIXME: xhb makes reference to (deprecated) hb_symEval symbol: Info: resolving _hb_symEval by linking to __imp__hb_symEval (auto-import) [DONE] @@ -67310,7 +67349,7 @@ * contrib/hbqt/generator/hbqtgen.prg * contrib/hbqt/hbqt.h ! Fixed to add HB_EXPORT to public declarations. - ; TOFIX: hbqt still doesn't link in hbdyn mode. [DONE] + ; FIXME: hbqt still doesn't link in hbdyn mode. [DONE] * contrib/hbqt/hbqt_garbage.h * contrib/hbqt/doc/en/*.txt @@ -67739,7 +67778,7 @@ * harbour/package/harbour.spec ! fixed /etc/ld.so.conf.d detection % minor improvement - ; TOFIX: + ; FIXME: * /etc/ld.so.conf.d/harbour.conf in final RPM contains wrong path due to missing HB_INSTALL_PREFIX * soft links to harbour shared libraries for systems @@ -67951,7 +67990,7 @@ 2010-07-28 19:16 UTC+0200 Viktor Szakats (vszakats.net/harbour) * package/harbour.spec ! Deleted hbbz2 from lib list. It was not added to contrib list. - ; TOFIX: This separately maintained contrib (and target lib) list + ; FIXME: This separately maintained contrib (and target lib) list should be somehow avoided. It's a permanent maintainence problem. Is there a way to automatically include all files in a @@ -67975,7 +68014,7 @@ appearing in target lib dir. * config/postinst.hbs - + Added two .so related TOFIXes. + + Added two .so related FIXMEs. * mpkg_src.sh + Changed to always delete temp file bin/hb_flst.tmp containing @@ -69653,7 +69692,7 @@ ! Fixed missing initialization for enums returned by reference. An msvc warning was shown about them. - ; TOFIX: I've reported similar warnings long ago with msvc. Anybody to fix them? + ; FIXME: I've reported similar warnings long ago with msvc. Anybody to fix them? --- hbqt_hbqplaintextedit.cpp ...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(101) : warning C4512: 'QtConcurrent::BlockSizeManager' : assignment operator could not be generated @@ -69728,7 +69767,7 @@ This way it's done centrally. * config/vxworks/diab.mk - - Deleted fixed TOFIX. + - Deleted fixed FIXME. 2010-07-17 14:59 UTC+0200 Viktor Szakats (vszakats.net/harbour) * ChangeLog @@ -70207,9 +70246,9 @@ * config/vxworks/gcc.mk % Deleted unnecessary compile time macros. - ; TOFIX: vxworks HB_BUILD_SHARED=yes is broken. harbour .so + ; FIXME: vxworks HB_BUILD_SHARED=yes is broken. harbour .so is not found. Couldn't find out why. [DONE] - ; TOFIX: vxworks/gcc/arm hbatomic.h needs support added. + ; FIXME: vxworks/gcc/arm hbatomic.h needs support added. arm harbour and hbpp builds fine. 2010-07-15 20:24 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -70265,7 +70304,7 @@ - "argument n of 'x' differ in signedness" and "discards qualifiers from pointer target type" warnings in hbsocket.c code. - ; TOFIX: + ; FIXME: - Unrecoverable error 9998: Harbour terminal (GT) initialization failure when running hbtest. [DONE] - GPF when running hbmk2 and hbrun. (hbformat, hbi18 startup fine) @@ -71728,7 +71767,7 @@ - Deleted references to contribs (and some local projects not present in SVN). Pls don't readd them as they break separation of components. - ; TOFIX: Remove even Harbour one, because hbide is supposed to + ; FIXME: Remove even Harbour one, because hbide is supposed to be a separate component, which means HBIDE users shouldn't be forced to match their HBIDE version with the Harbour version which they use. F.e. they may even use HBIDE to @@ -72451,7 +72490,7 @@ * src/vm/classes.c * Renamed HB_SIZE variables to have 'n' prefix. (verified to generate the same objects as before) - ; TOFIX: as marked in hvm.c. [DONE] + ; FIXME: as marked in hvm.c. [DONE] 2010-07-06 21:00 UTC+0200 Viktor Szakats (vszakats.net/harbour) * utils/hbrun/hbrun.prg @@ -73181,7 +73220,7 @@ + Added new low level hb_cdpList() function. ! cdp list generation logic now protected with mutex. ! HB_CDPLIST() .prg level function moved to cdpapihb.c, - thus clearing the last pending TOFIX here regarding + thus clearing the last pending FIXME here regarding layer separation. Low level can now be moved to common lib (or is there anything else missing?). @@ -73328,7 +73367,7 @@ 2010-07-02 10:10 UTC+0200 Viktor Szakats (vszakats.net/harbour) * ChangeLog - * Revised and updated status for pending TODOs TOFIXes of + * Revised and updated status for pending TODOs FIXMEs of this year. * contrib/hbcurl/hbcurl.c @@ -73352,7 +73391,7 @@ * contrib/hbide/hbide.prg ! Deleted hard-coded reference for specific QT version. This should be solved differently. - ; TOFIX: BTW the whole notion of having a special build + ; FIXME: BTW the whole notion of having a special build for a given distro is wrong. It should rather do autodetection in all builds. @@ -73779,8 +73818,8 @@ hbide.env, plus the fact the internal html pages make references to these external files, too.) - Deleted some unnecessary trash from source. - ; TOFIX: hbide.env should reside in same place as hbide.ini. [DONE] - ; TOFIX: hbide internal html pages make reference to .png files + ; FIXME: hbide.env should reside in same place as hbide.ini. [DONE] + ; FIXME: hbide internal html pages make reference to .png files on disk. [DONE] 2010-06-29 08:46 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -73894,7 +73933,7 @@ half-baked anyway. * Changed to use ui_ prefix and std .prg extension instead of .uip. - ; TOFIX: The generator creates reference to function named + ; FIXME: The generator creates reference to function named Q__TR() which turned out to be part of HBQT. What is this function? [CLEARED] @@ -73954,7 +73993,7 @@ * contrib/hbqt/utils/hbqtui.prg + Added error message - ; TOFIX: This tool needs serious ruggedizing to be ready for + ; FIXME: This tool needs serious ruggedizing to be ready for production environment. It just fails to give _any_ on screen feedback about what's happening, or what fails. This means that the caller will fail in various @@ -74891,7 +74930,7 @@ * contrib/hbqt/utils/hbqtui.prg ! Fixed to use GTCGI. - ; TOFIX: There is a great deal of screen flickering due to + ; FIXME: There is a great deal of screen flickering due to external call to uic.exe on Windows. [DONE] + contrib/hbide/resources/hbmk2_plugin_uip.prg @@ -75316,7 +75355,7 @@ + Win64 support for HVM stack and other related internals. (HB_ULONG -> HB_SIZE, HB_LONG -> HB_ISIZ, long -> HB_ISIZ) + Using size API in debug functions. - ; TOFIX: These two warnings remain in HVM (not counting dlmalloc): [DONE] + ; FIXME: These two warnings remain in HVM (not counting dlmalloc): [DONE] --- hvm.c(10695) : warning C4244: 'argument' : conversion from 'HB_MAXINT' to 'double', possible loss of data macro.c(1315) : warning C4310: cast truncates constant value @@ -75422,7 +75461,7 @@ * hb_compExprAsStringLen() return value changed to HB_SIZE from int. * hb_compNOOPfill() 3rd parameter changed to HB_ISIZ from int. - Deleted unused hb_compExprMacroListLen(). - ; TOFIX: Use '$$' (or maybe newly added sNumber) + ; FIXME: Use '$$' (or maybe newly added sNumber) instead of '$$' in .y code. Przemek, what do you think? [DONE] @@ -75695,7 +75734,7 @@ ! Pacifying these very old msvc warnings: 'warning C4310: cast truncates constant value' ; Check me pls. - ; TOFIX: These are the remaining ones: + ; FIXME: These are the remaining ones: --- macro.c(1315) : warning C4310: cast truncates constant value ../../../dbffpt1.c(505) : warning C4310: cast truncates constant value @@ -75996,7 +76035,7 @@ * src/vm/extend.c + Added hb_storvns(). + Added hb_parvns(). - ; TOFIX: hb_itemPutNS() gives these (not quite unexpected) mingw warnings: [DONE] + ; FIXME: hb_itemPutNS() gives these (not quite unexpected) mingw warnings: [DONE] --- itemapi.c:993:8: warning: comparison between signed and unsigned integer expressions itemapi.c:998:38: warning: comparison between signed and unsigned integer expressions @@ -76708,7 +76747,7 @@ Also added comment to signal the intention. * src/rtl/inkey.c - + Added two TOFIXes to LASTKEY() and NEXTKEY() after having discovered + + Added two FIXMEs to LASTKEY() and NEXTKEY() after having discovered two hidden (dirty) parameter extensions over original Clipper implementation, both added here in Harbour in year 2001. [ I didn't test if it's undocumented Clipper function, but there is no such @@ -77144,7 +77183,7 @@ ; NOTE on QNX: All binaries build cleanly, hbtest works. - ; TOFIX/TODO: + ; FIXME/TODO: - hbrun seems to misdetect the width of the terminal (gttrm). - Clean some hacks in QNX port (gttrm) - TODO_CRTSCTS (hbcom) @@ -77189,7 +77228,7 @@ * src/rtl/gttrm/gttrm.c ! Added fix to compile when SA_RESTART is not available (in QNX). - ; TOFIX: Replace this with some more meaningful solution. [MOVED] + ; FIXME: Replace this with some more meaningful solution. [MOVED] * src/rtl/hbzlib.c ! Fixed to compile when compressBound() is not available. @@ -77242,7 +77281,7 @@ + Changed to give warning only when using older than 3.81 make versions. Some feature are disabled in this case, f.e. HB_BUILD_PKG (win/dos specific feature) - ; TOFIX: host platform and cpu detection relies on $(eval) + ; FIXME: host platform and cpu detection relies on $(eval) which is not present on pre 3.80. [DONE] ; habour and hbpp builds fine, but there are several remaining @@ -77377,7 +77416,7 @@ + Added script to generate nightly sources. ; TODO: Upload nightlies to sf.net. [DONE] ; TODO: Change nightly filenames to match our normal source releases. [DONE] - ; TOFIX: Current .zip nighly has wrong (*nix) EOLs. This has to be + ; FIXME: Current .zip nighly has wrong (*nix) EOLs. This has to be changed to CRLF. [DONE] * INSTALL @@ -78316,7 +78355,7 @@ The only difference compared to previous solution is different error code (3015) to differenciate this case from wrong parameter _type_ error cases. - ; TOFIX: IMO even current solution is not ideal, because it just + ; FIXME: IMO even current solution is not ideal, because it just forces developers to use HB_ISREGEX() to pre-evaluate regex strings before actually using them (causing performance hit), or it forces them to use HB_REGEXCOMP() to pre-compile and @@ -79998,7 +80037,7 @@ (www.harbour-project.org -> harbour-project.org) * contrib/xhb/xhbarr.c - + Added TOFIX for AREMOVE() which should better be moved + + Added FIXME for AREMOVE() which should better be moved to hbxpp lib (possibly after deleting the xhb extension from that implementation). @@ -80018,7 +80057,7 @@ * harbour/contrib/hbxpp/tbrowsex.prg ! added missing _TBR_COORD() definition - ; TOFIX: this code uses _MAXFREEZE() function which do not exists so + ; FIXME: this code uses _MAXFREEZE() function which do not exists so it cannot be linked with any application 2010-06-02 19:04 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -80964,7 +81003,7 @@ ! Missing SVN header. ! Missing SVN props. ! Deleted local system specific absolute paths. - TOFIX: HBIDE should make the working (what is it BTW?) + FIXME: HBIDE should make the working (what is it BTW?) and destination folders relative to the location of .hbp. BTW destination is redundant, since -o already specifies that. @@ -81426,7 +81465,7 @@ + contrib/hbcomm/tests/test.prg + Added HBCOMM compatibility library. It's based on hbct COM functions. Not tested with real port. Also see one - TOFIX and one INCOMPATIBILITY note inside. The latter + FIXME and one INCOMPATIBILITY note inside. The latter belongs to INCHR() function which in original HBCOMM library will do HVM corruption by overwriting string content passed as 3rd parameter. In Harbour 3rd @@ -82757,7 +82796,7 @@ .mem files, so these functions will create an incompatible file format with default '.hbv' extension. - ; TOFIX: __MVRESTORE() restores variables as PRIVATEs + ; FIXME: __MVRESTORE() restores variables as PRIVATEs while HB_MVRESTORE() as PUBLIC. [DONE] ; NOTE: GETLIST exclusion is solved with simple trick, as I couldn't find how it's solved in __MVSAVE(). [SOLVED] @@ -82979,8 +83018,8 @@ * More clearing up. * contrib/hbwin/win_srv.c - ! Fixed one TOFIX which was result of s&r on my part. - ; TOFIX remaining: [DONE] + ! Fixed one FIXME which was result of s&r on my part. + ; FIXME remaining: [DONE] --- ../../../win_srv.c: In function 'hbwin_SrvFunction': ../../../win_srv.c:102:4: warning: passing argument 1 of 'RegisterServiceCtrlHandlerW' from incompatible pointer type @@ -83018,7 +83057,7 @@ ! Fixed memory potential leak in WIN_SERVICEDELETE(). ! Added some casts. % Variables declarations moved to inner scopes. - ; TOFIX: + ; FIXME: - UNICODE build problem in hbwin_SrvFunction(). [RELISTED] - possible memory corruption in WIN_SERVICESTART()? [RELISTED] - 'implicit declaration of function 'Sets_ServiceStatus'' in hbwin_SrvFunction(). [DONE] @@ -83147,7 +83186,7 @@ HB_K_GOTFOCUS and HB_K_CLOSE. - ; TOFIX: HB_K_CLOSE doesn't work yet. Probably some rearrengement + ; FIXME: HB_K_CLOSE doesn't work yet. Probably some rearrengement of window close control will be needed. [DONE] ; The goal is to be able to keep "fireevent" feature in a Clipper/Harbour @@ -84150,7 +84189,7 @@ ! TMySQLRow:MakePrimaryKeyWhere() and TMySQLTable:MakePrimaryKeyWhere() fixed to not create wrong SQL expression when no primary key is present. - ; TOFIX: Handle this case properly in callers of these methods. + ; FIXME: Handle this case properly in callers of these methods. 2010-05-03 00:38 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbxbp/xbptoolbar.prg @@ -84401,7 +84440,7 @@ + contrib/xhb/tests/test.xml + Added xml test code posted to list by "Ivan re". (after fix and formatting) - ; TOFIX: This sample crashes with mingw. [DONE] + ; FIXME: This sample crashes with mingw. [DONE] 2010-04-28 19:05 UTC+0200 Viktor Szakats (vszakats.net/harbour) * src/rtl/Makefile @@ -84602,7 +84641,7 @@ achoice area was only one line. Pls verify me for regressions. [ It did cause regression. So now the original bug is present again. ] - TOFIX: --- + FIXME: --- #include "inkey.ch" CLS hb_keyPut( K_DOWN ) @@ -85742,7 +85781,7 @@ + Updated to 1.1 (from 1.01?) This version gives ZIP64 support. To exploit it we will need changes in Harbour wrapper code. - ; TOFIX: In quick tests BCC was throwing 'Abnormal program termination' + ; FIXME: In quick tests BCC was throwing 'Abnormal program termination' and created corrupted .zip. Rest seems okay. [DONE] ; TODO: Platforms tests, review patches, etc. [DONE] @@ -86273,7 +86312,7 @@ * utils/hbrun/Makefile + utils/hbrun/hbrun.rc + Added resource file to include icon. - ; TOFIX: The .ico file path is hard-wired and will break if HB_BUILD_NAME + ; FIXME: The .ico file path is hard-wired and will break if HB_BUILD_NAME contains subdirs. * bin/postinst.bat @@ -87268,7 +87307,7 @@ 2010-03-16 16:08 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbbzip2/Makefile + Added bzip2 header detection and setup. - ; TOFIX: Some warnings: [DONE] + ; FIXME: Some warnings: [DONE] mingw: hbbzip2.c: In function 'hb_bz2Compress': hbbzip2.c:96: warning: left shift count >= width of type @@ -87889,7 +87928,7 @@ There was no reason to revert macro names, so I kept these in sync with the rest of Harbour, only colors are kept as non-MS-DOS compatible. - ; TOFIX: Palette indexing. [DONE] + ; FIXME: Palette indexing. [DONE] * examples/hbdoc2/gentxt.prg ! Fixed to previous fix to rather delete unused @@ -88121,7 +88160,7 @@ * contrib/hbide/idesaveload.prg * "hbide.set" -> "hbidewnd.ini". At least it uses standard - extension. Still wrong solution and a remaining TOFIX. + extension. Still wrong solution and a remaining FIXME. 2010-03-09 02:03 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbqt/hbqt_hbslots.cpp @@ -88337,7 +88376,7 @@ nicely with Harbour apps built in (now default) UNICODE mode, when executed on Win9x systems. Harbour works only with Microsoft's UNICOWS.DLL (with OPENCOW.DLL it doesn't). - ; TOFIX: For GTWIN there is no keyboard input though, but + ; FIXME: For GTWIN there is no keyboard input though, but the mouse works. [DONE] 2010-03-08 00:48 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -88416,7 +88455,7 @@ * contrib/hbmysql/tests/test.prg * Formatting. - ; TOFIX: Not a standalone test code. + ; FIXME: Not a standalone test code. * contrib/hbsqlit3/tests/blob.prg * contrib/hbsqlit3/tests/pack.prg @@ -88556,7 +88595,7 @@ functions with core ones, or move these ones to core. INCOMPATIBLE: Old function names have been changed from TIPENCODER*_[DECODE|ENCODE]() to __TIP_*_[ENCODE|DECODE](). - ; TOFIX: Old C implementation of QP encoding/decoding doesn't + ; FIXME: Old C implementation of QP encoding/decoding doesn't seem to work. [DONE - DELETED] ; TODO: Try eliminating redundancy in base64 encoding/decoding between hbtip and core. @@ -88576,7 +88615,7 @@ 2010-03-07 12:21 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbtip/encmthd.c * Formatting. - ; TOFIX: I've just realized the nature of this hack. [DONE] + ; FIXME: I've just realized the nature of this hack. [DONE] 2010-03-07 12:06 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbtip/sendmail.prg @@ -89239,7 +89278,7 @@ * examples/pe/readme.txt + Further cleanups (some types, unused code). % Minor optimization. - * Deleted one completed (old) TOFIX item. + * Deleted one completed (old) FIXME item. 2010-03-03 01:22 UTC+0100 Viktor Szakats (vszakats.net/harbour) * examples/pe/editorlo.c @@ -89452,7 +89491,7 @@ 2010-02-28 18:34 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbsqlit3/hbsqlit3.c - + Added TOFIX: utf8 conversion is missing from the interface. + + Added FIXME: utf8 conversion is missing from the interface. * contrib/rddsql/Makefile + contrib/rddsql/sddsq3 @@ -89473,7 +89512,7 @@ 2010-02-28 12:59 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/rddsql/sddoci/sddoci.c ! Fixed handling of numeric types widths and decimals. - ; This marks last known TODO/TOFIX as DONE. + ; This marks last known TODO/FIXME as DONE. * src/vm/extrap.c + Minor @@ -89581,8 +89620,8 @@ + Finished type mapping and value translation. ; Not being an Oracle user, I only have the few sample tables, so no testing was made with these types. - ; TOFIX: decimal position retrieval is currently wrong. [DONE] - ; TOFIX: date/time/timestamp doesn't seem to get through. [DONE] + ; FIXME: decimal position retrieval is currently wrong. [DONE] + ; FIXME: date/time/timestamp doesn't seem to get through. [DONE] * config/win/global.mk * config/rules.mk @@ -89607,7 +89646,7 @@ NOTE: Since the translation functions have been changed, now _SET_OSCODEPAGE setting are honored in these calls. We may change this later to some lib specific cp. - ; TOFIX: Warnings are showing up in non-UNICODE mode: + ; FIXME: Warnings are showing up in non-UNICODE mode: odbc.c:438: warning: pointer targets in passing argument 2 of 'hb_storstr' differ in signedness Couldn't find an optimal way to pacify them (also in sddodbc). [DONE] @@ -89756,7 +89795,7 @@ * contrib/rddsql/sddodbc/odbcdd.c ! HB_ULONG -> HB_SIZE - ; TOFIX: Current SDD architecture will crash with GPF + ; FIXME: Current SDD architecture will crash with GPF if dbUseArea() is attempted after a failed RDDI_CONNECT call. You can check it f.e. with sddodbc's test1.prg, by modifying test.mdb to test_.mdb, and simply run it. [DONE] @@ -90168,7 +90207,7 @@ ! fixed typo and casting due to wrong OS2 API documentation * use DosQueryCurrentDir() instead of DosQCurDir() macro - TOFIX: Current HVM cannot be compiled by OS2 Watcom + FIXME: Current HVM cannot be compiled by OS2 Watcom 2010-02-24 12:22 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/bin/hb-func.sh @@ -91267,7 +91306,7 @@ + Added placeholder for CE/MIPS/SH CPU dump code. + Added iTODO warnings for non-implemented code sections. + Tweaked and enabled module listing code for WinCE. - ; TOFIX: UNICODE conversion is missing from there. [DONE] + ; FIXME: UNICODE conversion is missing from there. [DONE] ; TODO: Enable exception handler for WinCE. How? * contrib/hbwin/wapi_wingdi.c @@ -91515,7 +91554,7 @@ * GETVOLINFO() moved from hbct to xhb. * ChangeLog - * Marked some TODO/TOFIX items as DONE. + * Marked some TODO/FIXME items as DONE. 2010-02-17 01:42 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbmysql/mysql.c @@ -91960,7 +91999,7 @@ on x64 and passing/receiving unsigned longlongs to/from .dlls on both x64/x86. I couldn't found how to interact properly with HVM in this case. - Please review remaining TOFIXes. + Please review remaining FIXMEs. + contrib/hbwin/tests/testdll1.prg + contrib/hbwin/tests/testdll.c @@ -92359,7 +92398,7 @@ 2010-02-12 10:28 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbwin/win_dll.c + Reimplemented win32 .dll calls using pure C code. - ; Please review it. Especially around the few TODO/TOFIX + ; Please review it. Especially around the few TODO/FIXME notes. It would also be great of someone could make some test on WinCE platform. @@ -92380,7 +92419,7 @@ ! Fixed win64 support for returning parameters passed by reference. * ChangeLog - * Old TOFIXes marked DONE. + * Old FIXMEs marked DONE. 2010-02-11 18:17 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbwin/win_dll.c @@ -94359,7 +94398,7 @@ * config/win/mingw.mk ! Fixed to not use -fomit-frame-pointer option for debug builds. ! Hack added to disable -fomit-frame-pointer for hbwin lib. - ; TOFIX: Fix hb_Dynacall() to not be sensitive on this option + ; FIXME: Fix hb_Dynacall() to not be sensitive on this option in mingw builds. Is it possible? [DONE] 2010-02-06 16:04 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -94697,7 +94736,7 @@ wrong though. * contrib/hbfbird/tfirebrd.prg - + Added TOFIX about very old and very basic problem in the + + Added FIXME about very old and very basic problem in the FB class wrapper. 2010-02-04 12:56 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -94759,14 +94798,14 @@ % Optimized to use hb_xrealloc() instead of using subsequent hb_xfree()/hb_xgrab() calls. % Other optimizations. - + Added TOFIX to more memory leaks. + + Added FIXME to more memory leaks. ! Fixed FBGETDATA() to not crash when NULL pointer is passed. ! Fixed FBGETDATA() to not crash when negative position parameter is passed. - ; TOFIX: Convert remaining memory objects to GC collected + ; FIXME: Convert remaining memory objects to GC collected ones. Unfortunately the code is quite dirty in this respect, so it require more serious rewrite in places. - ; TOFIX: Address TOFIXes in code. + ; FIXME: Address FIXMEs in code. ; Please test it, I don't use this, and didn't make functional tests. @@ -94796,7 +94835,7 @@ * src/rtl/fstemp.c * Cleanup: Deleted hb_fsCreateTempLow(), made layout more clear. - ; TOFIX: For some builds, MS-DOS, OS/2 and WIN without WIN IO + ; FIXME: For some builds, MS-DOS, OS/2 and WIN without WIN IO the temp directory will be wrongly calculated by checking TMPDIR envvar. Such envvar seems *nix specific. If new hb_fsTempDir() will be tested, above can be fixed @@ -95632,9 +95671,9 @@ * harbour/utils/hbmk2/hbmk2.prg * updated names of xHarbour libraries - now it works in static mode - TOFIX: -xhb shared mode uses 'harbour' instead of 'xharbour' library + FIXME: -xhb shared mode uses 'harbour' instead of 'xharbour' library and 'hbmainstd' instead of 'mainstd' - TOFIX2: -gui switch in -xhb mode cause compile time error: + FIXME2: -gui switch in -xhb mode cause compile time error: /tmp/hbmk_auhl2d.c:8: error: syntax error before "void" 2010-01-24 22:28 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) @@ -96097,7 +96136,7 @@ * contrib/hbide/idethemes.prg * contrib/hbide/ideeditor.prg + Added 'sequence' and 'endsequence' to keywords. - ; TOFIX: try/catch and a few more are not Harbour keywords. + ; FIXME: try/catch and a few more are not Harbour keywords. * contrib/hbide/ideeditor.prg % Optimized low-level keyword lookup functions: @@ -96271,7 +96310,7 @@ + WAPI_SELECTOBJECT() got support for HBRUSH. * contrib/hbwin/win_prn1.c - + Added two TOFIX comments to serious security holes and potential + + Added two FIXME comments to serious security holes and potential GPFs to bitmap handling functions. Enough to load a malformed or corrupted .bmp file to exploit it. Any takers for fixing them? @@ -96584,7 +96623,7 @@ * contrib/hbwin/win_prn1.c + Added WIN_BITMAPDIMENSIONS( , @x, @y ) -> logical Based on logic found in WIN_DRAWBITMAP(). - ; TOFIX: Both of these functions may GPF is passed wrong + ; FIXME: Both of these functions may GPF is passed wrong data. I don't know how to fix it, so if you do, please help. [CANCELLED - not much to be done] @@ -96736,7 +96775,7 @@ * contrib/hbqt/hbqt.h * contrib/hbqt/hbqt_destruct.cpp - Deleted no longer used macros: hbqt_ret_*(). - + Added TOFIX to hbqt_par_*() where essentially the GC + + Added FIXME to hbqt_par_*() where essentially the GC pointer type checking is completely worked around, which makes it easy to create GPFs by passing wrong pointer type to functions. Probably its unavoidable to introduce @@ -96745,7 +96784,7 @@ parent objects, whether NULL is accepted or rejected). If not accepted a proper RTE should be thrown instead of letting the app GPF. - + Added two TOFIXes where low-level parameter + + Added two FIXMEs where low-level parameter retrieving function returns NULL. 2010-01-18 09:55 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) @@ -96911,7 +96950,7 @@ * contrib/hbfimage/fi_winfu.c * contrib/hbfimage/fi_wrp.c * Formatting. - + TOFIX added to use GC collected pointers. + + FIXME added to use GC collected pointers. 2010-01-18 11:39 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbwin/hbwin.ch @@ -97331,7 +97370,7 @@ + Using new UNICODE macros in TRUENAME(), GETVOLINFO() and VOLSERIAL(). ! GETVOLINFO(), which is not a CT function, got moved to a separate source file to avoid name collisions. - ; TOFIX: It should be moved to xhb lib eventually. [DONE] + ; FIXME: It should be moved to xhb lib eventually. [DONE] * contrib/hbct/ctnet.c * Cleaned NETREDIR() and NETRMTNAME() functions. @@ -97340,8 +97379,8 @@ + NETRMTNAME() got support to return embedded zeros in name string. + Documented a hidden xhb extension in NETREDIR(). % hb_WNetErrorHandler() static function merged into NETREDIR(). - ; TOFIX: Above hidden extension in NETREDIR() very much looks like - a debugging feature, so I left a TOFIX to convert it to + ; FIXME: Above hidden extension in NETREDIR() very much looks like + a debugging feature, so I left a FIXME to convert it to HB_TRACE() call. [DONE - differently] ; Please test them. @@ -97683,7 +97722,7 @@ ! Fixed to use HB_TRUE/HB_FALSE instead of 1/0. * contrib/gtwvg/wvgwing.c - + TOFIXes added to two suspicious boolean casts. + + FIXMEs added to two suspicious boolean casts. * contrib/hbfimage/fi_wrp.c + Added proper conversion between Harbour boolean and @@ -98649,9 +98688,9 @@ * raise error when inserting or deleting into a read-only file ! this does not apply to a created read-only file * improved argument checks - * fixed TOFIX regarding portable binary format reading/writing - * fixed TOFIX regarding a suspicious sizeof of a constant - ! TOFIX: in-memory btree's cause a fatal error; this is a work in progress + * fixed FIXME regarding portable binary format reading/writing + * fixed FIXME regarding a suspicious sizeof of a constant + ! FIXME: in-memory btree's cause a fatal error; this is a work in progress 2010-01-11 16:58 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbide/hbide.ch @@ -99560,7 +99599,7 @@ + Added autodetection of Gentoo Linux package manager. * contrib/hbbtree/hb_btree.c - + Added two TOFIX notes. Both reported on the list previously. + + Added two FIXME notes. Both reported on the list previously. 2010-01-09 02:31 UTC+0500 April White (april users.sourceforge.net) * contrib/hbbtree/tbtree.prg @@ -99611,9 +99650,9 @@ * harbour.spec + Added initialization of HB_USER_DFLAGS. - ; TOFIX: Current setup doesn't allow passing -m32 to force 32-bit + ; FIXME: Current setup doesn't allow passing -m32 to force 32-bit .rpm builds on 64-bit systems. - ; TOFIX: OpenSUSE 10.2 uses 'gpm' instead of 'gpm-devel'. + ; FIXME: OpenSUSE 10.2 uses 'gpm' instead of 'gpm-devel'. * contrib/hbqt/hbqt.hbc * contrib/hbqt/hbqts.hbc @@ -99825,7 +99864,7 @@ 2010-01-07 18:16 UTC+0100 Viktor Szakats (vszakats.net/harbour) * src/vm/extrap.c * contrib/hbwin/win_prn3.c - + Added TOFIXes for unsafe function usage: + + Added FIXMEs for unsafe function usage: IsBadWritePtr(), IsBadReadPtr(), lstrlen(), lstrcpy(), lstrcat() ; QUESTION: Any idea how to fix that? win_prn3.c can probably be fixed with some good general coding @@ -100080,7 +100119,7 @@ (such is the case on Snow Leopard). Use slightly modified tar command in this case. Please review. - ; TOFIX?: Unpacking stub script always uses 'tar', maybe this + ; FIXME?: Unpacking stub script always uses 'tar', maybe this needs to be fixed, although current command should work on Snow Leopard. [CLEARED] - Deleted comment no longer valid. @@ -100636,7 +100675,7 @@ * contrib/hbqt/qth/QApplication.qth * Minor optimizations. % One static var deleted. - ; TOFIX/TOCHECK: argv/argc usage. [DONE] + ; FIXME/TOCHECK: argv/argc usage. [DONE] * contrib/hbqt/qtgui/QApplication.cpp * contrib/hbqt/hbqt_garbage.h @@ -100644,7 +100683,7 @@ * contrib/hbxbp/xbpgeneric.prg - Deleted unused statics. - ; TOFIX: HBQT has an irregularity which I couldn't find a + ; FIXME: HBQT has an irregularity which I couldn't find a reason yet. It maintains a pointer to QApplication in a static variable on C level, plus every HBQT app maintains a copy of the QApp object in a .prg @@ -100911,7 +100950,7 @@ QT_DISCONNECT_EVENT( ... ) -> QT_EVENTS_DISCONNECT( p, ... ) QT_CONNECT_SIGNAL( ... ) -> QT_SLOTS_CONNECT( p, ... ) QT_DISCONNECT_SIGNAL( ... ) -> QT_SLOTS_DISCONNECT( p, ... ) - QT_GETEVENTFILTER() -> QT_EVENTS_PTR( p ) (there is a TOFIX here for the future) + QT_GETEVENTFILTER() -> QT_EVENTS_PTR( p ) (there is a FIXME here for the future) 4. Delete these calls: QT_EVENTS_DESTROY() QT_SLOTS_DESTROY() @@ -101025,7 +101064,7 @@ "C:/harbour/contrib/hbide/projects/myproject.hbi" Please use it. - ; TOFIX: Since hbide seems to intend to support a hbrun-like + ; FIXME: Since hbide seems to intend to support a hbrun-like command prompt, maybe it's a good idea to prefix all public functions with hbide_, otherwise there will be problems when name collision occurs with user code. @@ -101081,8 +101120,8 @@ ! Deleted .exe extension from output name for portability. ! Fixed -workdir option to also have ${hb_plat} macro for portability. ; Pls remember that hbide is meant to be a portable tool. - ; TOFIX: Delete -workdir option altogether. Not needed. [DONE] - ; TOFIX: Hard-wired dir C:\qt\2009.01\qt\lib should be stored in + ; FIXME: Delete -workdir option altogether. Not needed. [DONE] + ; FIXME: Hard-wired dir C:\qt\2009.01\qt\lib should be stored in SVN. [DONE] 2010-01-02 02:28 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -101100,12 +101139,12 @@ * Reordered RPM sections alphabetically. ! Fixed typo in extra RPM decription. ; TODO: Enable above sections. [DONE] Test. - ; TOFIX: gtalleg is already added in some special way, which pbly needs to be removed. [DONE] - ; TOFIX: OpenSSL dependency is never set. + ; FIXME: gtalleg is already added in some special way, which pbly needs to be removed. [DONE] + ; FIXME: OpenSSL dependency is never set. * INSTALL + Added --with cairo - + Added --with freeimage (with TOFIX markup) + + Added --with freeimage (with FIXME markup) * Reordered --with options alphabetically. [TOMERGE 2.0] @@ -101261,11 +101300,11 @@ * harbour/src/codepage/cpsl437.c ! fixed unicode table used in HR437 and SL437 Harbour CPs. It's not CP-437 but YUSCII - - removed my old note "TOFIX: is it really CP-437?" - TOFIX: change Harbour names of above CPs, i.e. to HRYU and SLYU + - removed my old note "FIXME: is it really CP-437?" + FIXME: change Harbour names of above CPs, i.e. to HRYU and SLYU * harbour/src/codepage/uckam.c - * removed TOFIX note I forgot to remove when committed correct + * removed FIXME note I forgot to remove when committed correct Kamenicky Unicode table. * harbour/src/codepage/uckoi8.c @@ -101394,7 +101433,7 @@ * src/common/hbtrace.c - Deleted hack to disable winout to avoid recursive calls. - + Added TOFIX to avoid recursive calls with some clever + + Added FIXME to avoid recursive calls with some clever detection on error case (hb_xtracd() && no_of_formatt_strings > 16) I didn't implement it, pls do so if interested. ! Fixed MultiByteToWideChar sizeof() to HB_SIZEOFARRAY(). @@ -101417,7 +101456,7 @@ 2009-12-28 10:11 UTC+0100 Viktor Szakats (vszakats.net/harbour) * src/common/hbtrace.c - * Deleted TOFIX for va_end(). It's not required (and wasn't + * Deleted FIXME for va_end(). It's not required (and wasn't ever required there) since there is no va_start() call in hb_tracelog_() function at all. @@ -101452,7 +101491,7 @@ ; Tested with both WinDbg and DbgView. [TOMERGE 2.0] - ; TOFIX: + ; FIXME: va_end() has been commented for all platforms, although it's required by all documentation I could verify. If this causes problems for specific platforms/compilers, @@ -101466,7 +101505,7 @@ * src/common/hbtrace.c ! Formatting. ! Fixed to use HB_ISSPACE(). - ; NOTE/TOFIX: Anyhow I think last patch should be reverted to not manipulate + ; NOTE/FIXME: Anyhow I think last patch should be reverted to not manipulate passed by user string before passing it to Windows. Plus current anti-reentrancy logic should be changed to something robust, as current solution drops trace messages which is a very @@ -101965,7 +102004,7 @@ + Cleaned tests to avoid multiple symbols and much simpler interdependencies. ! Removed extra test.dbf and what32 dependency. - ; TOFIX: Due to public symbol collisions, this GTWVW it's + ; FIXME: Due to public symbol collisions, this GTWVW it's probably not possible to use it with gtwin lib. ; NOTE: GTWVW is limited to non-UNICODE, non-C++, 32-bit Windows (no WinCE) builds, and for a clean compiler @@ -102029,7 +102068,7 @@ 2009-12-22 00:15 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbbtree/hb_btree.c ! Cleaned code to compile without warning on BCC. - ; TOFIX: ? This code looks suspicious, pls check it: + ; FIXME: ? This code looks suspicious, pls check it: --- pHeader += sizeof( HEADER_ID ) - 1; pHeader += sizeof( ( UINT32 ) HB_BTREE_HEADERSIZE ); @@ -102129,7 +102168,7 @@ + Enabled -hbdyn support for dos/djgpp. Blind coding, not tested. * ChangeLog - + TODOs/TOFIXes marked as done. + + TODOs/FIXMEs marked as done. 2009-12-21 15:46 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/vm/Makefile @@ -102164,7 +102203,7 @@ * contrib/hbbtree/hb_btree.c * formatting - removed internal history (changelog) text - - fixed TOFIX: casting pointer to ULONG! + - fixed FIXME: casting pointer to ULONG! * this was corrected in Changelog 13312 2009-12-19 15:32:24Z april * opening a file with read-only attribute now succeeds when the read-only flag is given @@ -102244,7 +102283,7 @@ * contrib/hbqt/hbqt_destruct.cpp * Minor formatting. ('return( x )' -> 'return x', return is not a function) + Added 'TODO:' to todo text. - + Added TOFIX to hb_parptr() usage. Without reference counting this is + + Added FIXME to hb_parptr() usage. Without reference counting this is still dangerous. Probably some mechanisms would be needed to count references when attaching one GC collected pointer to another object, and decrement @@ -102285,16 +102324,16 @@ 2009-12-20 11:53 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbqt/hbqt_hbqtableview.cpp - % Fixed one TOFIX. + % Fixed one FIXME. * contrib/hbqt/hbqt_destruct.cpp - % Fixed one TOFIX. + % Fixed one FIXME. * contrib/hbqt/hbqt_events.cpp - % Fixed one TOFIX. + % Fixed one FIXME. * contrib/hbqt/hbqt_slots.cpp - % Fixed one TOFIX. + % Fixed one FIXME. Please review me, though everything is working fine. @@ -102330,8 +102369,8 @@ + Added logic to detect UNICODE mode. Enabled only in win64. ! One regression fixed in previous version (in non-win64 mode). ! Fixed default return to be the same in win64 as in non-win64 mode. - ; TOFIX: Strings passed by reference seems to be wrong. [DONE] - ; TOFIX: UNICODE support for string passed by reference doesn't work. [DONE] + ; FIXME: Strings passed by reference seems to be wrong. [DONE] + ; FIXME: UNICODE support for string passed by reference doesn't work. [DONE] ; Please test/review and contribute to this, current state is pretty much the extent I'm willing and capable of implementing this. @@ -102636,9 +102675,9 @@ ! Fixed some public C functions to hold hbqt_ prefix, instead of using generic names. ! Added one missing 'extern' keyword. - + Added TOFIX for QT_HBQTABLEVIEW_NAVIGATE() which + + Added FIXME for QT_HBQTABLEVIEW_NAVIGATE() which has a remaining leak of one typical type. - ; TOFIX: Do the same with gcFuncs(). [DONE] + ; FIXME: Do the same with gcFuncs(). [DONE] 2009-12-17 22:24 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbide/hbide.prg @@ -102747,7 +102786,7 @@ HBXBP. All in all, this means the .prg level :pPtr trick is still needed in some places, while it's not needed in some others. - ; TOFIX: HBQT has no pointer checking at all before accessing + ; FIXME: HBQT has no pointer checking at all before accessing C++ level objects, which means the simplest .prg level error is instantly resulting in a GPF. All hb_par_*() results must be checked for NULL before accessing them, @@ -103466,7 +103505,7 @@ ! Fixed missing SVN props. ! Added missing SVN ID. * Formatting. - ; TOFIX: This example expects arrays and logical value from command line, + ; FIXME: This example expects arrays and logical value from command line, so it won't work. [DONE] 2009-12-12 15:46 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -103532,7 +103571,7 @@ New version does not use old HB_TCHAR_*() API and respect multiple quoting by "" (i.e. .\"myapp"li"cation".exe) - TOFIX: WIN_ANSITOWIDE() and WIN_WIDETOANSI() are wrong and have + FIXME: WIN_ANSITOWIDE() and WIN_WIDETOANSI() are wrong and have to be fixed. Please remember that number of character after conversion to/from UNICODE can be different then original number of chars, i.e. multibyte characters @@ -103758,12 +103797,12 @@ + Using new UNICODE parameter passing macros instead of HB_TCHAR*() ones. * Minor rework WIN_TEXTOUT() and WIN_GETTEXTSIZE() to not use hb_parclen() and protect some more against wrong length parameter. - ; TOFIX: HB_ARRAYSETSTR() usage crashes (tested in non-UNICODE with testprn3) + ; FIXME: HB_ARRAYSETSTR() usage crashes (tested in non-UNICODE with testprn3) I didn't want to undo the whole thing, but can't find the err either. [DONE] - ; TOFIX: hb_parclen() usage. [DONE] - ; TOFIX: HB_ARRAYSETSTR() with NULL string parameter. [DONE] - ; TOFIX: HB_PARSTRDEF() to really default to empty string for non-string params. [DONE] + ; FIXME: hb_parclen() usage. [DONE] + ; FIXME: HB_ARRAYSETSTR() with NULL string parameter. [DONE] + ; FIXME: HB_PARSTRDEF() to really default to empty string for non-string params. [DONE] ; TODO: Remaining HB_TCHAR_*() usages. [DONE - except GTWVG] ; TODO: Peer-review what I did. [DONE] @@ -103786,7 +103825,7 @@ ! Deleted no more needed init calls. * contrib/hbqt/hbqt_events.cpp - + Added TOFIX about GC collected pointer stored in low level + + Added FIXME about GC collected pointer stored in low level structure. (source of GPF). * contrib/hbwin/win_misc.c @@ -103802,7 +103841,7 @@ F.e. OpenPrinter() has apparently wrong winapi declaration, so a cast must have been added. - ; TOFIX: CreateProcessW() second parameter has to be a read/write + ; FIXME: CreateProcessW() second parameter has to be a read/write buffer. Przemek, do you have an idea how to solve that the cleanest way? (for now I kept a cast, assuming that a buffer is @@ -103844,7 +103883,7 @@ * contrib/hbqt/hbqt_events.cpp * contrib/hbqt/hbqt_slots.cpp * contrib/hbqt/hbqt_hbqmainwindow.cpp - + Added TOFIX (also one QUESTION) to these code parts. + + Added FIXME (also one QUESTION) to these code parts. All of them are potential leak or GPF generator issues. Could someone take a look at these? @@ -104083,7 +104122,7 @@ - MyMainWindow -> HBQMainWindow - HbTableView -> HBQTableView (HBXBP) - ; TOFIX: These classes seem to be the problematic parts of HBQT. + ; FIXME: These classes seem to be the problematic parts of HBQT. They violate layering, there are naming inconsistencies (standard QT .prg level class internally refers to inherited special Harbour class, they implement HBXBP and IDE functionality @@ -104780,8 +104819,8 @@ to guarantee its present. Anyhow current method is still not safe. % Cleaned some casts. - ; TOFIX: mutex initialization in MyMainWindow. [DONE] - ; TOFIX: MyMainWindow is a leakable resource and it _is_ + ; FIXME: mutex initialization in MyMainWindow. [DONE] + ; FIXME: MyMainWindow is a leakable resource and it _is_ leaked from hbxbp. [DONE] * contrib/hbxbp/xbpsle.prg @@ -104807,8 +104846,8 @@ readded similarly if ever needed. ! Mutex destroy moved to the end of EXIT PROC, anyway it's still not safe and should be solved differently. - (TOFIX) - ; TOFIX: hbxbp_SetEventFilter() is passed to several function, + (FIXME) + ; FIXME: hbxbp_SetEventFilter() is passed to several function, but this function has no return value. [DONE] * contrib/hbcairo/core.c @@ -104830,7 +104869,7 @@ * contrib/hbqt/hbqt_slots.cpp ! Fixed to check for NULL pointer and return error in QT_CONNECT_EVENT() and QT_DISCONNECT_EVENT() and MyMainWindow desctructor. - ; TOFIX: Passing non-block to QT_MYMAINWINDOW() first parameter will cause GPFs. + ; FIXME: Passing non-block to QT_MYMAINWINDOW() first parameter will cause GPFs. [MIS-REPORT] * contrib/hbxbp/tests/demoxbp.prg @@ -104927,9 +104966,9 @@ * contrib/hbqt/Makefile * Formatting (some of these generated long lines, but for now I had to see what's happening in code) - * Moved out some classes from hbqt_slots.cpp. (TODO/TOFIX: renaming, moving declarations) + * Moved out some classes from hbqt_slots.cpp. (TODO/FIXME: renaming, moving declarations) ! Fixed missing hb_vmRequestRestore() calls. (lots) - + Added TOFIX hbqt_gcpointer(); + + Added FIXME hbqt_gcpointer(); % Certain functions marked static. % Optimized out listActv vars. - Deleted commented code. @@ -105068,7 +105107,7 @@ accepts a default value to be used when non-string parameter was passed. (to replace old hb_parcx() calls). Is it possible to add such function or any other ways to solve that? - ; TOFIX: I'm getting this warning: + ; FIXME: I'm getting this warning: warning: implicit declaration of function 'hb_setGetOSCP' and it's probably too late, but I couldn't find a way to include hbset.h without errors or with least side-effects. @@ -105332,7 +105371,7 @@ % Elminiated HB_ISBYREF() call. Not needed. ! Fixed to use hb_strncat() instead of strcat(). ! Fixed unsafe '!' oparator usage. (MSVC C++ warning) - ; TOFIX: There is still one unsafe strncpy() usage, but I can't fix it. + ; FIXME: There is still one unsafe strncpy() usage, but I can't fix it. Anyone? [DID IT] 2009-12-05 15:14 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -106453,7 +106492,7 @@ free to modify) * ChangeLog - * TOFIX marked as DONE. + * FIXME marked as DONE. * contrib/hbwin/win_regc.c * Variable name prefix fixes. @@ -107281,7 +107320,7 @@ * contrib/hbwin/win_prn2.c * Using HB_BOOL for Harbour variables. * Few minor cleanups. - ; TOFIX: CreateFile() is used in one place instead of Harbour + ; FIXME: CreateFile() is used in one place instead of Harbour File I/O. Anyone? [DONE] 2009-11-22 21:29 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -107367,7 +107406,7 @@ of Windows one to read from a disk file. * More variable name / macro usage cleanup. - ; TOFIX: PRINTFILERAW() has suspicious code aiming to delete + ; FIXME: PRINTFILERAW() has suspicious code aiming to delete Chr( 26 ) from input files. In current implementation it can strip Chr( 26 ) even from inside the file if the file is larger than read buffer, which means it will corrupt input @@ -107390,14 +107429,14 @@ * harbour/src/vm/dlmalloc.c * modifications for non MS-Windows WATCOM builds - TOFIX: now it compiles in Linux and OS2 builds but it still does not + FIXME: now it compiles in Linux and OS2 builds but it still does not work [DONE] 2009-11-22 12:29 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbwin/win_prn2.c * Variables renamed to reflect their types. * Further cleanups. - + Added TOFIX to use Harbour IO instead of win to read a disk file. [DONE] + + Added FIXME to use Harbour IO instead of win to read a disk file. [DONE] * Changed to use HB_SIZE instead of ULONG for string lengths/sizes. + Added HB_SIZE casts to silence 64-bit warnings (to two places). @@ -107487,7 +107526,7 @@ * config/darwin/clang.mk ! Attempt to fix darwin dylib generation, added lib prefix to install name parameter. - ; TOFIX: Adding path to lib reference still doesn't work, + ; FIXME: Adding path to lib reference still doesn't work, so shared binaries will still not work unless Harbour is installed to system location. @@ -108731,7 +108770,7 @@ * contrib/hbmzip/hbmzip.c * Minor formatting. - ; NOTE/TOFIX: Here there is again 'int' used as error code. + ; NOTE/FIXME: Here there is again 'int' used as error code. * contrib/rddsql/sddodbc/tests/test1.prg * contrib/rddsql/sddodbc/tests/test2.prg @@ -110004,7 +110043,7 @@ + src/codepage/cpes850m.c + src/codepage/cpfr850m.c + Added mdx*.obj compatible CPs, created by cpinfo.prg. - ; TOFIX: I didn't added mdxuk and mdxusa, simply because + ; FIXME: I didn't added mdxuk and mdxusa, simply because it cannot fit in current filename scheme, which uses only two chars to denote language. @@ -110039,13 +110078,13 @@ cpnl850 cpno865 cppt860 - TOFIX: Any mistakes in above. + FIXME: Any mistakes in above. * codepage/Makefile - codepage/cpsvclip.c + codepage/cpsv437c.c * Renamed to use naming scheme like all others. - ; TOFIX: 437 is most certainly wrong CP assigment, and + ; FIXME: 437 is most certainly wrong CP assigment, and it should probably be 850 or 865. * codepage/cpfr850.c @@ -110130,7 +110169,7 @@ * src/codepage/cphuiso.c * src/codepage/cphuwin.c * Updated comments. - ; TOFIX: Remove or not remove ASCII 196/228 char pair? + ; FIXME: Remove or not remove ASCII 196/228 char pair? It's not a Hungarian accented char, it was present in sixhu852, but since we don't have any obligations to keep compatibility as the CP is different anyway, @@ -110164,7 +110203,7 @@ 2009-11-09 21:18 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/ChangeLog - * marked last TOFIX note as [DONE] - thanks to Mindaugas + * marked last FIXME note as [DONE] - thanks to Mindaugas * harbour/src/rtl/cdpapi.c * use 1-st upper<->lower conversion pair instead of last one @@ -110378,7 +110417,7 @@ * harbour/contrib/rddads/adsx.c * harbour/contrib/rddsql/sqlmix.c * updated to work with new CDP API - TOFIX: update adsx.c and sqlmix.c to use hb_cdpcmp() which resepcts + FIXME: update adsx.c and sqlmix.c to use hb_cdpcmp() which resepcts sorting with accented and mulitybyts characters. Mindaugas, can you update above code? [DONE] @@ -111092,7 +111131,7 @@ 2009-11-01 17:02 UTC+0100 Viktor Szakats (vszakats.net/harbour) * include/hbdefs.h - * Changed HB_SIZE to ULONG. Added TOFIX to later change it + * Changed HB_SIZE to ULONG. Added FIXME to later change it to 'long'. With its current setup it's possible to gradually change 'ULONG' usages to 'HB_SIZE' when used as string/array length ot index. This can be a gradual process. @@ -111100,7 +111139,7 @@ 2009-11-01 16:58 UTC+0100 Viktor Szakats (vszakats.net/harbour) * include/hbdefs.h + Added HB_MAX[U]INT as new name for HB_[U]LONG. - + Added HB_[U]LONG to new type list with TOFIX note. + + Added HB_[U]LONG to new type list with FIXME note. * Changed HB_ATTR to not rely on Windows type. - Deleted hb[Type] style types from planning. @@ -111602,7 +111641,7 @@ - Deleted __XHARBOUR__ guarded parts (related to C structure handling, probably never tested, plus it didn't look something mature anyway) - ; TOFIX: win64 .dll support, strangely testdll gives slightly + ; FIXME: win64 .dll support, strangely testdll gives slightly different results for BCC and MSVC builds (and MINGW builds where it GPFs), also UNICODE isn't supported at all. So I guess Harbour .dll handling would better be rewritten. @@ -112811,9 +112850,9 @@ ; TODO: Since now QT detection .mk code will be replicated in 10 places, this will have to be optimized. [DONE] - ; TOFIX: static mode. [DONE] + ; FIXME: static mode. [DONE] - ; TOFIX: I'm getting a compile error, so could check the whole build run yet: [DONE] + ; FIXME: I'm getting a compile error, so could check the whole build run yet: [DONE] --- hbqt_slots.cpp ../../../hbqt_slots.cpp(1787) : error C2065: 'str' : undeclared identifier @@ -112821,7 +112860,7 @@ ../../../hbqt_slots.cpp(1787) : error C2070: ''unknown-type'': illegal sizeof operand ../../../hbqt_slots.cpp(1787) : error C2065: 'str' : undeclared identifier --- - ; TOFIX: I saw these warnings in almost all tested .cpp files: [DONE] + ; FIXME: I saw these warnings in almost all tested .cpp files: [DONE] --- ../../../QWebSettings.cpp(86) : warning C4100: 'Cargo' : unreferenced formal parameter --- @@ -114101,7 +114140,7 @@ * Renamed few macros in hbwin / win_com implementation: FCN* -> WIN_COM_FUN_* WPDBG* -> WIN_COM_DBG_* - ; TOFIX: Some errors are left in hbgd/test_out.prg and + ; FIXME: Some errors are left in hbgd/test_out.prg and gtwvg to be fixed, now the can't be built. Please do it. @@ -114168,7 +114207,7 @@ * contrib/hbbtree/tests/hbmk.hbm + Added -w3 Harbour switch to all test dirs. (in few places just formatted because it was there) - ; TOFIX: All tests should be eventually made fully + ; FIXME: All tests should be eventually made fully warning free, so in the future expect -es2 switch to be added as well. [DONE] @@ -114875,7 +114914,7 @@ + Added more provision for inctrypath handling in conjunction with new dependency checking techniques. Still doesn't work though. - ; TOFIX: inctrypath with new dependency checking techniques. + ; FIXME: inctrypath with new dependency checking techniques. ; Please test .d support. ; NOTE: As for different fallback techniques when .d files are used, well, maybe this should be somehow signaled on a .d file basis, @@ -114885,7 +114924,7 @@ 2009-10-15 10:03 UTC+0200 Viktor Szakats (vszakats.net/harbour) * src/rtl/filesys.c ! hb_fsIsDrv() changed on win platform to use GetLogicalDrives() API - instead of GetDriveTypeA(). This should fix existing TOFIX. + instead of GetDriveTypeA(). This should fix existing FIXME. Thanks for Saulius Zrelskis for the suggestion. I'd like to ask users to make side-by-side comparisons with CA-Cl*pper to see if we're compatible. @@ -115206,7 +115245,7 @@ ! Fixed wrongly referring to 7-bit encoding. ! Fixed some more hardcoded charsets. + Added support for user-selectable encoding. - ; TOFIX: Still doesn't work for some reason. [DONE] + ; FIXME: Still doesn't work for some reason. [DONE] * contrib/hbtip/encqp.prg * contrib/hbtip/mail.prg @@ -115348,7 +115387,7 @@ 2009-10-09 22:22 UTC+0200 Viktor Szakats (vszakats.net/harbour) * ChangeLog - * Marked TODO/TOFIX items as DONE. + * Marked TODO/FIXME items as DONE. * utils/hbmk2/hbmk2.prg % Cleaned -KPIC option handling. @@ -115402,7 +115441,7 @@ * contrib/hbsqlit3/hbsqlit3.ch * Formatting. - ; TOFIX: ? What is the meaning of this snippet in the header: + ; FIXME: ? What is the meaning of this snippet in the header: --- #ifdef SQLITE_TEXT #undef SQLITE_TEXT @@ -116566,7 +116605,7 @@ ! Fixed strcpy() call to hb_strncpy(). Review me I didn't check if the set length limit is a valid one. ! Fixed C++ casting errors on buffer allocation calls. - ; TOFIX: These warnings remain: + ; FIXME: These warnings remain: --- ../../../memio.c(170) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data ../../../memio.c(423) : warning C4244: '=' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data @@ -116807,8 +116846,8 @@ ! Fixed to add /usr/X11R6/lib64 dir to libpath list on linux targets only. (sync with similar guard in sunpro compiler support) - ; TOFIX: This leaves the GPF in sunpro/linux on the pending list. - ; TOFIX: And here comes to mind that mingw64 also GPFs in shared mode. + ; FIXME: This leaves the GPF in sunpro/linux on the pending list. + ; FIXME: And here comes to mind that mingw64 also GPFs in shared mode. 2009-09-20 16:31 UTC+0200 Viktor Szakats (vszakats.net/harbour) * utils/hbmk2/hbmk2.prg @@ -116980,7 +117019,7 @@ Error! E2030: file clib3r.lib(cstart): multiple starting addresses found mingw32-make.exe[2]: *** [harbour] Error 1 --- - ; TOFIX: hbpp object will be (or is) again a showstopper. + ; FIXME: hbpp object will be (or is) again a showstopper. * config/win/watcom.mk * Synced with dos/watcom.mk after above change. @@ -117095,7 +117134,7 @@ * INSTALL + Added experimental support for HB_BUILD_SHARED=yes setting, which tells GNU Make to create shared Harbour tool executables. - ; TOFIX: watcom for sure needs to be fixed. [DONE] + ; FIXME: watcom for sure needs to be fixed. [DONE] 2009-09-19 14:47 UTC+0200 Viktor Szakats (vszakats.net/harbour) * utils/hbmk2/hbmk2.prg @@ -117451,7 +117490,7 @@ HB_CRS_LIB -> HB_LIBNAME_CURSES HB_SLN_LIB -> HB_LIBNAME_SLANG (this one is not honored by GNU Make system) - ; TOFIX: Honor HB_LIBNAME_SLANG in GNU Make system? Is that + ; FIXME: Honor HB_LIBNAME_SLANG in GNU Make system? Is that needed in some cases? * config/dos/djgpp.mk @@ -117680,7 +117719,7 @@ 2009-09-16 09:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/ChangeLog - - removed TOFIX note - already fixed + - removed FIXME note - already fixed 2009-09-16 09:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/bin/hb-func.sh @@ -118137,7 +118176,7 @@ to WIN_COM*(). INCOMPATIBLE. ! Added missing DWORD casts to -1 values. * Slightly renamed Win_ComSetTimeouts() and made it static. - ; TOFIX: I had to comment out WIN_COMINIT() function since HB_INITFUNC() + ; FIXME: I had to comment out WIN_COMINIT() function since HB_INITFUNC() doesn't exist in Harbour. [DONE] 2009-09-11 11:35 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -118830,8 +118869,8 @@ in this case. - hbmk2 will use local builds of these libs if they are present in lib dir. - ; TOFIX: hbmk script. [DONE] - ; TOFIX: dos builds. cmdline lenghts are most probably too big for them. + ; FIXME: hbmk script. [DONE] + ; FIXME: dos builds. cmdline lenghts are most probably too big for them. ; NOTE: Bumps are expected. ; NOTE: I've yet to test/verify it. @@ -118849,7 +118888,7 @@ * Renamed HB_XBUILD to HB_BUILD_EXTDEF=no[|yes]. Not the perfect name, but anyway. + Documented HB_BUILD_EXTDEF setting. - ; TOFIX: There is an HB_XBUILD reference in mpkg_tgz.sh which + ; FIXME: There is an HB_XBUILD reference in mpkg_tgz.sh which I couldn't correct. * Makefile @@ -119316,7 +119355,7 @@ + added workaround for problem with shared linking in gui mode caused by wrong import library in MinGW builds - without it hb* scripts can work only with pure .DLLs - TOFIX: shared linking in gui mode does not work in hbmk2 at least + FIXME: shared linking in gui mode does not work in hbmk2 at least with MinGW cross builds I have in my Linux box, i.e.: /*** tst.prg ***/ ? "TEST"; WAIT @@ -119331,7 +119370,7 @@ + Added -hbdyn support for gcc family of compilers. (very light testing with mingw) + Added sunpro compiler support. (not tested, bazaar style) ! Basic CPU detection fixed for clang. - + Added TOFIX for CPU detection for *nix based gcc, icc, clang, sunpro + + Added FIXME for CPU detection for *nix based gcc, icc, clang, sunpro compilers. * config/wce/mingwarm.mk @@ -119380,7 +119419,7 @@ + Added experimental support for clang compiler frontend on Snow Leopard + new XCode systems. (it's unclear which of them exactly is required for this feature) - ; TOFIX: '__attribute (( flatten ))' is complained about by clang. [DONE] + ; FIXME: '__attribute (( flatten ))' is complained about by clang. [DONE] 2009-09-08 12:09 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/thread.c @@ -120827,7 +120866,7 @@ sandboxes (exported/nightly/other dl) it will display 'exported'. It will also show if there was any local modifications done by appending an 'M' to revno. - * TOFIX -> NOTE + * FIXME -> NOTE * source/Makefile % Minor to recent. @@ -120882,7 +120921,7 @@ * Updating pending item status. * contrib/hbbtree/hb_btree.c - ! Added TOFIX about bad bug. (hitting win64, maybe more) + ! Added FIXME about bad bug. (hitting win64, maybe more) Reported on the list a while ago. * utils/hbmk2/hbmk2.prg @@ -121230,7 +121269,7 @@ 2009-08-24 16:37 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/config/global.mk ! fixed MinGW cross build autodetection - TOFIX: find_in_path_par do not work for paths separated by spaces + FIXME: find_in_path_par do not work for paths separated by spaces due to $(substpat) trick 2009-08-24 14:50 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -121914,7 +121953,7 @@ + Added version macros similar to include/hbver.h ones. % Using above version macros accross the build system. + Bumped minimum GNU Make version requirement to 3.81 (from 3.78). - If there is no negative feedback I'll clean some TOFIXes + If there is no negative feedback I'll clean some FIXMEs which no longer apply, plus start cleanup on the make sources to use more ideal 'else if' syntax. + Added commented 'cp' tool check on os2. @@ -122034,7 +122073,7 @@ - the rule will become empty, igniting a confusing GNU Make message. - strange behavior when using 'CLEAN INSTALL' - $(RM) stayed at default value in one /source/pp/Makefile rule. - ; TOFIX: dos/os2 rules are still slightly wrong because of similar problems, + ; FIXME: dos/os2 rules are still slightly wrong because of similar problems, and there 'if [not] exist' isn't a working option either, so we will need to think about something, like splitting clean rules to two levels internally, or more make function tricks. @@ -122256,7 +122295,7 @@ without it the dynamic hbpp obj deletion didn't work. Which GNU Make syntax rules am I forgetting? Any hints? - ; TOFIX: Another issue has shown its ugly head, here clean + ; FIXME: Another issue has shown its ugly head, here clean in hbpp shows error message from 'del' command on nt shell deleting the .exe (and .tds), despite the file is there and we're doing wildcard check too. @@ -122318,7 +122357,7 @@ - Deleted batch script to create .dlls. Now done from GNU Make system. This means it work on all shells we support, not just nt ones. - ; TOFIX: Delete win-based gcc family support from hb-mkdyn.sh, + ; FIXME: Delete win-based gcc family support from hb-mkdyn.sh, now it's redundant. 2009-08-21 13:46 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -122327,7 +122366,7 @@ Please test. I don't have access to OS/2. ; 'if exist' and 'if not exist' are now only used from globsh.mk nt and os2 shell sections. - ; TOFIX: $(COMSPEC) still in OS/2 section. Test results would be + ; FIXME: $(COMSPEC) still in OS/2 section. Test results would be welcome without it. [DONE] 2009-08-21 13:34 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -122685,7 +122724,7 @@ to Harbour. + Some modifications, added hbmk2 make files, did a few other cleanup. - ; TOFIX: 'const' fixes revealed a few HVM corruption + ; FIXME: 'const' fixes revealed a few HVM corruption problems in original source. These have yet to be fixed. @@ -122758,7 +122797,7 @@ + Updated cross-build matrix to not show some dos/os2 builds fully untested. They should now work in a generic sence. - ; TOFIX: watcom rules should be synced across platforms to use + ; FIXME: watcom rules should be synced across platforms to use shell specific tricks according to HB_SHELL excpect assuming it being the host native one. F.e. watcom/dos -> os2 builds will end with: @@ -123085,7 +123124,7 @@ * config/readme.txt + Added link to DJGPP echo tool. - ; TOFIX: This isn't the echo tool which is currently included + ; FIXME: This isn't the echo tool which is currently included in SVN, but points to the place where other dj-*.exes came from. [DONE] @@ -123205,7 +123244,7 @@ (*): Theoretically possible, but not heard of such build yet. * contrib/rddads/adsfunc.c - + Added TOFIX to a very old typo in ADSDDREMOVETABLE() which + + Added FIXME to a very old typo in ADSDDREMOVETABLE() which makes it require a dummy variable to be passed as 3rd parameter. 2009-08-18 13:08 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -123843,7 +123882,7 @@ * config/globsh.cf + 'clean' now deletes pkg// dir. This ensures that package creation always starts with a fresh empty dir. - Resolves existing TOFIX (marked DONE). + Resolves existing FIXME (marked DONE). 2009-08-16 09:39 UTC+0200 Viktor Szakats (vszakats.net/harbour) * config/global.cf @@ -124090,7 +124129,7 @@ Simply pass these flags to make executable (or .sh scripts) * config/global.cf - + Added some TODO/NOTE/TOFIX about GNU Make version compatibility + + Added some TODO/NOTE/FIXME about GNU Make version compatibility of some feature we're using. + Showing MAKEFLAGS. % Using MAKEFLAGS for --no-print-directory trick. @@ -124166,9 +124205,9 @@ Best would be to integrate them to postinst.sh. * INSTALL - + Added TOFIX to one example: djgpp with NT shell will choke on + + Added FIXME to one example: djgpp with NT shell will choke on too long cmdline when building external/libhpdf. - ; TOFIX: see above. (if possible. If it's too complicated we + ; FIXME: see above. (if possible. If it's too complicated we should simply drop this scenario, after all DJGPP GNU Make also works well. [DONE] @@ -124424,7 +124463,7 @@ * contrib/hbtip/Makefile * contrib/hbssl/Makefile + Relying on central OpenSSL detection logic. - ; TOFIX: For hbmk2 hbssl.hbc should be added explicitly to the + ; FIXME: For hbmk2 hbssl.hbc should be added explicitly to the cmdline yet. [DONE] * config/instsh.cf @@ -124566,7 +124605,7 @@ build into. * Moved most of the old logic to GNU Make level, so the batch file is very simple now. - ; TOFIX: Whole removal of above dir should be solved to avoid + ; FIXME: Whole removal of above dir should be solved to avoid leftover old files to be included in the release packages. Ideas are welcome. [DONE] ; TODO: Integrate into postinst.bat. [DONE] @@ -124636,7 +124675,7 @@ ; TODO: Revise starter .sh scripts. [DONE] ; TODO: mpkg_gnu.bat rework to run from postinst. [DONE] ; TODO: Do some cleanup, remove redundancy in settings, etcetc. [DONE] - ; TOFIX: Fix watcom .dll generation. [DONE - the rules are only + ; FIXME: Fix watcom .dll generation. [DONE - the rules are only overridden for linux host builds, where .dll generation isn't supported anyway, so I didn't touch it.] @@ -126442,7 +126481,7 @@ but the old behaviour can be restored if there was a reason for it which overlooked. * Formatting. - ; TOFIX: hbtip currently has two different facilities to find out the + ; FIXME: hbtip currently has two different facilities to find out the MIME type of a given extension: TIP_FILEMIMETYPE() and HB_SETMIMETYPE(). First one also looks into the content while the second one has a much more extensive extension based @@ -126685,7 +126724,7 @@ * contrib/hbwin/Makefile ! Including 'global.cf' directly to make HB_ARCHITECTURE/HB_COMPILER variables work in case we're relying on autodetection. - ; TOFIX: Rest of Makefiles. [DONE] + ; FIXME: Rest of Makefiles. [DONE] * config/global.cf + Added self-inclusion check to allow adding this .cf file @@ -127323,7 +127362,7 @@ (they are not compatible) * contrib/hbwin/wce_smsc.c - ! Added TOFIX for an lstrcpy() function. This is unsafe + ! Added FIXME for an lstrcpy() function. This is unsafe and can easily cause buffer overrun. Until someone fixes this properly, I've added a workaround where input string length is checked to be smaller than approriate @@ -127377,7 +127416,7 @@ * config/linux/sunpro.cf ! Fixed to include gpm lib. - ; TOFIX: linux/sunpro linking dies on: + ; FIXME: linux/sunpro linking dies on: ../../../../../lib/linux/sunpro/libhbpcre.a(pcrecomp.o): In function `check_auto_possessive': pcrecomp.c:(.text+0x2952): undefined reference to `.CG4A.3263' pcrecomp.c:(.text+0x2959): undefined reference to `.CG4A.3263' @@ -128140,7 +128179,7 @@ Some C RTL functions in msvc64 expects file handles as 'int's. The rest is some non-critical stuff. Now only size_t to int/ULONG warnings remain in hbrtl. - ; TOFIX: Plus these two: + ; FIXME: Plus these two: ../../../hbstrfmt.c(459) : warning C4244: 'argument' : conversion from '__int64' to 'ULONG', possible loss of data ../../../hbtoken.c(280) : warning C4244: '=' : conversion from '__int64' to 'ULONG', possible loss of data @@ -128435,7 +128474,7 @@ * contrib/hbssl/evpciph.c + EVP_OPENINIT(), EVP_OPENUPDATE(), EVP_OPENFINAL() (not tested yet) - ; TOFIX: EVP_SEALINIT() - does something nasty with memory. + ; FIXME: EVP_SEALINIT() - does something nasty with memory. * contrib/hbssl/ssl.c ! MSVC cast/warning. @@ -129248,7 +129287,7 @@ * make_gnu.sh * config/global.cf + Readded HB_GPM_MOUSE detection to starter script. - ; TOFIX: This logic should be moved to GNU Make global.cf. [DONE] + ; FIXME: This logic should be moved to GNU Make global.cf. [DONE] + Readded HB_COMMERCE logic but now to global.cf, to deal with Harbour-wide settings, currently this is only HB_GPM_MOUSE. lib-specific HB_COMMERCE issues should be @@ -129429,10 +129468,10 @@ * OS/2 $(CP) command changed to contain CMDPREF. This causes a little change in .c to .yyc rule, at the same time it syncs this shell with others. I hope it's harmless. - ; TOFIX: install dir creation doesn't work for dos shells. + ; FIXME: install dir creation doesn't work for dos shells. Anyone knows a trick to create a multilevel dir in plain DOS? (aka mkdir -p) [DONE] - ; TOFIX: dos/watcom does this: (should we force native harbour compiler?) + ; FIXME: dos/watcom does this: (should we force native harbour compiler?) ../../../../../bin/dos/watcom/harbour.exe ../../../achoice.prg -n1 -gc3 -undef:__PLATFORM__WINDOWS -D__PLATFORM__DOS run-time error R6009 - not enough space for environment @@ -129973,7 +130012,7 @@ now it's a better time to cleanup the HB_PPGEN_PATH, HB_BIN_COMPILE settings and drop the former. ! Reverted prev cleanup. - ; TOFIX: install rule for hbpp lib doesn't work after recent + ; FIXME: install rule for hbpp lib doesn't work after recent change. [REVERTED] ; TODO: Delete HB_PPGEN_PATH. [DONE] @@ -130631,7 +130670,7 @@ Windows. (djgpp + curses ends with build errors) + Added GPM autodetection. + Enabled gttrm for cygwin. (only in local make file) - ; TOFIX: Remove such detection logic from make_gnu.sh (it's + ; FIXME: Remove such detection logic from make_gnu.sh (it's now redundant and doesn't work for djgpp/cygwin) [DONE] * source/rtl/gtwin/gtwin.c @@ -131542,7 +131581,7 @@ * source/vm/eval.c * source/vm/dynlibhb.c ! Fixed old int <-> USHORT conversion MSVC warnings. - ; TOFIX: ? There is a disagreement between different APIs + ; FIXME: ? There is a disagreement between different APIs and Harbour program parts on the size and type of number of parameters, it can be int, USHORT, ULONG, and in some places there is also BYTE limit. @@ -131775,7 +131814,7 @@ * include/hbapigt.h * source/rtl/gtapi.c ! Fixed a few byAttr parameter names which should really be named bColor. - ; TOFIX: ? hb_gtSetAttribute() and *SETATTRIBUTE interfaces + ; FIXME: ? hb_gtSetAttribute() and *SETATTRIBUTE interfaces have a misleading name, as they're really setting color, not attribute. (we called color as attr in the beginning when no separate attr info was @@ -132339,7 +132378,7 @@ + Added HB_BASE64ENCODE(), HB_BASE64DECODE() to core. They were copied from hbtip and hbvpdf and currently the decoder is .prg code while encoding is .c code. - Latter has one TOFIX for an error situation. + Latter has one FIXME for an error situation. * contrib/hbtip/encurl.prg * contrib/hbtip/thtml.prg @@ -132359,7 +132398,7 @@ * contrib/hbtip/mail.prg * contrib/hbtip/credent.prg * contrib/hbtip/ftpcln.prg - + Added TOFIXes, QUESTIONs + + Added FIXMEs, QUESTIONs ! Fixed to use hb_MemoRead() instead of MemoRead() in one place. ! Fixed a wrong error checks after FCreate() calls. ! Fixed to use Len( hb_inetCRLF ) instead of hardwired length. @@ -133006,7 +133045,7 @@ * .cpp file rename. This is to resolve short term problem msvc builds failing due to too long command line length when assembling the library. - ; TOFIX: On the mid term we should split this huge lib into smaller + ; FIXME: On the mid term we should split this huge lib into smaller pieces. * Moved non-generated files to the top of the file list to make them build first. @@ -133660,7 +133699,7 @@ 2009-07-04 19:16 UTC+0600 April White (april users.sourceforge.net) * contrib/hbbtree/hb_btree.c * fixed one warning: cast from pointer to integer of different size - ; TOFIX: + ; FIXME: hb_btree.c:739: warning: cast from pointer to integer of different size * contrib/hbbtree/tbtree.prg * clear class var when underlying hb_btree is closed @@ -133676,7 +133715,7 @@ Thanks to Teo Fonrouge for the hints. * Using escapting function (instead of manual escaping) when launching Windows apps on NT. - ; TOFIX: hb_FCopy() [DONE] + ; FIXME: hb_FCopy() [DONE] * source/rtl/fscopy.c + Now it will copy flags on *nix systems (just like __COPYFILE()). @@ -133981,7 +134020,7 @@ * source/vm/task.c ! Minor text sync in debug calls. - ; TOFIX: [DONE] + ; FIXME: [DONE] ../../filesys.c(1698) : error C2065: 'Flags' : undeclared identifier ../../filesys.c(1792) : error C2065: 'Flags' : undeclared identifier @@ -134431,7 +134470,7 @@ * examples/hbextern/hbextern.prg * significant updates ; default params works mostly like original version - ; TOFIX: produces this 'bad' code (harbour reports "hbextern.ch_(1019) Error E0025 Error in #if expression" + ; FIXME: produces this 'bad' code (harbour reports "hbextern.ch_(1019) Error E0025 Error in #if expression" #if ZLIB_VERNUM >= 0x1230 EXTERNAL HB_GZDIRECT #endif /* #if ZLIB_VERNUM >= 0x1230 */ @@ -135143,7 +135182,7 @@ * source/rtl/mouse53.c * 'const' cleanup. ; NOTE: I rather didn't commit BYTE to char in CTWIN. - ; TOFIX: Some of these will result in warnings when passing values + ; FIXME: Some of these will result in warnings when passing values to external API calls. I'd like to ask developers to review what the intent was. Sometimes external API declarations are missing 'const', so it's safe to pass them these buffers, @@ -135202,7 +135241,7 @@ 2009-06-25 11:29 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbgd/gdwrp.c ! Fixed const warnings. - * TOFIX: Remaining: + * FIXME: Remaining: ../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTEX': ../../gdwrp.c:2659: warning: assignment discards qualifiers from pointer target type ../../gdwrp.c:2676: warning: assignment discards qualifiers from pointer target type @@ -135251,9 +135290,9 @@ 2009-06-25 09:35 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbqt/hbqt_qhttp.cpp * contrib/hbqt/hbqt_qftp.cpp - ! Commented with TOFIX comment two compilation errors + ! Commented with FIXME comment two compilation errors reported on the list, to allow full Harbour build. - ; TOFIX: Fix hb_parc() returned buffer passed directly + ; FIXME: Fix hb_parc() returned buffer passed directly to QT to return data. This would previously cause HVM corruption, not with 'const' it's caught by compiler. @@ -136529,7 +136568,7 @@ warning: deprecated conversion from string constant to 'char*' * Added 'const' to hb_PrinterIsReady() string parameter. ; Please review me. - ; TOFIX: These remain of this type of warning: + ; FIXME: These remain of this type of warning: ../../../../../include/hbwmain.c:78: warning: deprecated conversion from string constant to 'char*' ../../ctnet.c:182: warning: deprecated conversion from string constant to 'char*' ../../print.c:204: warning: deprecated conversion from string constant to 'char*' @@ -136558,7 +136597,7 @@ * contrib/gtwvg/Makefile ! Disabled for mingw C++ mode. Due to fatal errors reported to the dev list. - ; TOFIX + ; FIXME * contrib/hbwin/hbwinole.h ! Fixed for mingw C++ mode. @@ -136630,7 +136669,7 @@ than target platform. This may allow using it in cross-platform situations (I'm not sure if Linux UPX supports compressing Windows executables). - - Deleted some TOFIX/TODO comments which are no longer relevant. + - Deleted some FIXME/TODO comments which are no longer relevant. * contrib/xpp/xpp.ch + Added IsPrinter() translation. @@ -136755,7 +136794,7 @@ * contrib/hbxbp/xbp.ch ! Fixed for non-debug. Currently it's suboptimal as non-debug mode will generate extra code in binaries. - ; TOFIX [DONE] + ; FIXME [DONE] + Added non-Windows specific debug mode by enabling __HB_NOWINDEBUG__ macro. This may change in the future to the default, also names may change in the future. @@ -137022,7 +137061,7 @@ - EVENT_HANDELLED -> HBXBP_EVENT_HANDLED - EVENT_UNHANDELLED -> HBXBP_EVENT_UNHANDLED ! Using manifest constants instead of literals. - ; TOFIX: AFAICS these macros and headers are also not Xbase++ ones: + ; FIXME: AFAICS these macros and headers are also not Xbase++ ones: - apig.ch - DA_MODE - objType* @@ -137420,7 +137459,7 @@ ! fixed possible memory leak % added const to some char * declarations - TOFIX/TODO: add support for restoring overloaded functions when module + FIXME/TODO: add support for restoring overloaded functions when module is unloaded. 2009-06-19 11:32 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -137454,7 +137493,7 @@ 2009-06-19 00:36 UTC+0200 Viktor Szakats (vszakats.net/harbour) * source/vm/runner.c * Formatted. - ; TOFIX: [DONE] + ; FIXME: [DONE] ../../runner.c: In function 'hb_hrbLoad': ../../runner.c:413: error: '_HB_SYMB' undeclared (first use in this function) ../../runner.c:413: error: (Each undeclared identifier is reported only once @@ -137601,7 +137640,7 @@ ! Removed HB_COMPAT_XPP protection. No longer needed. ! Restored my copyright for STOD(). * Updated STOD() content with core code. - ; TOFIX: ? Probably it would be best to remove this function + ; FIXME: ? Probably it would be best to remove this function from here, otherwise it may just create syncing problems. Also from xpp lib. Opinions? [DONE] @@ -137754,9 +137793,9 @@ even be moved or renamed. 2.0.0 final version will still have HB_COMPAT_XPP enabled in core. ; NOTE: Please add new Xbase++ compatibility functions to this lib. - ; TOFIX: xpp_TBrowse() needs some internal parts from tbrowse.prg, + ; FIXME: xpp_TBrowse() needs some internal parts from tbrowse.prg, so current solution isn't finished. - ; TOFIX: A few Xbase++ compatibility features are embedded + ; FIXME: A few Xbase++ compatibility features are embedded into core source. These should be resolved by other means. (f.e. compiler time/runtime/hbmk2 switches, but for that we need to move back this lib inside core) @@ -138122,7 +138161,7 @@ * contrib/rddado/tests/access1.prg * Minor formatting. - ; TOFIX: Doesn't work: + ; FIXME: Doesn't work: --- Error BASE/3012 Argument error: OPEN Called from WIN_OLEAUTO:OPEN(0) @@ -138415,7 +138454,7 @@ 2009-06-15 01:52 UTC+0200 Viktor Szakats (vszakats.net/harbour) * ChangeLog - * Marked TOFIX/TODO as DONE. + * Marked FIXME/TODO as DONE. * utils/hbmk2/hbmk2.prg + Added Harbour 1.0.x support for -main and -gt* options. @@ -138459,7 +138498,7 @@ * Updated. * source/pp/Makefile - ! Fixed to ignore clean command result which is a TOFIX. + ! Fixed to ignore clean command result which is a FIXME. (anyone to help here?) ! Changed ChangeLog file detection to specifically look for CHANGE~1 and to not look for CHANGE~* and CHANG~* @@ -138517,12 +138556,12 @@ ! Fixed (almost) to delete include/hbverbld.h on clean. Keeping this file there hid DOS build problems when using Windows host. - ; TOFIX: Filename in delete command for all platforms. [DONE] - ; TOFIX: HB_CHANGELOG value for DOS builds. It's currently + ; FIXME: Filename in delete command for all platforms. [DONE] + ; FIXME: HB_CHANGELOG value for DOS builds. It's currently broken for MS-DOS hosts. To avoid these problems we should use 'CHANGES' instead of 'ChangeLog'... [DONE] - ; TOFIX: I applied Przemek's patch to make_gnu.sh wrongly, + ; FIXME: I applied Przemek's patch to make_gnu.sh wrongly, and have no idea how to fix it. [DONE] 2009-06-14 11:19 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -138533,7 +138572,7 @@ * contrib/hbxbp/xbppushbutton.prg ! Removed rest of GTWVG header references. Copied a few used #defines from it directly to the source with - TOFIX note. + FIXME note. 2009-06-14 11:13 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbxbp/xbp.ch @@ -138541,7 +138580,7 @@ * contrib/hbxbp/xbppushbutton.prg ! Removed another GTWVG header reference. Copied a few used #defines from it directly to the source with - TOFIX note. + FIXME note. ! Removed hb_toout() commented function. ! Moved hb_tooutdebug() to xbp.ch which fixes unprotected reference in one of the sources, creating unresolved @@ -139402,7 +139441,7 @@ * contrib/hbxbp/appevent.ch ! SVN header. - ; TOFIX: There is a windows.h reference in apigeneric.cpp. [DONE] + ; FIXME: There is a windows.h reference in apigeneric.cpp. [DONE] 2009-06-11 00:51 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) + harbour/contrib/hbxbp @@ -139505,7 +139544,7 @@ 2009-06-10 23:33 UTC+0200 Viktor Szakats (vszakats.net/harbour) - ; TOFIX: dos/owatcom builds can now created successfully + ; FIXME: dos/owatcom builds can now created successfully (using standard Open Watcom 1.8 installation), the bad news is that f.e. hbmk2 will crash the NTVDM when trying a simple make. @@ -139540,7 +139579,7 @@ this feature for all platforms. It will also create doc/en-EN dir. PLEASE TEST/REVIEW, I didn't do any testing. - ; TOFIX: Much or all of these should IMO be done directly + ; FIXME: Much or all of these should IMO be done directly from make files, it would be much self-contained and consistent. @@ -139556,8 +139595,8 @@ * mpkg_deb.sh * harbour.spec - Deleted hbmsql. - ; TOFIX: hbqt is missing from some Linux mpkg files. - ; TOFIX: (in next major release) We should try to + ; FIXME: hbqt is missing from some Linux mpkg files. + ; FIXME: (in next major release) We should try to make Linux build files less-maintenance intensive. 2009-06-10 21:10 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -139638,7 +139677,7 @@ * config/dos/global.cf ! Adding ending pathsep to DOC_SUBDIR to make xcopy happy and not ask if the target is a file or directory. - ; TOFIX: Anyhow, DOC_SUBDIR feature simply doesn't work since + ; FIXME: Anyhow, DOC_SUBDIR feature simply doesn't work since very long, so we should do something about it in the future. * debian/changelog @@ -139664,7 +139703,7 @@ ! Added workaround for dos/djgpp anomaly in hb_DirBase() (and also hb_ProgName()) where path contains forward slashed instead of backslashes. - ; TOFIX: In core. + ; FIXME: In core. * source/vm/Makefile ! Disabled hbvmall for dos build because of thid djgpp error: @@ -139785,7 +139824,7 @@ switch in -hbdyn mode for mingw/cygwin compilers. * ChangeLog - * Updated status of some TODO/TOFIX entries. + * Updated status of some TODO/FIXME entries. * contrib/rddsql/sddodbc/tests/sddodbc.hbc + Added odbc32 to lib list for win platform. @@ -139807,7 +139846,7 @@ * utils/hbmk2/hbmk2.prg + Targets will now get an alternate workdir by default on win/wce platforms when using -hbdyn. - ; TOFIX: ? HB_DYNLIB usage should be cleaned and synced with + ; FIXME: ? HB_DYNLIB usage should be cleaned and synced with GNU Make system. Current HB_DYNLIB usage: GNU Make system: ( win or wce ) and non-gcc @@ -140748,7 +140787,7 @@ issues with this solution compared to an "ideal" GTNET implementation. Anyhow it's a good start and nice to see it working. - TOFIX: SetMode(), mouse, shift modifier, ecryption, + FIXME: SetMode(), mouse, shift modifier, ecryption, incremental screen updates, port passing, GTWVG dependence, Windows dependence, ctwin support, other GT status changes @@ -141788,7 +141827,7 @@ also someone pls review me. * ChangeLog - * TODOs/TOFIXes marked as DONE. + * TODOs/FIXMEs marked as DONE. 2009-05-28 11:40 UTC+0200 Viktor Szakats (vszakats.net/harbour) * utils/hbmk2/hbmk2.prg @@ -142002,7 +142041,7 @@ ! Fixed one GCC warning. I'm not sure if this is a correct one, my only goal was to make the warning disappear and to define a previously undefined case. - ; TOFIX: This warning still remains, and indicates unsafe code: + ; FIXME: This warning still remains, and indicates unsafe code: wvgsink.c:516: warning: dereferencing pointer 'hSink.33' does break strict-aliasing rules * contrib/gtwvg/tests/demoxbp.prg @@ -142024,7 +142063,7 @@ WIN_AXSETVERB -> WVG_AXDOVERB() ! HB_AX_ATLSETVERB() now accepts HWND pointers, too. ! HB_AX_ATLAXGETCONTROL() now accepts HWND pointers, too. - ; TOFIX: GTWVG uses HB_AX_* prefix to denote AX function, while + ; FIXME: GTWVG uses HB_AX_* prefix to denote AX function, while these should be named WVG_AX*(). [DONE] ; TODO: Probably the full content, or at least the universally useful portion of wvgsink.c should eventually go to hbwin, @@ -142888,7 +142927,7 @@ * contrib/rddsql/sddodbc/odbcdd.c ! Fixed three warnings (2 casts + 1 uninit var) with MSVC. - ; TOFIX: These errors are shown when trying to compile in UNICODE mode [DONE]: + ; FIXME: These errors are shown when trying to compile in UNICODE mode [DONE]: ../../odbcdd.c(168) : error C2664: 'SQLDriverConnectW' : cannot convert parameter 3 from 'SQLCHAR *' to 'SQLWCHAR *' ../../odbcdd.c(204) : error C2664: 'SQLExecDirectW' : cannot convert parameter 2 from 'SQLCHAR *' to 'SQLWCHAR *' ../../odbcdd.c(239) : error C2664: 'SQLExecDirectW' : cannot convert parameter 2 from 'SQLCHAR *' to 'SQLWCHAR *' @@ -143104,7 +143143,7 @@ ! Fixed setup of .hbl input codepages. + Added support to specify output CPs for Windows/DOS/OS2 and *nix systems. - ; TOFIX: This isn't enough as f.e. all my *nixes require + ; FIXME: This isn't enough as f.e. all my *nixes require UTF-8 output which we currently cannot provide in a transparent way, so accented chars are all broken on these platforms. I could hack it around by @@ -143736,7 +143775,7 @@ compatibility). [DONE] * ChangeLog - * Marked two TODO/TOFIX done. + * Marked two TODO/FIXME done. 2009-05-13 07:45 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbwin/win_prn2.c @@ -143769,7 +143808,7 @@ if there is a fault or missing feature we fix it at the proper place (in this case in hbole) instead of splitting hbwin lib into pieces. - ; TOFIX: Refix deleted change history for "moved" files. [DONE] + ; FIXME: Refix deleted change history for "moved" files. [DONE] ; TODO: Move hbole to hbwin and fix missing OLE bits in hbwin. [DONE] * ChangeLog @@ -144245,7 +144284,7 @@ hbmk will take care of preserving existing translations. This changes contains parts taken from hbi18n, work of Przemek, copyright retained. - ; TOFIX: For some reason update of existing .pot file with + ; FIXME: For some reason update of existing .pot file with new one doesn't work. It's probably something obvious but I cannot see what. [DONE] @@ -144564,7 +144603,7 @@ ! Disabled -map option for *nix gcc as it doesn't seem supported (probably isn't needed on these platforms anyway). % Cleaned code redundancy in forming output names. - ; TOFIX: gcc/darwin complains that -s switch is obsolete and being ignored. [DONE] + ; FIXME: gcc/darwin complains that -s switch is obsolete and being ignored. [DONE] 2009-04-29 11:16 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/xhb/dbgfxc.c @@ -146622,7 +146661,7 @@ Couldn't find any reference to this file, please fix it where needed. - ; TOFIX: hbqt.h has hb_ToOutDebug() declared as external. So, + ; FIXME: hbqt.h has hb_ToOutDebug() declared as external. So, hbqt will also depend on xhb lib? If this function is so important I'd suggest to create a fully portable version of it locally in hbqt. @@ -147173,7 +147212,7 @@ This is a very gray area for pocc. Currently it doesn't work because polib is broken and doesn't generate an implib: POLIB: fatal error: Internal error (create_archive_file). - ; TOFIX: poccce also doesn't work, but this is probably solvable, + ; FIXME: poccce also doesn't work, but this is probably solvable, there are unresolved externals when linking. 2009-04-02 15:10 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -147183,7 +147222,7 @@ * utils/hbmk2/hbmk2.prg ! Fixed shared libnames for MinGW family. - ; TOFIX: Still doesn't build shared-mode executables. [DONE] + ; FIXME: Still doesn't build shared-mode executables. [DONE] 2009-04-02 13:42 UTC+0200 Viktor Szakats (vszakats.net/harbour) * bin/hb-mkdyn.bat @@ -147205,7 +147244,7 @@ default/support/standard way to build Harbour with MinGW on Windows. (if not we can return to the msys method) - ; TOFIX: Shared MinGW executables cannot be built if Harbour was built + ; FIXME: Shared MinGW executables cannot be built if Harbour was built with -DHB_DYNLIB. IMO this macro should be ignored in MinGW builds as there is no separate DLL build and non-DLL. [ I cannot fix this. ] @@ -147792,7 +147831,7 @@ * Changed back to __cdecl calling convention from register based until we find a way to tweak HB_EXPORT to force __cdecl for .dll exported functions. - ; TOFIX: Find out how to force __cdecl for HB_EXPORT functions in owatcom. + ; FIXME: Find out how to force __cdecl for HB_EXPORT functions in owatcom. Or, if this is no good solution for owatcom users, or not an option and performace is more important, we must rename owatcom Harbour .dlls to a distinct name: harbour[mt]-11-ow.dll. @@ -148196,7 +148235,7 @@ * bin/hb-func.sh * source/vm/maindllp.c * mingwce will now generate dll by the name: harbour*-*-arm.dll - ; TOFIX: mingwce .dlls should probably be generated in bin dir just + ; FIXME: mingwce .dlls should probably be generated in bin dir just like in every other cases, but I don't know why it's explicitly put in lib dir in this case. @@ -148226,7 +148265,7 @@ * contrib/hbsqlit3/Makefile ! Excluded for poccce. - ; TOFIX: + ; FIXME: pocc.exe -I. -Ze -Go -W1 -Ot -Tarm-coff -D_WINCE -DUNICODE -DHB_NO_WIN_CONSOLE -I../../../../include -c ../../getenvrn.c -Fogetenvrn.obj ../../getenvrn.c(177): warning #2027: Missing prototype for 'GetEnvironmentStrings'. ../../getenvrn.c(177): error #2168: Operands of = have incompatible types 'wchar_t *' and 'int'. @@ -148377,7 +148416,7 @@ + Tweaked optimization options to work with wcc386 (C mode compiler). + Tweaked C make rule for wcc386 (only accepts backslashes). ; So now sqlite3 will be forced to C mode and will compile. - ; TOFIX: .cpp file compilation will be broken in forced C mode, + ; FIXME: .cpp file compilation will be broken in forced C mode, so more cleanup will be needed here if we want to allow all combinations. @@ -148445,7 +148484,7 @@ * fixed CGIKill() to correct handle killing of not responding CGI apps * formatting and minor changes ; NOTE: not tested under Linux, more tests to do - ; TOFIX: in case of error of cgi executables error output is missing, + ; FIXME: in case of error of cgi executables error output is missing, this I have to check better. * harbour/contrib/examples/uhttpd/uhttpd.ini * changed [ALIASES] section name to [SCRIPTALIASES] @@ -148642,7 +148681,7 @@ 2009-03-27 11:45 UTC+0100 Viktor Szakats (vszakats.net/harbour) * ChangeLog - * One TOFIX marked as DONE. + * One FIXME marked as DONE. * contrib/hbmysql/tmysql.prg % Optimizations (using SWITCH) @@ -148654,7 +148693,7 @@ * contrib/hbqt/tests/hbqt.hbp + Added C++ and runtime MinGW lib. - ; TOFIX: I still get: [SOLVED] + ; FIXME: I still get: [SOLVED] harbour/lib/win/mingw/libhbvm.a(fm.o):fm.c:(.text+0x39b): undefined reference to `__mingw_vfprintf' + gui=yes @@ -148866,9 +148905,9 @@ * contrib/hbole/tests/testole.prg * contrib/hbole/tests/sample.odt + Updated to latest hbole code. - ; TOFIX: hbole code doesn't compile with MSVC in default C++ + ; FIXME: hbole code doesn't compile with MSVC in default C++ even if #define CINTERFACE 1 is enabled. [DONE] - ; TOFIX: OpenOffice example fails at some point. It probably + ; FIXME: OpenOffice example fails at some point. It probably needs array support. * contrib/hbole/olecore.c @@ -149494,7 +149533,7 @@ behaviour when wrong type is passed. The solution is to change all these to type specific IS*() macros. - ; TOFIX: (core and all contribs) [DONE] + ; FIXME: (core and all contribs) [DONE] C:/DOCUME~1/vszakats/LOCALS~1/Temp/ccVcE53g.s: Assembler messages: C:/DOCUME~1/vszakats/LOCALS~1/Temp/ccVcE53g.s:20: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression @@ -150774,7 +150813,7 @@ * bin/hb-mkdyn.sh * bin/hb-func.sh ! mingw/cygwin .dll name generation tweaked to work - properly. This fixes both TOFIXes in prev commit. + properly. This fixes both FIXMEs in prev commit. * mpkg_win.bat + Added -9 switch to zip. @@ -150811,12 +150850,12 @@ Overall Borland isn't recommended for .dll creation. Please do further tests for binary compatibility. - ; TOFIX: Location of .dll still differs for mingw/cygwin, they + ; FIXME: Location of .dll still differs for mingw/cygwin, they are created in lib while rest of compilers create it in bin. I think we should sync them by creating a copy of the .dlls in bin for mingw/cygwin. Przemek, could you help here? [DONE] - ; TOFIX: "Making ..." screen messages. I'll need some + ; FIXME: "Making ..." screen messages. I'll need some help here also. [DONE] * bin/hb-mkdyn.sh @@ -151070,7 +151109,7 @@ + Using -5s and -3s (when NOOPT) in win. * Synced win owatcom options with GNU Make. - ; TOFIX: ../../dbf1.c(208): Warning! W007: col(55) '&array' may not produce intended result + ; FIXME: ../../dbf1.c(208): Warning! W007: col(55) '&array' may not produce intended result 2009-03-15 23:10 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * harbour/contrib/gtwvg/gtwvg.c @@ -151145,7 +151184,7 @@ Every GUI object returns a handle to it which may be used to change its parameters. - ; TOFIX( WINCE BUILDS ) - GetSystemDirectory() + ; FIXME( WINCE BUILDS ) - GetSystemDirectory() /* IMPLEMENTATION OF CUI-GUI CONTROLS - A CODE PREVIEW @@ -151343,7 +151382,7 @@ - Restored previous state, because latest changed addressing Linux build failure were causing problems for the Windows platform. - ; TOFIX: We must clean our types, to avoid these problems + ; FIXME: We must clean our types, to avoid these problems and all bad hacks to work it around. * mpkg_win.bat @@ -151499,7 +151538,7 @@ (probably could be done more efficiently, feel free to optimize it.) Please test. - ; TOFIX: ? gttrm on Darwin changes console color from my + ; FIXME: ? gttrm on Darwin changes console color from my default green, to Harbour default gray on exit. * doc/whatsnew.txt @@ -151673,7 +151712,7 @@ * contrib/xhb/txml.prg * Update HB_REGEXMATCH() calls, to keep old logic. - ; TOFIX: Above doesn't mean it's now correct, so + ; FIXME: Above doesn't mean it's now correct, so someone familiar with this code, please correct it. @@ -152268,7 +152307,7 @@ which sets or deletes (when is NIL) process environment variable . controls character translation to OS encoding. By default is enabled. - TOFIX: OS character encoding is missing in [HB_]_GETENV() + FIXME: OS character encoding is missing in [HB_]_GETENV() 2009-03-05 18:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/common/hbprintf.c @@ -152394,11 +152433,11 @@ ! DOS EOL char is now ignored in .hbp/.hbm files. + Added -bm owatcom C compiler switch in -mt mode for win/os2/linux. Pls test on os2/linux. - * TOFIX: Attempted to add -gui support for win/owatcom. Harbour + * FIXME: Attempted to add -gui support for win/owatcom. Harbour still complains about "It's not a GUI app". This compiler is a real bitch with tons of similarly looking options and no adequate online docs, so if someone feels like - it, pls correct the TOFIX section in source. + it, pls correct the FIXME section in source. Until then GTWVT and GTWVG won't work with owatcom. ; NOTE: Most probably not, but I hope hbmk2 now qualifies for "basic functionality". @@ -152469,7 +152508,7 @@ * bin/hb-mkdyn.sh * bin/postinst.sh + Added some level of cygwin support. - ; TOFIX: .dlls are not generated. + ; FIXME: .dlls are not generated. * make_gnu.sh * Change recently added '==' operators to '='. @@ -152525,7 +152564,7 @@ * source/common/hbprintf.c * contrib/hbssl/sslrand.c ! Fixed to compile with cygwin. - ; TOFIX: + ; FIXME: when running hbtest.exe: Error DBFNTX/1011 Write error: _hbtmp_.dbf Called from DBCREATE(0) @@ -153640,7 +153679,7 @@ and will compile Harbour to allow the creation of .dlls and will also create those (msvc, bcc32, owatcom). (MinGW has been covered before these changes already.) - ; TOFIX: .dlls still need tweaking to work properly. + ; FIXME: .dlls still need tweaking to work properly. owatcom doesn't create usable binaries when using HB_DLL=yes. @@ -154016,7 +154055,7 @@ * utils/hbmk2/hbmk2.prg * Attempt to add .dll support for win/owatcom. - ; TOFIX: This happens: + ; FIXME: This happens: Warning! W1023: no starting address found, using 00401000 2009-02-24 02:13 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -154274,7 +154313,7 @@ * config/bin.cf + Added -n to Harbour flags to bin.cf. + Added -n1 to Harbour flags to lib.cf. - ; TOFIX: The former works, the latter doesn't. + ; FIXME: The former works, the latter doesn't. Could someone please help why is this happening? [DONE] @@ -154419,7 +154458,7 @@ + Added hbfm, hbfmmt lib generation which works for all compilers, not just gcc family. ; Please review. - ; TOFIX: For some reason the locally added C flags + ; FIXME: For some reason the locally added C flags appear twice. Couldn't find out why. 2009-02-21 14:03 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -154834,7 +154873,7 @@ ! Added #undef _WIN32_* where needed. This should fix compilation problems if these macros were already #defined by user. It's better however to honor the host setting. - This fixed a pending TOFIX. + This fixed a pending FIXME. 2009-02-20 09:44 UTC+0100 Viktor Szakats (vszakats.net/harbour) * utils/hbmk2/hbmk2.prg @@ -155282,7 +155321,7 @@ These are always available regardless of the CLIP53 compatibility setting. - ; TOFIX: K_MM*DOWN events _override_ C5.3 compatible + ; FIXME: K_MM*DOWN events _override_ C5.3 compatible K_MOUSEMOVE events (in GTWVT only), which created an unfortunate incompatibility with our target C5.x compiler when using some specific GT. Ideas @@ -155329,7 +155368,7 @@ (code moved from hb_cmdargInit()) ! use hb_cmdargUpdate() - it fixes GPF in MT mode when some fs* functions were called before allocating HVM stack - ; TOFIX: change some hb_setGet*() functions to work without HVM stack. + ; FIXME: change some hb_setGet*() functions to work without HVM stack. * harbour/source/rtl/hbtoken.c * formatting @@ -155364,7 +155403,7 @@ With UNICODE and _SET_OSCODEPAGE support. * ChangeLog - * TOFIX (hb_cmdline()) marked as POSTPONED with explanation. + * FIXME (hb_cmdline()) marked as POSTPONED with explanation. 2009-02-18 00:19 UTC+0100 Viktor Szakats (vszakats.net/harbour) * source/rtl/listbox.prg @@ -155503,7 +155542,7 @@ 2009-02-17 11:36 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbblat/tests/blatcmd.prg ! Reverted fix of mine until we properly fix hb_cmdline(). - ; TOFIX: Fix hb_cmdline() to work more consistently on Windows. + ; FIXME: Fix hb_cmdline() to work more consistently on Windows. [POSTPONED. It creates incompatibility with behaviour on other platforms.] @@ -155706,7 +155745,7 @@ this way it's faster smaller, yet portable. * ChangeLog - * Few old TODO/TOFIX statuses updated. + * Few old TODO/FIXME statuses updated. 2009-02-16 18:48 UTC+0100 Viktor Szakats (vszakats.net/harbour) - contrib/hbct/tests/hbmk.bat @@ -155875,7 +155914,7 @@ 2009-02-16 09:25 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbapollo/tests/hbapollo.hbp + Added filters. - ; TOFIX: hbapollo test doesn't link with MSVC. + ; FIXME: hbapollo test doesn't link with MSVC. - contrib/hbapollo/tests/hbmk.bat - contrib/gtwvg/tests/hbmk.bat @@ -157022,7 +157061,7 @@ * contrib/rddsql/sddfb/common.mak * contrib/rddsql/sddfb/make_b32.bat * contrib/rddsql/sddfb/make_vc.bat - ! Fixed HB_ROOT setting. This fixes a former TOFIX + ! Fixed HB_ROOT setting. This fixes a former FIXME in ChangeLog. 'set HB_ROOT = ..\..\..' was right, but spaces aren't accepted around '=', so it wasn't executed. @@ -157599,7 +157638,7 @@ new macros. [CANCELLED] ; TODO: Remove remaining #include lines. [DONE] - ; TOFIX: Some of the above macros should better be replaced + ; FIXME: Some of the above macros should better be replaced by CP sensitive versions. F.e. the one in hbtip. 2009-02-06 17:46 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -157992,7 +158031,7 @@ additional functionality also in the separate file. * GetNew() moved to tget.prg from tgetint.prg. * Code changed to use HBGet():New() instead of Get():New(). - ; TOFIX: After above changes, Xbase++ compatiblity + ; FIXME: After above changes, Xbase++ compatiblity methods are no longer available for regular GETs, only if they are explicitly created using Get():New(). If this is a problem for someone @@ -158913,7 +158952,7 @@ 2009-02-03 01:39 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/xhb/cstruct.prg ! One STATIC converted to THREAD STATIC. - + TOFIX added for the rest of them. + + FIXME added for the rest of them. * Some formatting. 2009-02-03 01:34 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -158939,12 +158978,12 @@ * contrib/xhb/hblog.prg + Permanently enabled conditional HB_THREAD_SUPPORT. - ; TOFIX: - hbwhat/wincore.prg + ; FIXME: - hbwhat/wincore.prg - xhb/cstruct.prg Needs reviewing and either mutex protection for STATICs or conversion to THREAD STATIC. - ; TOFIX: C code uses much more statics, some of these make + ; FIXME: C code uses much more statics, some of these make code clearly broken for MT. ; TODO: Shouldn't we add core support for C-level thread @@ -159162,7 +159201,7 @@ 2009-01-29 14:25 UTC+0100 Viktor Szakats (vszakats.net/harbour) * source/rtl/gtwvt/gtwvt.c ! Fixed to #undef _WIN32_WINNT before setting it. - ; TOFIX: hbwhat has this problem in almost all of its source + ; FIXME: hbwhat has this problem in almost all of its source files. [DONE] * contrib/examples/uhttpd/modules/bldhrb.bat @@ -159256,7 +159295,7 @@ - Removed some functions operating on binary data. * ChangeLog - * TOFIX marked DONE. + * FIXME marked DONE. 2009-01-27 04:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbdefs.h @@ -159276,7 +159315,7 @@ * harbour/contrib/hbcrypt/sha2.c ! fixed BCC5.5 compilation - TOFIX: harbour/contrib/hbssl/ssl.c[631], sslctx.c[268], sslctx.c[281] + FIXME: harbour/contrib/hbssl/ssl.c[631], sslctx.c[268], sslctx.c[281] error: invalid conversion from void* to const char* I do not know if SSL_get_ex_data()/SSL_CTX_get_app_data() returns valid ASCIIZ string so I cannot decide if simple casting @@ -159295,7 +159334,7 @@ * contrib/examples/uhttpd/socket.c ! Fixed leak. Thanks to Mindaugas. - ; TOFIX: Ajax test (404 Not Found), + ; FIXME: Ajax test (404 Not Found), Counter (image not found), cgi-bin (broken link), XML database (empty boxes in Chrome, empty boxes @@ -159381,7 +159420,7 @@ Still doesn't compile however. I'll rather disable this code for now, unless someone jumps in an fixes these problems. - ; TOFIX: For MSVC, too: [DONE] + ; FIXME: For MSVC, too: [DONE] source\common\hbprintf.c(213) : error C2061: syntax error : identifier 'intmax_t' source\common\hbprintf.c(214) : error C2061: syntax error : identifier 'as_x_uintmax_t' source\common\hbprintf.c(214) : error C2059: syntax error : ';' @@ -159443,7 +159482,7 @@ + Added MSVC make file. ! Added EOL to the last line to hbmk_b32.bat. ! xhb.lib dependency removed. It was not needed anyway. - ; TOFIX: When compiling exhsx.prg, this happens: + ; FIXME: When compiling exhsx.prg, this happens: exhsx.obj : error LNK2001: unresolved external symbol _HB_FUN_HSXRDD [DONE] @@ -159540,7 +159579,7 @@ + Added Harbour bindings to OpenSSL. Work in progress, but it's theoretically already functional. To build, set your HB_DIR_OPENSSL or HB_INC_OPENSSL envvar. - ; TOFIX: Makefile openssl autodetection should be adjusted. [DONE] + ; FIXME: Makefile openssl autodetection should be adjusted. [DONE] * contrib/examples/uhttpd ! Fixed SVN attributes. (except for /home dir) @@ -160257,7 +160296,7 @@ * source/rtl/disksphb.c ! Fixed DISKSPACE() and HB_DISKSPACE() for Darwin. Previously they had returned erroneous values. - ; TOFIX: Probably HB_DISKSPACE() should be implemented for Watcom and CEGCC, + ; FIXME: Probably HB_DISKSPACE() should be implemented for Watcom and CEGCC, just like DISKSPACE() is. * source/rtl/filesys.c @@ -160281,7 +160320,7 @@ ! HB_BASE64(): Removed second parameter allowing to pass the length of the string. This could cause GPF if passed incorrectly. Now length is simply determined using hb_parclen(). - ; TOFIX: Input string size limit checking. + ; FIXME: Input string size limit checking. * include/hbdefs.h + HB_SIZEOFARRAY() macro, which does: ( sizeof( var ) / sizeof( *var ) ) @@ -160394,8 +160433,8 @@ * MemoRead() -> hb_MemoRead() * contrib/hbct/files.c - ; TOFIX: Many functions here are possibly not thread safe. [DONE] - ; TOFIX: Calling hb_fsFindClose() at app exit (and thus keeping + ; FIXME: Many functions here are possibly not thread safe. [DONE] + ; FIXME: Calling hb_fsFindClose() at app exit (and thus keeping the FF handles open for the whole app lifetime) doesn't play well with server side apps (as the app may run for months or even longer), and even worse, they @@ -160415,7 +160454,7 @@ % Minor cleanup in Windows x86 CPU dump code. + Added TODO for Windows IA64 CPU dump. + Added TODO for Windows x64 stack walk, with pointers. - + Added TOFIX regarding displaying module names in Windows x64 mode. + + Added FIXME regarding displaying module names in Windows x64 mode. * source/rtl/fstemp.c ! Minor formatting. @@ -160435,18 +160474,18 @@ the temporary flag on, so those get deleted too, when closed. [DONE] - ; TOFIX: hb_regex*() functions will not honor Harbour CP setting, + ; FIXME: hb_regex*() functions will not honor Harbour CP setting, when case insensitivity is selected. - ; TOFIX: hbct / SetFDaTi() to move any local logic into Harbour core + ; FIXME: hbct / SetFDaTi() to move any local logic into Harbour core functions and use a simple Harbour API call only. I'm not sure what is the reason with keeping the logic duplicated here; if this isn't by intent, this function could be much simplified. [DONE] - ; TOFIX: Avoid using C level toupper()/tolower()/islower()/isupper() [DONE] + ; FIXME: Avoid using C level toupper()/tolower()/islower()/isupper() [DONE] - ; TOFIX: hb_regexMatch()'s 3rd parameter has a double meaning. + ; FIXME: hb_regexMatch()'s 3rd parameter has a double meaning. It controls case-sensitivity (in sync with the documentation), but it also controls if hb_regexMatch() behaves like hb_regexLike() (.T.), or hb_regexHas() (.F.). This means @@ -160610,7 +160649,7 @@ * harbour/contrib/hbct/misc1.c * changed XTOC(), FTOC() and CTOF() to always store/retirve numbers as double value in little endian order to reduce platform differences - ; TOFIX intorduce new macro which can be used instead sizeof( double ) + ; FIXME intorduce new macro which can be used instead sizeof( double ) for platforms where double size is different then 8 and macro HB_FORCE_IEEE754_DOUBLE is set @@ -161019,7 +161058,7 @@ sddmy - MySQL database driver sddpg - Postgre SQL database driver ... - ; TOFIX: I was unable to manage build files. [DONE] + ; FIXME: I was unable to manage build files. [DONE] contrib/sqlrdd/sddmy/make_b32.bat sets HB_ROOT variable: set HB_ROOT = ..\..\.. but this variable is lost and contrib/make_b32.mak reassign it: @@ -161288,7 +161327,7 @@ ! fixed TRIES counter updating when RETRY flag is set - it should be done before calling error block not after - detected by new hbtest error messages - ; TOFIX: in practice all errors with RETRY flag generated by + ; FIXME: in practice all errors with RETRY flag generated by other hb_errRT_*() functions have to be fixed because new error object is created each time and informations from previous one are lost, f.e. TRIES counter or CARGO @@ -162186,7 +162225,7 @@ * harbour/contrib/gtwvg/tests/demowvg.prg + Added functionality of new classes. - ; TOFIX: harbour/contrib/gtwvg/wvggui.c + ; FIXME: harbour/contrib/gtwvg/wvggui.c Przemek, can you please look into this stripped down version of gtwvg.c. It has memory leak in inkey() and hb_gtInfo() functions. To test, just resize the window @@ -162247,7 +162286,7 @@ * harbour/source/vm/memvars.c % improved the performance of __MVRESTORE() - ; TOFIX: this code has Clipper incompatible extension which may cause + ; FIXME: this code has Clipper incompatible extension which may cause that incorrect values will be restored - numeric double values with 0 as default number of decimal places for str() formatting are wrongly converted to integers loosing fractional part of number. @@ -162346,7 +162385,7 @@ ! Fixed few left-over unreleased memory blocks. More synchronized code. - ; TOFIX: With some active-x's, for example, Shell.Explorer.2, + ; FIXME: With some active-x's, for example, Shell.Explorer.2, object never unreference itself to 0 and hence GlobalAlloc()ated memory never gets released. Though I made extensive debugging but do not know where I should look into this matter. @@ -162631,7 +162670,7 @@ * harbour/contrib/gtwvg/tests/demowvg.prg ! Adjusted few parameters. Just play with . - ; TOFIX: INKEY() vs FireEvent() - Not sure what it behave like. + ; FIXME: INKEY() vs FireEvent() - Not sure what it behave like. * harbour/contrib/gtwvg/wvgcrt.prg ! Fixes to some events behaviors. Copy and Paste syndrome :-( @@ -162645,7 +162684,7 @@ + #define HB_GTI_DEFERPAINT Implemented hb_gtInfo( HB_GTI_DEFERPAINT, FALSE | TRUE ) For consoles hosting ActiveX controls need not be painted text buffer. - :TOFIX To extend this protocol for resizing buffer too + :FIXME To extend this protocol for resizing buffer too * harbour/contrib/gtwvg/wvgsink.c ! More unicode compliant. @@ -162693,7 +162732,7 @@ * contrib/gtwvg/wvgutils.c * contrib/gtwvg/wvgsink.c ! SVN IDs missing, mistyped. SVN tags now reset. - ; TOFIX: GTWVG is now broken with MSVC 8 and/or C++ and/or 64-bit modes, + ; FIXME: GTWVG is now broken with MSVC 8 and/or C++ and/or 64-bit modes, also unsafe string function is used: - strcat() should be hb_strncat(). - Usual but wrong HRESULT to ULONG conversions break in 64-bit. @@ -162841,7 +162880,7 @@ 2008-11-12 14:44 UTC+0100 Viktor Szakats (vszakats.net/harbour) * make_vc.mak - + TOFIX added for the case when HB_CC_NAME is overridden + + FIXME added for the case when HB_CC_NAME is overridden by user and MT/DLL targets are being created. * common.mak @@ -162916,7 +162955,7 @@ * source/rtl/console.c ! Fixed __EJECT() writing an EJECT only if output device was "PRINTER". This fixes problem reported by Ciro, and - also a very old TOFIX which was removed very long ago + also a very old FIXME which was removed very long ago by mistake. (see thread "Bug: __EJECT() (David)" on 2000-07-27) [TOMERGE 1.0] @@ -162933,7 +162972,7 @@ * common.mak * bin/hbmk.bat + Added generation of MT harbour .dlls for BCC and MSVC. - ; TOFIX: 'hbmk -shared -mt' doesn't seem to work, resulting + ; FIXME: 'hbmk -shared -mt' doesn't seem to work, resulting app simply exits for both BCC and MSVC. [DONE] ; TODO: Please update make_gcc.mak. [DONE] @@ -162996,7 +163035,7 @@ ! Fixed to cleanup mainstd.obj and mainwin.obj. * ChangeLog - * Some TODO/TOFIX marked as [DONE]. One [DONE] marked + * Some TODO/FIXME marked as [DONE]. One [DONE] marked as [DONE - REOPENED]. 2008-11-11 02:35 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -163023,9 +163062,9 @@ * bin/hbmk.bat + Added '-shared' option. - ; TOFIX: '-shared' won't work in binary installations. [DONE] - ; TOFIX: '-shared' cannot create MT apps. [DONE] - ; TOFIX: '-shared' only works for BCC32 yet. [DONE] + ; FIXME: '-shared' won't work in binary installations. [DONE] + ; FIXME: '-shared' cannot create MT apps. [DONE] + ; FIXME: '-shared' only works for BCC32 yet. [DONE] - tests/hbmk_b32_dll.bat - Removed. Use 'hbmk_b32 -shared' instead. @@ -163072,7 +163111,7 @@ ; NOTE: Now core fully compiles in WinCE mode. So we have a new port. - ; TOFIX: (this is a complete list of all Pelles C WinCE problems) + ; FIXME: (this is a complete list of all Pelles C WinCE problems) [except hbmysql errors] POLINK: warning: Multiple '.rdata' sections found with different flags (0x40000040 and 0xc0000040). @@ -163156,7 +163195,7 @@ * source/vm/fm.c ! Fixed missing abort() on WinCE. (for Pelles C only, but the fix should work for any WinCE compilers). - ; TOFIX: Now the only remaining showstopper for PellesC5 WinCE + ; FIXME: Now the only remaining showstopper for PellesC5 WinCE support is: ../../math.c(652): error #3120: [asm] Symbol 'inf' is undefined. [DONE] @@ -163169,7 +163208,7 @@ * config/w32/poccce.cf ! Added -DUNICODE switch. - ; TOFIX: (important ones only) + ; FIXME: (important ones only) --- ERRORS ../../math.c(652): error #3120: [asm] Symbol 'inf' is undefined. @@ -163600,7 +163639,7 @@ * make_b32.mak * make_vc.mak + Added HBRUN_DLL. - ; TOFIX: It doesn't work. Maybe more eyeballs will spot the + ; FIXME: It doesn't work. Maybe more eyeballs will spot the problem more easily. [DONE] 2008-11-09 14:23 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -163681,7 +163720,7 @@ This way everyone can read what the other are typing and it's much easier to fix files if someone accidentally saves with the wrong codepage. - ; TOFIX: We should also possibly fix all high chars in + ; FIXME: We should also possibly fix all high chars in .prg and .c code _strings_. 2008-11-09 11:48 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -163698,7 +163737,7 @@ * source/pp/hbpp.c * source/main/harbour.c * Excluded hbwmain for __POCC__ WinCE. - ; TOFIX: Warning: Not proper fix. + ; FIXME: Warning: Not proper fix. This way it won't link but at least it compiles. [DONE] @@ -163815,7 +163854,7 @@ * Formatted to std Harbour. Generated pcode unchanged. * ChangeLog - * Marked finished TODO/TOFIXes as [DONE]. + * Marked finished TODO/FIXMEs as [DONE]. 2008-11-08 14:15 UTC+0200 Viktor Szakats (vszakats.net/harbour) * bin/hbmk.bat @@ -163845,7 +163884,7 @@ * contrib/mtpl_vc.bat * Sync with GNU make system: HB_MAKE_FLAGS -> MK_USR - ; TOFIX: Maybe it's a good time now to resolve the missing HB_ + ; FIXME: Maybe it's a good time now to resolve the missing HB_ prefixes for C_USR, L_USR, A_USR, MK_USR. If there are no objections / better ideas I'd like to make these changes: @@ -163868,7 +163907,7 @@ * utils/hbtest/rt_misc.prg + Added one C5.2 SET()s for two simple tests. + Added all C5.3 SET()s for two simple tests each. - ; TOFIX: _SET_VIDEOMODE has the type wrong. + ; FIXME: _SET_VIDEOMODE has the type wrong. ; NOTE: It wouldn't be a bad idea to add some more comprehensive tests for SET()s. @@ -163904,7 +163943,7 @@ ! Fixed a few places where '+' operator was used instead of '|'. * Minor opt/formatting. - ; TOFIX: The window positioning bug is still to be solved. [DONE -> REOPENED] + ; FIXME: The window positioning bug is still to be solved. [DONE -> REOPENED] 2008-11-07 23:39 UTC+0100 Francesco Saverio Giudice (info fsgiudice com) * source/rdd/usrrdd/rdds/arrayrdd.prg @@ -164047,7 +164086,7 @@ * harbour/contrib/rddsql/sqlmix.c ! fixed printf() format - TOFIX for author: + FIXME for author: mysqldd.c:258: warning: pItemEof may be used uninitialized in this function sqlbase.c:509: warning: comparison of unsigned expression < 0 is always false Mindaugas can you look at it? @@ -164175,7 +164214,7 @@ + Added my copyright. * ChangeLog - ; Some TODO/TOFIXes marked as [DONE] + ; Some TODO/FIXMEs marked as [DONE] 2008-11-04 22:39 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbapi.h @@ -164205,9 +164244,9 @@ * contrib/hbwhat/whtlv.c ! Fixed memory leak. ! Fixed to use hb_strncpy() instead of unsafe lstrcpy(). - ; TOFIX: The destination address isn't properly allocated and the + ; FIXME: The destination address isn't properly allocated and the size of it is unknown, so this modification is not enough. - ; TOFIX: Unicode conversion, buffer allocation for item.pszText. + ; FIXME: Unicode conversion, buffer allocation for item.pszText. 2008-11-04 19:32 UTC+0200 Viktor Szakats (vszakats.net/harbour) * make_gcc.mak @@ -164657,8 +164696,8 @@ This makes these functions/macros deprecated: - HB_MTVM() - __PLATFORM__* (not for all possible situations) - ; TOFIX: Cleanup REVISION/SVN term usage in source. - ; TOFIX: Remove HB_VER_* predefined macro usage on .prg level. + ; FIXME: Cleanup REVISION/SVN term usage in source. + ; FIXME: Remove HB_VER_* predefined macro usage on .prg level. ; TODO: Remove some deprecated by hb_version() functions/macros. * include/hbapi.h @@ -164841,7 +164880,7 @@ - HB_VER_C_USR - HB_VER_L_USR - HB_VER_PRG_USR - ; TOFIX: Some term anomalies regarding 'REVISION'. [DONE] + ; FIXME: Some term anomalies regarding 'REVISION'. [DONE] * source/vm/runner.c * Minor formatting and added "s_" prefix to static var. @@ -165469,7 +165508,7 @@ MSVC _snprintf() doesn't do so. * hb_snprintf() used _snprintf_s(), secure version of _snprintf() for MSVS 2005 and upper. - ; TOFIX: There is still one strcpy() marked as non-secure + ; FIXME: There is still one strcpy() marked as non-secure in debug lib. Could someone please take a look at it and replace it with hb_strncpy() or something else secure? The code is cryptic and as someone @@ -165980,7 +166019,7 @@ added make files, fixed all MSVS/BCC warnings, other minor cleanups. * Changed 'BYTE val[]' to 'BYTE * val' in struct decl. - ; TOFIX: It doesn't compile on MSVC due to this error: + ; FIXME: It doesn't compile on MSVC due to this error: .\mysqldd.c(65) : fatal error C1017: invalid integer constant expression [DONE] @@ -166047,7 +166086,7 @@ * contrib/hbdbgfx/dbgfx.prg * contrib/hbdbgfx/sprintf.prg * Some cleanups and fixes. - ; TOFIX: hb_ToOutDebug() for WinCE/Unicode. + ; FIXME: hb_ToOutDebug() for WinCE/Unicode. Maybe adding other platforms. 2008-10-19 20:18 UTC-0500 Teo Fonrouge (teo/at/windtelsoft/dot/com) @@ -166468,7 +166507,7 @@ * source/debug/debugger.prg * Renamed getdbginput() -> __dbgInput() - ; NOTE to TOFIX: Do we need "Mono display" these days? :) + ; NOTE to FIXME: Do we need "Mono display" these days? :) 2008-10-16 13:08 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/debug/debugger.prg @@ -166564,9 +166603,9 @@ ! fixed RT debugger errors caused by missing ::nTabWidth and ::colorSpec in HBBrwText class ! fixed processing source code with TABs (chr(9)) - ; TOFIX: "Mono Display" causes RT error due to missing color index + ; FIXME: "Mono Display" causes RT error due to missing color index range checking. It also does not change all colors immediately [DONE] - ; TOFIX: getdbginput(): writing out of window area, scrolling internal + ; FIXME: getdbginput(): writing out of window area, scrolling internal buffer, cursor navigation, interrupting by ESC 2008-10-16 00:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -168362,7 +168401,7 @@ when MinGW 3.x/4.x compilers were used. [TOMERGE 1.0] - ; TOFIX: Some sqlite3.c code may also be affected, since + ; FIXME: Some sqlite3.c code may also be affected, since "%llX" and "%lld"s are hard-coded into the source. 2008-09-25 13:28 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -168519,7 +168558,7 @@ make[2]: *** [first] Error 2 ; Please review. - ; TOFIX: These DLALLOC warnings are present with MinGW 4.3.2 + ; FIXME: These DLALLOC warnings are present with MinGW 4.3.2 In file included from ../../fm.c:127: ../../dlmalloc.c:1144: warning: ignoring #pragma warning In file included from ../../fm.c:127: @@ -168607,7 +168646,7 @@ % Removed unnecessary logic to select default GT. This is done in Harbour source code now. - ; TOFIX: After MT changes, mingw32 build gives this new error: + ; FIXME: After MT changes, mingw32 build gives this new error: make: *** mainstd: No such file or directory. Stop. make[3]: *** [first] Error 2 make[2]: *** [first] Error 2 @@ -168630,7 +168669,7 @@ + Don't attempt to write into .log file if the _SET_HBOUTLOG filename is empty. - ; TOFIX: Remove all remaining MessageBox() calls from + ; FIXME: Remove all remaining MessageBox() calls from Harbour sources. 2008-09-23 18:56 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -168716,7 +168755,7 @@ * contrib/hbwhat/whtlv.c * contrib/hbwhat/whtfont.c % hb_vmPushSymbol( hb_itemGetSymbol( p ) ) -> hb_vmPush() - ; QUESTION/TOFIX: In whtlv.c and whtfont.c this may be wrong, + ; QUESTION/FIXME: In whtlv.c and whtfont.c this may be wrong, and hb_vmPushDynSym() could be needed instead. Can someone take a look pls? @@ -168870,7 +168909,7 @@ few days I will upload a working demo taking care of all the components together. - ; TOFIX: HBWhat.lib is not usable as is still. + ; FIXME: HBWhat.lib is not usable as is still. Viktor, please examine these two functions in wincorec.c HB_FUNC( WHT__GETDLGPROC ) BOOL CALLBACK __DlgProc( H... ) @@ -169024,7 +169063,7 @@ * unlock HVM stack during thread join operation * added workaround for DosWaitThread() which seems to fail if thread terminated before - ; added TOFIX note for OS2 and join code + ; added FIXME note for OS2 and join code 2008-09-19 12:21 UTC+0100 Miguel Angel Marchuet * contrib/hbbmcdx/bmdbfcdx.c @@ -169126,7 +169165,7 @@ * make_vc.mak * Synced with BCC to build in ST mode by default. - ; TOFIX: There seems to be an old problem where contrib + ; FIXME: There seems to be an old problem where contrib .prg files won't get rebuilt after a modification by running make_vc.bat (MSVC only). Marek, if you see this, could you take a look at it? @@ -169316,7 +169355,7 @@ code would apply here, too. ! Fix for SunOS to link against curses instead of ncurses lib. Someone pls verify me. - ; TOFIX: make_tgz.sh in OpenSolaris still has these errors: + ; FIXME: make_tgz.sh in OpenSolaris still has these errors: ld: fatal: relocations remain against allocatable but non-writable sections. ld: fatal: library -lharbour: not found @@ -169329,7 +169368,7 @@ * make_tgz.sh + Added SunOS platform detection as an attempt to make make_tgz.sh work on OpenSolaris. - ; TOFIX: Still, when trying to use make_tgz.sh in OpenSolaris, + ; FIXME: Still, when trying to use make_tgz.sh in OpenSolaris, I'm getting these errors: --- ld: fatal: library -lharbour: not found @@ -169658,7 +169697,7 @@ * contrib/mtpl_vc.mak * MSVS warning level changed to -W4 (with one warning type manually excluded). - ; NOTE/TOFIX: This will still generate quite some warnings, + ; NOTE/FIXME: This will still generate quite some warnings, hopefully we can fix these until the next major release. @@ -169798,12 +169837,12 @@ * contrib/hbwhat/whtsock.c ! Changed #include order of Windows headers to satisfy PellesC 5. - ; TOFIX1: hbct / SETFDATI() has a possible bug here (shown in PelleC 64 bit): + ; FIXME1: hbct / SETFDATI() has a possible bug here (shown in PelleC 64 bit): ../../files.c(264): warning #2006: [ISO] Conversion from 'void *' to 'int' is compiler dependent. ../../files.c(264): warning #2052: Conversion from 'void *' to 'int' is undefined. Problem is with HFILE / HANDLE conversion. - ; TOFIX2: Here are some remaining 64-bit problems: + ; FIXME2: Here are some remaining 64-bit problems: ../../hb_btree.c(643): warning #2006: [ISO] Conversion from 'void *' to 'unsigned long int' is compiler dependent. ../../hb_btree.c(643): warning #2052: Conversion from 'void *' to 'unsigned long int' is undefined. ../../hb_btree.c(739): warning #2006: [ISO] Conversion from 'ioBuffer_T *' to 'unsigned long int' is compiler dependent. @@ -171054,7 +171093,7 @@ + Added comment to 'TAEVSM' test case saying this is a CA-Cl*pper bug. + Added two additional tests doing resizes in ASORT() - blocks. They fail very badly in Harbour. (TOFIX) + blocks. They fail very badly in Harbour. (FIXME) ; Made my indenting of ChangeLog entries compatible with everyone else's. @@ -171399,10 +171438,10 @@ % -FD VC flag removed. This is only needed for IDEs. % -Gs VC flag moved to the common section. % VC flags synced in contrib with core. - + TOFIX added for WinCE command line. It's full of stuff which is _probably_ not needed. + + FIXME added for WinCE command line. It's full of stuff which is _probably_ not needed. + NOTE added about MSDN page explaining VC switches. ; NOTE: -W4 and -Wp64 are recommended for MSVC. - ; TOFIX: There are still a few uninit vars warnings: + ; FIXME: There are still a few uninit vars warnings: harboury.c(7226) : warning C4701: potentially uninitialized local variable 'hb_complval' used macroy.c(3095) : warning C4701: potentially uninitialized local variable 'hb_macrolval' used dbffpt1.c(2671) : warning C4701: potentially uninitialized local variable 'ulType' used @@ -171603,7 +171642,7 @@ fixes and all the remaining interface functions, and old doc. There are some non-implemented stuff, and a couple of - NOTEs and TOFIXes, if someone wants, these can be addressed. + NOTEs and FIXMEs, if someone wants, these can be addressed. (some not, as hbmzip doesn't support multi-volume archives.) ; NOTE: This implementation is based on hbmzip.lib, so you MUST link it, to make it work. INCOMPATIBLE. @@ -171614,7 +171653,7 @@ pull hbmzip to build tests. - Removed ZipArchive sources. ; Temporarily kept hbzipold.cpp to serve as reference. - ; TOFIX: There is a problem with the loop adding new + ; FIXME: There is a problem with the loop adding new files to the .zip. 2008-09-03 15:15 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -171677,7 +171716,7 @@ * utils/hbmake/hbmake.prg ! Fixed to not change casing of files, plus a few other minor fixes. ! Made one filename comparison multiplatform by using hb_FileMatch() - ; Added TOFIXes where filename comparison is not multiplatform. + ; Added FIXMEs where filename comparison is not multiplatform. % Removed some dead or commented code. 2008-09-01 21:52 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -171981,11 +172020,11 @@ * source/rtl/gtchrmap.c * source/rtl/hbgtcore.c * source/vm/hvm.c - + Added three TOFIXes regarding namespace violations. + + Added three FIXMEs regarding namespace violations. s_pszLinkedMain -> hb_vm_pszLinkedMain s_defaultGT -> hb_gt_szNameDefault s_szDefaultCharMapFile -> hb_gt_szCharMapFileDefault - TOFIX: These should be fixed in 1.1 (or maybe even in + FIXME: These should be fixed in 1.1 (or maybe even in 1.0.1 if this isn't such a big problem for 3rd parties). @@ -172860,7 +172899,7 @@ executables. Also, some ws2_32.lib seems definitely superfluous. ] - ; TOFIX: (for __CYGWIN__) + ; FIXME: (for __CYGWIN__) ../../filesys.c: In function `hb_fsPOpen': ../../filesys.c:577: warning: passing arg 1 of `pipe' from incompatible pointer type @@ -172963,7 +173002,7 @@ 2008-08-23 19:00 UTC+0200 Viktor Szakats (vszakats.net/harbour) * source/common/hbwince.c ! strcpy() -> hb_strncpy() - ; TOFIX: Only spd.c and dbgentry.c have some remaining strcpy() + ; FIXME: Only spd.c and dbgentry.c have some remaining strcpy() calls. 2008-08-23 16:52 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -173172,9 +173211,9 @@ * contrib/hbziparch/hbzipnew.cpp ! strcpy() -> hb_strncpy() ! strcat() -> hb_strncat() - ; TOFIX1: There are still two strcpy()s left in SQL_SPRINTF(). + ; FIXME1: There are still two strcpy()s left in SQL_SPRINTF(). Xavi, could you pls take a look at it? - ; TOFIX2: There are still a few strcpy()s in hbwince.c and + ; FIXME2: There are still a few strcpy()s in hbwince.c and dbgentry.c. * source/pp/hbpp.c @@ -173205,7 +173244,7 @@ + Added failing test case of doing AEval() and resizing the evaluated array in the eval codeblock. - ; TOFIX + ; FIXME * utils/hbdoc/ft_funcs.prg * utils/hbdoc/hbdoc.prg @@ -174477,7 +174516,7 @@ * contrib/hbodbc/odbc.c ! Fixed some compile errors for __DMC__. - ; TOFIX: Some more remain. + ; FIXME: Some more remain. ../../odbc.c(517) : Error: undefined identifier 'SQL_IS_INTEGER' ../../odbc.c(525) : Error: undefined identifier 'SQLSetStmtAttr' ../../odbc.c(536) : Error: undefined identifier 'SQLGetConnectAttr' @@ -174490,7 +174529,7 @@ ! Synced (to some extent) with gtwvt.c, so that it now also compiles with __DMC__. ! Fixed a some more compile errors for __DMC__. - ; TOFIX: Some more remain. + ; FIXME: Some more remain. ../../wvgutils.c(356) : Error: undefined identifier 'TTM_SETMARGIN' ../../wvgutils.c(367) : Error: undefined identifier 'TTM_GETMAXTIPWIDTH' ../../wvgutils.c(371) : Error: undefined identifier 'TTM_SETMAXTIPWIDTH' @@ -174523,8 +174562,8 @@ ! Fixed to exclude "possible extraneous ';'" warnings for every for()/while()/etc constructs with an empty body. ! Further fixes to link/lib rules. - ; TOFIX1: odbc.c, gtwvg.c still don't compile. - ; TOFIX2: Harbour executables won't run, by simply doing nothing. + ; FIXME1: odbc.c, gtwvg.c still don't compile. + ; FIXME2: Harbour executables won't run, by simply doing nothing. * source/rtl/gtwvt/gtwvt.c ! Fixed to compile with __DMC__. @@ -174598,8 +174637,8 @@ 2008-08-12 20:55 UTC+0200 Viktor Szakats (vszakats.net/harbour) + config/w32/dm.cf + Digital Mars .cf file added. Some cleanups done, and - TOFIX added besides the following: - ; TOFIX: This file comes from xhb, and it needs to be updated + FIXME added besides the following: + ; FIXME: This file comes from xhb, and it needs to be updated to create core and contrib .lib files in central dir. Until then it doesn't work. Ryszard, if you see this, could you take a look? @@ -174683,7 +174722,7 @@ 2008-08-12 12:02 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/rddads/adsfunc.c ! Fixed GCC warning (Ubuntu/GCC422 + ACE 9.00.0.0) - ; TOFIX: These ones still remain: + ; FIXME: These ones still remain: ../../ads1.c: In function 'adsInfo': ../../ads1.c:2792: warning: format '%ld' expects type 'long int', but argument 5 has type 'UNSIGNED32' ../../ads1.c:2792: warning: format '%ld' expects type 'long int', but argument 6 has type 'UNSIGNED32' @@ -174854,7 +174893,7 @@ 2008-08-09 17:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/extrap.c * deallocate alternative signal stack on exit - TOFIX: hb_vmSetExceptionHandler() / hb_vmUnsetExceptionHandler() + FIXME: hb_vmSetExceptionHandler() / hb_vmUnsetExceptionHandler() cover only part of hb_vmInit() and not hb_vmQuit(). Their calls should be moved to external places where both hb_vmInit() and hb_vmQuit() are executed. @@ -174901,7 +174940,7 @@ ! Removed previously added $(L_USR) from Darwin dynamic lib creation command line, as the L_USR "-arch" flags (and probably others) cannot work here. - ; TOFIX: 'ld: library not found for -lharbour' is still + ; FIXME: 'ld: library not found for -lharbour' is still present. * include/hbsetup.h @@ -175110,7 +175149,7 @@ 2008-08-07 18:50 UTC+0200 Viktor Szakats (vszakats.net/harbour) * source/rtl/achoice.prg - * Minor changes to mouse support. TOFIX/TODO added. + * Minor changes to mouse support. FIXME/TODO added. 2008-08-07 17:48 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/debug/debugger.prg @@ -175588,7 +175627,7 @@ 2008-08-04 15:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/genhrb.c - ; added TOFIX note + ; added FIXME note * pacified warning 2008-08-04 14:27 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -176226,7 +176265,7 @@ - contrib/hbclipsm/dbf.c ! Removed duplicate implementation of DBF() from hbclipsm.lib - ; TOFIX: + ; FIXME: I'm getting these new warnings under BCC55: Warning W8080 source\rtl\filesys.c 2718: '_fstat(int,_stat *)' is declared but never used Warning W8080 source\rtl\filesys.c 2718: '_disable()' is declared but never used @@ -176737,7 +176776,7 @@ * Some formatting. * contrib/hbw32/dllcall.c - + Two TOFIXes added for Win64 support. + + Two FIXMEs added for Win64 support. ! One Warning fixed under Win64. * contrib/hbfimage/make_gcc.sh @@ -176754,7 +176793,7 @@ conditions, the type of handles shouldn't be a concern for most app code. I'd ask everyone using hbodbc to do some tests. - + TOFIXes added where deprecated (and potentially dangerous) + + FIXMEs added where deprecated (and potentially dangerous) APIs are used. * contrib/hbw32/dllcall.c @@ -176774,14 +176813,14 @@ * contrib/hbodbc/tests/odbccall.prg * contrib/hbodbc/tests/testodbc.prg ! Made them work out of the box. - ; TOFIX: All of them gives "unrecognized database format" for harbour.mdb. + ; FIXME: All of them gives "unrecognized database format" for harbour.mdb. 2008-07-08 02:27 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/vm/runner.c + added support for passing non string parameters to .HRB INIT/
procedures/function + added automatic destructors for .HRB modules - ; TOFIX: add protection against possible double executing of + ; FIXME: add protection against possible double executing of EXIT procedures in .HRB modules in HVM quit phase 2008-07-08 00:38 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -176867,7 +176906,7 @@ * contrib/hbw32/w32_reg.prg * Minor formatting. - ; TOFIX: There are still some PellesC 64bit warnings to be fixed. + ; FIXME: There are still some PellesC 64bit warnings to be fixed. (posted separately) 2008-07-07 12:48 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -177026,7 +177065,7 @@ 2008-07-03 18:00 UTC+0200 Viktor Szakats (vszakats.net/harbour) * contrib/hbmzip/hbmzip.c - ! Fixed previous TOFIX for DOS. + ! Fixed previous FIXME for DOS. ! Fixed warning. ! Fixed mistake in previous commit. @@ -177038,7 +177077,7 @@ + Guarded new DOS section with GCC guards, added dummy branch for other DOS compilers. ! Fixed embedded comment. - ; TOFIX: + ; FIXME: ../../hbmzip.c:563: error: 'FILE_ATTRIBUTE_READONLY' undeclared (first use in this function) ../../hbmzip.c:568: error: 'FILE_ATTRIBUTE_DIRECTORY' undeclared (first use in this function) @@ -177065,7 +177104,7 @@ + contrib/hbfimage/tests/imgs_out - contrib/hbfimage/tests/images_out * Some more long filenames removed. - ; TOFIX?: freeimage.ch is still long. + ; FIXME?: freeimage.ch is still long. * contrib/hbfimage/fi_winfu.c * contrib/hbfimage/fi_wrp.c @@ -177589,7 +177628,7 @@ * contrib/hbpgsql/Makefile * contrib/rddads/Makefile ! Fixed a macro check to make autodetection really work. - So the previous TOFIX (2008-06-30 19:20 UTC+0200) is + So the previous FIXME (2008-06-30 19:20 UTC+0200) is now cleared. ; TODO: Adjust hbodbc to contrib Makefile standards. @@ -177653,7 +177692,7 @@ + Added include path detection logic to hbapollo, too. + Added Darwin path to hbgd include path list. + Added std Linux path to hbfbird include path list. - ; TOFIX: Seems that 'ifneq ($(HB_INC_*_OK),)' doesn't + ; FIXME: Seems that 'ifneq ($(HB_INC_*_OK),)' doesn't really work if no path in the path list is valid. 2008-06-30 17:15 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -177824,7 +177863,7 @@ ! Changed strcat() -> hb_strncat() ! Some possible buffer overruns fixed along the way in hbziparch.lib ! Fixed some filename buffer sizes in hbziparch.lib - ; TOFIX: There are still some remaining strcpy()/strcat() + ; FIXME: There are still some remaining strcpy()/strcat() calls in Harbour code: core: dbgentry.c, hbwince.c contrib: hbnf, hbw32, hbwhat32, hbtip @@ -178156,7 +178195,7 @@ numerics. The problem is that these pointers are checked for zero on the .prg level. Notice that using par/retnl() for pointers makes these function fail on Win64. - TOFIX: Two solutions come to mind: 1) extend HVM to make + FIXME: Two solutions come to mind: 1) extend HVM to make it possible to compare pointer types against zero. 2) develop different ways to return errors and modify .prg level code accordingly. @@ -178863,7 +178902,7 @@ huge amount of flickering on every screen update, essentially nilling all screen change buffering efforts. - ; TOFIX: Solve realtime palette change in an + ; FIXME: Solve realtime palette change in an alternative way. 2008-06-20 14:49 UTC+0200 Viktor Szakats (vszakats.net/harbour) @@ -179434,7 +179473,7 @@ * contrib/hbodbc/odbc.c * Using sizeof() wherever possible. ! SQLGETDATA(): One strcpy() converted to hb_strncpy() - + SQLGETDATA(): One TOFIX added for strcat() usage and + + SQLGETDATA(): One FIXME added for strcat() usage and possible buffer overrun. Also, it looks to me that both of the above would better be replaced by memcpy() calls @@ -179448,7 +179487,7 @@ * I've undone fix (2008-06-09 14:48 UTC+0800) for non-selectable maxrow/maxcol, since after the fix the _first_ row/col couldn't be selected. - TOFIX: Reopened. + FIXME: Reopened. 2008-06-12 01:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/contrib/hbw32/dllcall.c @@ -179506,7 +179545,7 @@ (or impossible) to support on other platforms. Timer support could be added to hbw32.lib, though. * Some cleanups. - ; Remaining TOFIXes: + ; Remaining FIXMEs: - Window trashing when settling on a size which cannot be properly filled with the console. Try with vertically or horizontally narrow window shapes. @@ -179839,8 +179878,8 @@ small portion. ; Please test. I doesn't work me for simple test code, I have no idea why. - ; TOFIX: Replace MessageBox() calls with RTEs. - ; TOFIX: Solve any name clashing problems and/or use namespace + ; FIXME: Replace MessageBox() calls with RTEs. + ; FIXME: Solve any name clashing problems and/or use namespace for the proprietary interface. * include/hbapierr.h @@ -179866,9 +179905,9 @@ ! Fixed most cases of trashing whilst marking. Maybe there is a simpler way of doing this... ! Readded "HB_NOSTARTUPWINDOW" feature deleted by mistake. - ; TOFIX: Some trashing is still visible if switching + ; FIXME: Some trashing is still visible if switching directions relative to the starting corner. - ; TOFIX: It doesn't seem to be possible to select + ; FIXME: It doesn't seem to be possible to select the last row and the last column. Pritpal, could you take a look at it? @@ -179887,10 +179926,10 @@ F.e. to save screen size after the user has changed it, or to have a last chance to commit tables, set flags, etc when user (or OS) closed the app window. - ; TOFIX: New TIMER stuff in GTWVT should be replace by + ; FIXME: New TIMER stuff in GTWVT should be replace by a platform neutral solution, which is probably MT. (see also "background events") - ; TOFIX: Is there a way to force "non full content" resize + ; FIXME: Is there a way to force "non full content" resize on the application level? * bld/bld.bat @@ -179921,17 +179960,17 @@ ; TODO: Clean the callback interface to not be Windows specific, and to hole one notifier block with higher level of information. - ; TOFIX: Sometime irreguralities appear in selection, probably due + ; FIXME: Sometime irreguralities appear in selection, probably due to skipped updates or the like. - ; TOFIX: The window gets messy while resizing to a bigger size. + ; FIXME: The window gets messy while resizing to a bigger size. Test: Grab the corner, resize to bigger size while not releasing the mouse button. - ; TOFIX: Window resized to a very small size will have "dead" + ; FIXME: Window resized to a very small size will have "dead" (non-updated) portions on the sides. - ; TOFIX: Resize is without flicker now, but it's not interactive + ; FIXME: Resize is without flicker now, but it's not interactive anymore, so it's difficult to predict what the result will be. - ; TOFIX: It's possible to resize the windows so that parts of screen + ; FIXME: It's possible to resize the windows so that parts of screen disappear. 2008-06-08 20:12 UTC+0800 Pritpal Bedi (pritpal@vouchcac.com @@ -180023,7 +180062,7 @@ win32 system MessageBox() to be shown when certain types of drives (f.e. USB reader devices) are queried. ; Please test. - ; TOFIX: hb_fsChDrv() suffers from the same problem. + ; FIXME: hb_fsChDrv() suffers from the same problem. ; [CANCELLED 1.0.0RC1] * contrib/hbcurl/hbcurl.c @@ -180399,12 +180438,12 @@ ! PQCREATETRACE(), PQCLOSETRACE(), PQTRACE() now only activated when 'NODLL' (temp name) is defined, since passing 'FILE *' to .dlls results in crash. - ; TOFIX? added to PQESCAPEBYTEA() + ; FIXME? added to PQESCAPEBYTEA() * Formatting. % Cleanup, optimizations. ; NOTE: I've tried test.prg and while it runs, it doesn't seem to work properly for some reason. - ; TOFIX: Use hb_parptrGC() for 'PGresult', 'FILE*'. + ; FIXME: Use hb_parptrGC() for 'PGresult', 'FILE*'. * contrib/hbpgsql/make_vc.bat + Now uses the .lib provided in the binary package. [1.0.0RC1] @@ -181069,7 +181108,7 @@ #included in the Harbour source code, moving them anywhere, or accessing them from anywhere is a matter of -I switch. - ; TOFIX: + ; FIXME: - Replace MessageBox() with RTE or HB_TRACE(). - Remove HB_OS_WIN_32_USED dependency. - Review if __XHARBOUR__ branches are indeed necessary. @@ -181093,7 +181132,7 @@ 2008-06-01 13:40 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbcurl/hbcurl.c - ! Fixed TOFIX1 from the previous entry. + ! Fixed FIXME1 from the previous entry. 2008-06-01 13:26 UTC+0100 Viktor Szakats (vszakats.net/harbour) * source/vm/extrap.c @@ -181110,7 +181149,7 @@ ! non-GNU make will also look into the /bin folder for .dlls. ! Lots of fixes, too many to mention. - + Enabled GC pointers. (see TOFIX though) + + Enabled GC pointers. (see FIXME though) + Added all remaining CURL 'easy' API parts and implemented all options existing in 7.18.1: + All option values (except bit-level ones) made available in hbcurl.ch @@ -181125,11 +181164,11 @@ + CURL_ESCAPE() (obsolete) + CURL_UNESCAPE() (obsolete) + CURL_GETDATE() - ; TOFIX1: Could someone look at it? In case I call the destructor + ; FIXME1: Could someone look at it? In case I call the destructor (curl_easy_cleanup()) manually, the garbage collector will run into an invalid pointer, when terminating the test program. - ; TOFIX2: The casting to 'curl_off_t' goes wrong. Could someone + ; FIXME2: The casting to 'curl_off_t' goes wrong. Could someone help? ; NOTE1: Harbour needs at least libcurl 7.17.0. Unfortunately compile time version detection is not working at this time, @@ -181154,11 +181193,11 @@ + CURL_VERSION_INFO() + CURL_EASY_STRERROR() + CURL_SHARE_STRERROR() - + CURL_EASY_ESCAPE() (see TOFIX) - + CURL_EASY_UNESCAPE() (see TOFIX) + + CURL_EASY_ESCAPE() (see FIXME) + + CURL_EASY_UNESCAPE() (see FIXME) + Test app extended. * Renames. - ; Added several more TOFIXes. + ; Added several more FIXMEs. * source/rtl/tget.prg * Minor formatting. @@ -181557,7 +181596,7 @@ * contrib/hbole/ole2.c ! Fixed OLE C++ errors under MSVC. Using Przemek's method. - ; TOFIX: This one is still left: + ; FIXME: This one is still left: .\ole2.c(714) : error C2664: 'HRESULT (IUnknown *,const IID &,void **)' : cannot convert parameter 2 from 'LPIID' to 'const IID &' Reason: cannot convert from 'LPIID' to 'const IID' No constructor could take the source type, or constructor overload resolution was ambiguous @@ -181914,7 +181953,7 @@ * contrib/hbfimage/fi_winfu.c * contrib/hbfimage/fi_wrp.c ! MSVC errors and warnings fixed. - ; TOFIX: Several of them remain. Some contribs don't + ; FIXME: Several of them remain. Some contribs don't compile (gtwvg, hbole, hbw32) at all in C++ mode. * contrib/mtpl_vc.mak @@ -182007,7 +182046,7 @@ * contrib/hbclipsm/status.c * contrib/hbclipsm/gauge.c % Optimizations. - ; TOFIX: GAUGE*() still leaks and doesn't seem to function. + ; FIXME: GAUGE*() still leaks and doesn't seem to function. * contrib/rddads/adsmgmnt.c % Optimizations (using hb_arraySet*()). @@ -182447,7 +182486,7 @@ * Renamed pdf.ch to hbvpdf.ch for above reasons, if this hurts anybody, I will correct it. ! Fixed unused vars and a few other things. - ; TOFIX: - ShellExecute(), GetDeskTopWindow() + ; FIXME: - ShellExecute(), GetDeskTopWindow() dependencies commented out. - fonts.dat dependency is a PITA, so this file should be moved inside @@ -182566,7 +182605,7 @@ 2008-05-18 22:40 UTC+0100 Viktor Szakats (vszakats.net/harbour) * contrib/hbhpdf/harupdf.c - ! Added one TOFIX. + ! Added one FIXME. ! Fixed some casts. 2008-05-18 22:27 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -182575,7 +182614,7 @@ Thanks Petr for the suggestion. ! Changed hb_parnl()/hb_retnl() calls to hb_parptr()/hb_retptr() where a "handle" (which is a memory pointer) is passed. - ; TOFIX: Some of these calls should be changed to the GC version + ; FIXME: Some of these calls should be changed to the GC version to avoid leaks by bad or interrupted program code. 2008-05-18 20:15 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -183377,7 +183416,7 @@ 2008-04-28 18:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/rtl/gtwin/gtwin.c * added mouse wheel support to GTWIN - ; TOFIX: the mouse events code in GTWIN needs cleanup + ; FIXME: the mouse events code in GTWIN needs cleanup current code which uses s_mouseLast is wrong and can cause that some events will be missing and some others are wrongly reported. It should @@ -183480,7 +183519,7 @@ * changed internal logic used for vertical movements. Now it should be much closer to Clipper though it also replicates some wrong Clipper behaviors due to removed protection against some concurrent - modifications in browsed object. I left two TOFIX notes and I'll + modifications in browsed object. I left two FIXME notes and I'll reimplement them later. Please test. Lorenzo it should resolve the problem you reported. @@ -183719,7 +183758,7 @@ * harbour/source/rtl/tbrowse.prg * calculate frozen area size for 5-th element of array returned by Xbase++ compatible method :viewArea(). Viktor please check me. - If you can also describe what exactly TOFIX in :firstScrCol() + If you can also describe what exactly FIXME in :firstScrCol() and :viewArea() means then maybe I can help - I do not have Xbase++ so I do not know what should be fixed. @@ -184100,7 +184139,7 @@ * source/compiler/hbgenerr.c * utils/hbpp/hbpp.c ! Fixed some BCC58 warnings. - ; TOFIX: These remain: + ; FIXME: These remain: Warning W8017 C:\devl\BCC58\Include\stdint.h 77: Redefinition of 'INT16_MIN' is not identical Warning W8017 C:\devl\BCC58\Include\stdint.h 78: Redefinition of 'INT32_MIN' is not identical Warning W8017 C:\devl\BCC58\Include\stdint.h 79: Redefinition of 'INT64_MIN' is not identical @@ -184197,7 +184236,7 @@ * hbtest/make_xpp.bat + Added light framework to implement C level regression tests. + Added regression tests for some incompatible Str() conversions. - TOFIX: The problem seems to be in hb_retnl() (and friends, + FIXME: The problem seems to be in hb_retnl() (and friends, presumably) where in C5x the internal width gets modified to 20 when certain value is reached (+/-1000000000), while in Harbour the length stays 10. @@ -186041,7 +186080,7 @@ * harbour/contrib/hbnf/tempfile.prg * use HB_FTempCreate() - modification borrowed from xHarbour - TOFIX this function uses hb_isbyref() which does not exist + FIXME this function uses hb_isbyref() which does not exist in Harbour * harbour/config/w32/msvc.cf @@ -188246,11 +188285,11 @@ + contrib/msql/make_vc.bat + contrib/msql/common.mak + Added non-GNU make files. - ; TOFIX: I cannot compile these still. + ; FIXME: I cannot compile these still. * contrib/msql/Makefile ! Added SVN header. - ; TOFIX: This is a non-standard Makefile. + ; FIXME: This is a non-standard Makefile. Did anyone manage to compile this lib? * contrib/adordd/adordd.ch @@ -188292,7 +188331,7 @@ + gtwvg/make_b32.bat + gtwvg/make_vc.bat + Added non-GNU make files. - ; TOFIX: gtwvt.obj will clash with the core file with this + ; FIXME: gtwvt.obj will clash with the core file with this name, so this won't properly work yet. * gtwvg/wvtpaint.prg @@ -188380,7 +188419,7 @@ * harbour/bin/pack_src.sh * updated for some recent modifications in contrib/pgsql - TOFIX: it should be updated for all recent modifications in + FIXME: it should be updated for all recent modifications in contrib and MS-Windows build scripts. * harbour/bin/hb-func.sh @@ -188636,7 +188675,7 @@ ! use hb_retclenAdopt() instead of hb_retclenAdoptRaw() + svn:keywords Id svn:eol-style native - TOFIX - these files have to be removed or changed to avoid name conflicts + FIXME - these files have to be removed or changed to avoid name conflicts with ZLIB - personally I vote to add real ZLIB wrapper and only xHarbour compatible .prg functions when they are necessary. Probably only: HB_COMPRESS(), HB_UNCOMPRESS(), HB_COMPRESSBUFLEN() @@ -188877,7 +188916,7 @@ ! Internal error is lauched in case the parameters passed to hb_itemPutCLConst() are violating string item rules. Thanks for Mindaugas for the suggestion. - TOFIX: Since this violation will most probably happen in + FIXME: Since this violation will most probably happen in contrib/win32 OLE code, we'll need to fix that code too. @@ -188993,7 +189032,7 @@ ! Some more xhb API calls changed to Harbour ones. ! TraceLog() -> HB_TRACE() ! HB_ITEM s_OleAuto -> PHB_ITEM s_pOleAuto - TOFIX (new): s_pOleAuto is not freed on app exit. + FIXME (new): s_pOleAuto is not freed on app exit. ! Fixed a few more internal accesses by using API calls. ; NOTE: There are four more complicated problems here @@ -189124,7 +189163,7 @@ + Added FreeImage OSS library Harbour interface. ! Some minor fixes and file rearrangements made. + Added std make files. - ; TOFIX: There is still a potentially dangerous + ; FIXME: There is still a potentially dangerous warning to be fixed in FI_GETBACKGROUNDCOLOR() ; Borrowed from xhb. ; NOTE: The lib made some features available through the xhb @@ -189162,7 +189201,7 @@ + Added firebird library, with some warnings and other minor things fixed, and Harbour std non-GNU make / build files added. - ; TOFIX: There is still a potentially dangerous + ; FIXME: There is still a potentially dangerous warning to be fixed in FBGETBLOB(). ; Borrowed from xhb. @@ -189247,7 +189286,7 @@ RDDINFO(), FIELDLEN(), FIELDDEC(), FIELDTYPE() non namespace conformant Harbour extensions, so these are now always available. - ; NOTE/TOFIX: In RDD we have some more hidden Harbour + ; NOTE/FIXME: In RDD we have some more hidden Harbour specific extensions not properly marked or at least documented, like cRDD, nConnection, cCodePage extra parameters, DBS_FLAG, maybe more. @@ -189259,7 +189298,7 @@ ! Removed two __XHARBOUR__ guards, by making the guarded code the default. We have SET EOL support in Harbour now, so this seems okay. If not, tell. - ; TOFIX: We still have __XHARBOUR__ #defines in pp/ppcore.c + ; FIXME: We still have __XHARBOUR__ #defines in pp/ppcore.c and debug/debugger.prg. * include/hbsetup.ch @@ -189311,10 +189350,10 @@ nor ACCENTED_INTERLEAVED is set - in some CPs '~' is a letter ! use '~' as accented character marker only if it exists in UPPER and LOWER letter sets - our CP code cannot properly decode letter sets - when this condition is not true - it should be fixed (TOFIX) + when this condition is not true - it should be fixed (FIXME) ! use '.' as multibyte character marker only if it exists in UPPER and LOWER letter sets - our CP code cannot properly decode letter sets - when this condition is not true - it should be fixed (TOFIX) + when this condition is not true - it should be fixed (FIXME) * harbour/source/codepage/cpeldos.c * harbour/source/codepage/cpelwin.c @@ -189762,7 +189801,7 @@ DEFPATH() is still marked as HB_C52_UNDOC. ! ADIR() now uses __DEFPATH() instead of DEFPATH() to compile with HB_C52_UNDOC turned off. - ; TOFIX: There are still a few functions we use from core, which + ; FIXME: There are still a few functions we use from core, which are guarded with HB_C52_UNDOC: NATIONMSG(), ISNEGATIVE() * source/vm/memvars.c @@ -189829,7 +189868,7 @@ a few wrong dirs) ; For me form3.hbf works without a closing EOL, under Windows. So the problem might rather be something else. For sure though, - HBPersistent()'s EOL detection and handling is not portable (TOFIX). + HBPersistent()'s EOL detection and handling is not portable (FIXME). * source/compiler/hbcomp.c ! Reverted previous change for non-Unix platforms, regaring @@ -189891,9 +189930,9 @@ ; The above reported by Petr Chornyj. ! Added CRLF at the end of each source file where there was none. ! Fixed version headers. - ; TOFIX1: HBPersistent():LoadFromFile() has a bug where it doesn't + ; FIXME1: HBPersistent():LoadFromFile() has a bug where it doesn't load the last line if it doesn't end with newline. - ; TOFIX2: HBPersistent() uses At() "dirty" extension. + ; FIXME2: HBPersistent() uses At() "dirty" extension. * contrib/odbc/test/odbcdemo.prg - contrib/odbc/test/browodbc.prg @@ -189988,8 +190027,8 @@ + contrib/hbzlib/common.mak + Standardized make files (and some cleanup along the way) ; TODO: BC dll creating is still to be cleaned. - ; TOFIX: Lots of warnings if compiled with standard BCC switch set. - ; TOFIX: Lots of warnings when compiler for MSVC. + ; FIXME: Lots of warnings if compiled with standard BCC switch set. + ; FIXME: Lots of warnings when compiler for MSVC. * contrib/hgf/win32/win32.c * contrib/hgf/win32/form.prg @@ -190163,9 +190202,9 @@ + contrib/pgsql/make_vc.bat * Changed most libs to use the generic non-GNU makefiles. + Added support for MSVC for all above libs. - + Added "implib" for rdd_ads. TOFIX: Doesn't work for MSVC. - ; TOFIX: directx won't build under MSVC with an error. - ; TOFIX: I couldn't compile pgsql using latest 8.2.5. [DONE] + + Added "implib" for rdd_ads. FIXME: Doesn't work for MSVC. + ; FIXME: directx won't build under MSVC with an error. + ; FIXME: I couldn't compile pgsql using latest 8.2.5. [DONE] * contrib/samples/gauge.c ! Fixed MSVC warning. @@ -190191,8 +190230,8 @@ * Moved test functions to test fir. ! Fixed bld_b32.bat ! Renamed non-GNU BC make files to be in sync with the rest of contribs. - ; TOFIX: There are some warnings under MSVC. - ; TOFIX: .def -> .lib conversions fails under MSVC. + ; FIXME: There are some warnings under MSVC. + ; FIXME: .def -> .lib conversions fails under MSVC. - contrib/ole - contrib/delphi @@ -190330,7 +190369,7 @@ * harbour/source/rtl/fserror.c * harbour/source/rtl/fstemp.c * harbour/source/rtl/filesys.c - * use HB_OS_WIN_32_USED as in other files (still on TOFIX list) + * use HB_OS_WIN_32_USED as in other files (still on FIXME list) * harbour/source/rtl/seconds.c + added HB_OS_WIN_32_USED @@ -190369,7 +190408,7 @@ * added explicit casting or changed some declarations to avoid warning about possible data lost in conversions * harbour/source/rtl/direct.c - % optimized directory array creation and fixed one TOFIX note + % optimized directory array creation and fixed one FIXME note I left few warnings intentionally to mark places which should be updated in the future (f.e. HB_SYMBOLSCOPE translations). @@ -190719,7 +190758,7 @@ * source/rtl/binnum.c * source/rtl/direct.c ! Some VS2005 -O2 warnings. - One TOFIX added at the same time, since DIRECTORY() + One FIXME added at the same time, since DIRECTORY() has a problem returning file sizes greater than 2GB. 2007-10-27 16:57 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -191324,7 +191363,7 @@ is only added by the SET PRINTER TO command). ! Fixed SET DEVICE TO PRINTER to point to "LPT1" by default (instead of "PRN") under Win32 (this is now in sync with - ISPRINTER() logic). Added "PRN" for the rest of OSes (TOFIX). + ISPRINTER() logic). Added "PRN" for the rest of OSes (FIXME). ; Pls test. * source/rtl/isprint.c @@ -191671,7 +191710,7 @@ - __MVRESTORE() - 3rd/4th parameters are Harbour extensions to set variable name mask. Redirected from the internal 5.x function named __MRESTORE(). - DB*() - cRDD, nConnection, cCodePage extra parameters in many DB*() functions. - TOFIX: None of them is marked as HB_EXTENSION. + FIXME: None of them is marked as HB_EXTENSION. - SET()s - These are not marked as HB_EXTENSION. - ? - Is there anything else? @@ -193410,7 +193449,7 @@ * source/rtl/tbrowse.prg + Some scattered logic moved inside :Configure() - + Some TOFIXes added. + + Some FIXMEs added. ! ::ColorSpec() to call Configure(). * source/debug/dbgtobj.prg @@ -196624,7 +196663,7 @@ 2007-05-17 00:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/TODO - * removed some not longer necessary TODO/TOFIX + * removed some not longer necessary TODO/FIXME * harbour/common.mak * harbour/source/rtl/Makefile @@ -196740,7 +196779,7 @@ * harbour/source/compiler/harbour.y ! Fixed error message text when unclosed multiline codeblock was detected (said: <||...> instead of {||...}). - ; TOFIX: In this same case two memory blocks are not released: + ; FIXME: In this same case two memory blocks are not released: source\main\harbour.c:329: HB_TR_ERROR Block 1 0098C39C (size 100) source\main\harbour.c:329: HB_TR_ERROR Block 2 0098C200 (size 92) @@ -196840,7 +196879,7 @@ 2007-05-11 10:17 UTC+0100 Viktor Szakats (vszakats.net/harbour) * harbour/source/rtl/filehb.c - * Changed one old TOFIX to a NOTE regarding a minor + * Changed one old FIXME to a NOTE regarding a minor incompatibility in FILE() where the filename is RTrim()-ed in Clipper but not in Harbour. It became a NOTE because making it compatible would mean losing some portability. @@ -196901,7 +196940,7 @@ 2007-05-08 16:06 UTC+0300 Chen Kedem * source/rtl/mlctopos.c ! Make the function MLCTOPOS() more compatible. - TOFIX note added about existing problems. + FIXME note added about existing problems. * utils/hbtest/rt_misc.prg + Add some tests for MLCTOPOS() @@ -197428,7 +197467,7 @@ * harbour/source/rtl/tgetlist.prg % Avoiding INLINE for speed. % Using INIT for quicker object initialization. - + Added TGet() NOTEs, TOFIX. + + Added TGet() NOTEs, FIXME. ! Fixed some problems in TGetList. (Two GetApplyKey() potential RTEs.) ! Fixed a few missing "CLASS TBrowse"-es. @@ -197442,7 +197481,7 @@ CA-Cl*pper and Harbour Get system. The following methods got most of the fixes: + ::Reform() undocumented C52 method added. - ! ::Display() fixed when not having focus. (old TOFIX) + ! ::Display() fixed when not having focus. (old FIXME) ! ::UpdateBuffer() fixed when not having focus. ! ::SetFocus() fixed to do nothing when already having focus. ! ::KillFocus() made almost fully compatible. @@ -197750,7 +197789,7 @@ opposed to the usleep() calls. * harbour/source/rtl/tget.prg - ! Adjusted my old TOFIX note. + ! Adjusted my old FIXME note. 2007-04-16 21:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcompat.ch @@ -199414,7 +199453,7 @@ * harbour/source/rtl/alert.prg * use hb_gtInfo( GTI_FULLSCREEN ) to detect type of GT driver ! some minor fixes - TOFIX: we have to also use GTI_ISCTWIN or add window allocation + FIXME: we have to also use GTI_ISCTWIN or add window allocation to standard GT drivers to be Clipper compatible when CTWIN is used - In Clipper Tools ALERT() works in differ way then the standard one. It creates separate window box to display @@ -200258,7 +200297,7 @@ * harbour/source/vm/codebloc.c * harbour/source/vm/hvm.c * harbour/source/vm/macro.c - * general PCODE cleanup and address most of TODO/TOFIX notes in + * general PCODE cleanup and address most of TODO/FIXME notes in source code: ! fixed GPF traps when too long string or codeblock is generatd + added support for 16MB codeblocks and strings @@ -200292,7 +200331,7 @@ use sizeof() in #if directives) * harbour/TODO - - removed console.c cleanup note from TOFIX + - removed console.c cleanup note from FIXME * harbour/include/hbcomp.h * harbour/include/hbexprb.c @@ -200478,7 +200517,7 @@ Clipper. % cleaned and improved the speed of printer redirecting in console code. Chen please check if CG still reports problems and if not ubdate - TODO/TOFIX or inform me about them. + TODO/FIXME or inform me about them. * some cleanups in building process for different *nixes: MacOSX, SunOS, *BSD, etc. * removed not longer necessary (I hope) compiler flag to force default @@ -200599,7 +200638,7 @@ ! Fixed the COPY command to work on Windows-NT (/Y flag isn't supported) * TODO - - Remove TOFIX item with were fixed + - Remove FIXME item with were fixed 2006-11-29 10:30 UTC+0100 J. Lefebvre (jfl/at/mafact.com) * harbour/makefile.vc @@ -200704,7 +200743,7 @@ % eliminated unnecessary allocations + added int mode member to common part of HB_COMP and HB_MACRO structure. It's initialized to HB_MODE_MACRO or HB_MODE_COMPILER - + add TOFIX note about memory leaks in cParamTypes and pParamClasses + + add FIXME note about memory leaks in cParamTypes and pParamClasses members of COMDECLARED structure. It's a part of unfinished strong typing code. I do not know what Ryszard plan to do with it so I'm leaving it as is. The part of strong typing which were operating @@ -201237,7 +201276,7 @@ 2006-11-14 13:50 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/TODO - * removed to resolved problems from TODO/TOFIX list + * removed to resolved problems from TODO/FIXME list * harbour/include/hbexprb.c * indenting and tab to spaces conversion @@ -201263,8 +201302,8 @@ 2006-11-13 11:22 UTC+0200 Chen Kedem * TODO - - Remove one TOFIX item with was fixed (PP of a long line). - + Add 3 TOFIX items (these are all that I know of). + - Remove one FIXME item with was fixed (PP of a long line). + + Add 3 FIXME items (these are all that I know of). + doc/pp.txt * PP description by Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -202746,7 +202785,7 @@ file. * harbour/TODO - - removed tt4.prg example from TOFIX + - removed tt4.prg example from FIXME * harbour/source/vm/classes.c ! fixed supercast message validation @@ -203007,7 +203046,7 @@ hb_objPopSuperCast() is not longer necessary - removed hb_mthRequested() and first parameter from hb_mthAddTime() + added char * hb_clsName( USHORT uiClass ); - + added TOFIX notes in hb___msgGetData() and hb___msgSetData() + + added FIXME notes in hb___msgGetData() and hb___msgSetData() * harbour/source/vm/estack.c + added uiClass and uiMethod to HB_STACK_STATE structure @@ -203211,7 +203250,7 @@ 2006-08-14 14:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/TODO - - removed eliminating hb_stackTopItem() from TOFIX - Done. + - removed eliminating hb_stackTopItem() from FIXME - Done. * harbour/include/hbexprc.c * restore original expression type after *POPEQ optimization @@ -203332,7 +203371,7 @@ ! BCC -w warnings fixed. * harbour/source/rtl/filehb.c - + Added TOFIX about a CA-Cl*pper incompatibility. + + Added FIXME about a CA-Cl*pper incompatibility. In CA-Cl*pper the argument of FILE() is RTrim()-ed before doing the check. @@ -204455,7 +204494,7 @@ 2006-06-22 11:58 UTC+0300 Chen Kedem * TODO - * Modify to include latests TODO and TOFIX entries, + * Modify to include latests TODO and FIXME entries, removed completed tasks. * doc/gtapi.txt + Add a section by Przemyslaw Czerpak (druzus/at/priv.onet.pl) @@ -207613,7 +207652,7 @@ GETSYMBOLPOINTER() -> __DYNSGETPOINTER() GETSYMBOLNAME() -> __DYNSGETNAME() + Added the two functions to hbextern.ch - + TOFIX added to symbol.prg to remove the remaining one C + + FIXME added to symbol.prg to remove the remaining one C function inside BEGINDUMP. (Antonio, can you take a look?) 2005-11-22 10:08 UTC+0100 Viktor Szakats (vszakats.net/harbour) @@ -208890,7 +208929,7 @@ NOTE: * source/rtl/tget.prg ! One previous fix reverted because it broke numeric data entry. - Solved from caller side for the meantime. TOFIX added. + Solved from caller side for the meantime. FIXME added. 2005-08-23 22:01 UTC-0400 Alejandro de Garate @@ -223309,7 +223348,7 @@ e.vc 2001-07-23 21:29 UTC+0100 Viktor Szakats (vszakats.net/harbour) * source/rtl/tbrowse.prg - + TOFIX added, about missing AutoLite support (needed for dbEdit()) + + FIXME added, about missing AutoLite support (needed for dbEdit()) * source/rtl/net.c * Cleaned up platform branching. @@ -231617,7 +231656,7 @@ NOTE: of calling it, to execute faster. * source/rtl/console.c - - Removed TOFIX from EJECT. + - Removed FIXME from EJECT. * include/hbvm.h - Removed double declaration for hb_vmQuit() @@ -237745,7 +237784,7 @@ NOTE: * source/rtl/transfrm.c * source/compiler/genc.c ! Fixed GCC -O2 warnings - * One TODO changed to TOFIX in __PREPROCESS() + * One TODO changed to FIXME in __PREPROCESS() * source/rtl/gtapi.c * source/vm/extend.c @@ -237890,7 +237929,7 @@ NOTE: ; TODO: Convert the rest of the language modules to the new format. * source/rtl/run.c - ! TOFIX added. + ! FIXME added. * include/hbapi.h % Removed #include "hbdefs.h", because it was also included by hbvmpub.h. @@ -238410,7 +238449,7 @@ NOTE: + Shows DJGPP package version. * source/rtl/filesys.c - + TOFIX added for hb_fsFile() + + FIXME added for hb_fsFile() * config/dos/global.cf ! Got rid of the \ to / conversion for rsx32, watcom and djgpp @@ -238907,7 +238946,7 @@ NOTE: * source/vm/hvm.c ! hb_vmNegate() fixed handling of number width for doubles ! hb_vmPushDouble() fixed handling of number widths. - + TOFIX added for hb_vmPushDouble(), because in Clipper the exact width + + FIXME added for hb_vmPushDouble(), because in Clipper the exact width is extracted from the pcode, the problem is that Harbour doesn't have this info stored there. @@ -240196,7 +240235,7 @@ NOTE: * source/vm/runner.c - One TODO removed - + One TOFIX added + + One FIXME added * source/rtl/mouseapi.c + source/rtl/mousex.c @@ -240213,7 +240252,7 @@ NOTE: * EXTERN belonging to tools moved from the central HBEXTERN.CH file to local list in HBRUN. % Minor optimization in makefiles. - ! HBEXTERN.CH TOFIX fixed. + ! HBEXTERN.CH FIXME fixed. * include/hbvmpub.h compiler/genc.c @@ -240442,7 +240481,7 @@ NOTE: *source/rtl/gt/gtcrs.c *matching #endif added *inkey.ch added again - we need these definitions to define the - keys translation table - TOFIX + keys translation table - FIXME 20000319-01:35 EST Paul Tucker * source/pp/ppcore.c @@ -240934,10 +240973,10 @@ NOTE: source/pp/pplib.c source/compiler/hbgenerr.c + Added warning when a macro is doubly defined. - !! IMPORTANT TOFIX !!: The filename and line number will not be shown in + !! IMPORTANT FIXME !!: The filename and line number will not be shown in every cases, and even if shown it will wrong. ! The PP related static variables are now initialized in hb_pp_Init(); - !! IMPORTANT TOFIX !!: The tables in PPTABLE.C should also be + !! IMPORTANT FIXME !!: The tables in PPTABLE.C should also be reinitialized on hb_pp_Init() to make multiple file compiling work. ; Until these are not fixed the warning is commented out. * include/hbver.h @@ -241348,7 +241387,7 @@ NOTE: * source/rtl/console.c % QOUT() small optim., variable scope adjusted. ! __EJECT() fixed to always reset PROW() and PCOL() - + TOFIX added for __EJECT() since in Clipper it always prints a eject, + + FIXME added for __EJECT() since in Clipper it always prints a eject, regardless of the SET DEVICE setting. % SAVESCREEN() optimized. ! RESTSCREEN() fixed to check the fifth parameter, like in CA-Cl*pper. @@ -241378,7 +241417,7 @@ NOTE: ! "<>" chars around the email address replaced with "()", since it confused some OSes. * source/rtl/tget.prg - ! TOFIX added. + ! FIXME added. 20000308-15:05 GMT+1 Ryszard Glab @@ -241488,7 +241527,7 @@ NOTE: * source/rtl/gt/* source/rtl/gtapi.c ! hb_gt_ReadKey() made common for all GT types. OS specific branch removed. - + TOFIXes added to gtwin.c for all the places where the API calling + + FIXMEs added to gtwin.c for all the places where the API calling rules are violated, so that the upper level API is called from a lower one. * source/rtl/console.c @@ -241499,7 +241538,7 @@ NOTE: % s_iDevRow and s_iDevCol removed. !! WARNING !! Non-GT mode has not been tested. Also some more tests would be good for the GT mode. - + TOFIXes added for all places where the API calling rules are violated, + + FIXMEs added for all places where the API calling rules are violated, so that an API level is skipped and the low-level API is directly called. * source/rtl/mouseapi.c @@ -241886,7 +241925,7 @@ NOTE: * doc/en/misc.txt ! One copyright fixed. * source/rtl/alert.prg - ! Comments changed to standard NOTE/TOFIX format. + ! Comments changed to standard NOTE/FIXME format. * source/compiler/genc.c + Small alignment in the .C output format. * .cvsignore @@ -242292,7 +242331,7 @@ NOTE: source/runner/stdalone/Makefile - Removed EXTERNAL.PRG, since it's no longer needed. * source/rtl/typefile.prg - + TOFIX added about non-standard class usage. + + FIXME added about non-standard class usage. ! CVS ID fixed (again). 20000217-15:22 EST Paul Tucker @@ -242396,7 +242435,7 @@ NOTE: CA-Cl*pper 5.2. ! Fixed calculating of the columns fitting on the screen. ::LeftDetermine(), ::Stabilize() - + Added a bunch of NOTEs and TOFIXes. + + Added a bunch of NOTEs and FIXMEs. % Optimization in Hilite() * source/rtl/tbcolumn.prg ! Fixed column width calculations. (still not perfect, but better) @@ -242739,7 +242778,7 @@ NOTE: make_tpl.* * My name changed to the real one. * source/rtl/tbcolumn.prg - ! NOFIX: -> TOFIX: + ! NOFIX: -> FIXME: 20000211-09:33 GMT+1 Patrick Mast + doc/harbext.txt @@ -242923,7 +242962,7 @@ NOTE: * source/rtl/strings.c % Small optimization in HB_ISSPACE() ! "compilant" changed to "compliant" - * Three NOTEs changed to TOFIXes (in RAT() and STRTRAN()) + * Three NOTEs changed to FIXMEs (in RAT() and STRTRAN()) ! Small formatting fixes. (NG doc moved before any misc notes and comments related to the function) * source/rtl/environ.c @@ -243057,7 +243096,7 @@ NOTE: source/runner/stdalone/external.prg ! Added #include "hbsetup.ch" + Added mouse functions. - + TOFIX: added about missing #ifdefs. + + FIXME: added about missing #ifdefs. * source/rtl/harbinit.prg ! Added #include "hbsetup.ch" * source/rtl/mouseapi.c @@ -246397,7 +246436,7 @@ Tue Oct 26 12:15:01 1999 Gonzalo A. Diethelm + Exported/Private MESSAGEs grouped. ! ToDecPos() fixed to redisplay and reposition the cursor. ! WordLeft(), WordRight() fixed to reposition the cursor. - + Some TODOs and TOFIXs added. + + Some TODOs and FIXMEs added. * source/rdd/dbstrux.prg source/rtl/dummy.prg + __FLEDIT() function added, guarded with STRICT, for collectors only ;) @@ -247281,7 +247320,7 @@ Wed Oct 20 19:28:51 1999 Gonzalo A. Diethelm * source/rtl/adir.prg + SET DEFAULT handling added. * source/rtl/dir.c - + TOFIX: added to change to filename splitting/merging to use the + + FIXME: added to change to filename splitting/merging to use the hb_FName*() functions. That's why DIRECTORY() will GPF now on some systems (WinNT/MINGW32/normal slash in directory). * tests/rtl_test.prg @@ -247641,7 +247680,7 @@ Fri Oct 15 16:42:30 1999 Gonzalo A. Diethelm * source/compiler/genjava.c + Java source generation added to the compiler (by Matteo Baccan) * source/rtl/filesys.c - + TOFIX: added to hb_fsIsDrv() (by Jose Lalin) + + FIXME: added to hb_fsIsDrv() (by Jose Lalin) * source/rtl/dates.c ! Some pp directives indented. @@ -247831,7 +247870,7 @@ Thu Oct 14 17:29:32 1999 Gonzalo A. Diethelm * include/caundoc.h + _bcmp, _bscan added (thanks to Matteo Baccan) * source/rtl/set.c - + TOFIX: added for DEFPATH() + + FIXME: added for DEFPATH() * source/rtl/Makefile + source/rtl/input.prg + source/rtl/setta.prg @@ -248187,7 +248226,7 @@ Thu Oct 14 17:29:32 1999 Gonzalo A. Diethelm * source/rdd/dbcmd.c ! RDDSETDEFAULT() now throws an error if a non-existing RDD name is passed. Like in Clipper. - + TOFIX: added about directly modified hb_parc() buffers. + + FIXME: added about directly modified hb_parc() buffers. * source/rtl/tget.prg ! Mistyped object variable names corrected. ! :display now leaves to cursor at a Clipper compatible position. @@ -250292,7 +250331,7 @@ NOTE: You have to recompile all PRG sources! * Slight change in the format of the copyright header, the text itself has not changed. * source/rtl/filesys.c - + hb_fnFNameMerge() - TOFIX: added again about the lack of buffer overlow + + hb_fnFNameMerge() - FIXME: added again about the lack of buffer overlow handling. * .cvsignore ! DOS/LINUX/OS2 GNU Make systems working directories added. @@ -251331,7 +251370,7 @@ NOTE: You have to recompile all PRG sources! * source/rtl/arrays.c ! hb_arrayScan(). Fixed a string comparison bug. * source/rtl/transform.c - + TOFIX added about a directly modified item string buffer. + + FIXME added about a directly modified item string buffer. 19990908-02:30 GMT+1 Viktor Szakats (vszakats.net/harbour) * source/rtl/math.c @@ -251373,7 +251412,7 @@ NOTE: You have to recompile all PRG sources! After this fix the IS????() macros are Clipper compatible. * source/rtl/tbcolumn.prg ! TBColumnNew() fixed not to throw an error when a block is not passed. - + TBColumnNew() TOFIX added about possibly different behaviour than Clipper. + + TBColumnNew() FIXME added about possibly different behaviour than Clipper. * source/rtl/math.c ! hb_numRound() fixed for negative values. % hb_numRound() is not using sprintf(), atof(), hb_x*() calls, so it should @@ -251928,7 +251967,7 @@ NOTE: You have to recompile all PRG sources! the very long buffer lengths (ULONG_MAX). FREADSTR() is using the large read right now. ! hb_fsWriteLarge() infinite loop on error fixed (?) Paul ? - + TOFIX: added to hb_fsFNameMerge() (related to buffer overrun). + + FIXME: added to hb_fsFNameMerge() (related to buffer overrun). * source/rtl/console.c source/rtl/set.c include/set.h @@ -252267,7 +252306,7 @@ NOTE: You have to recompile all PRG sources! * hb_mouse_Hide() now work in any text screen mode. * hb_mouse_IsButtonPressed() now return TRUE if any button was pressed. - TOFIX: every time I read event from the queue I lose the result + FIXME: every time I read event from the queue I lose the result so I can not check if iButton was pressed, so for now I ignore iButton and return TRUE if the last event saved had DOWN in it. also to keep the noise level down I mask out MOUSE_MOTION @@ -252702,7 +252741,7 @@ NOTE: You have to recompile all PRG sources! * Some __DOS__ guards changed to DOS. Some left since the code guarded is compiler specific. Warning! This change could cause problems with some other DOS compilers. - + TOFIX: added about a chdir call in RD() code. + + FIXME: added about a chdir call in RD() code. + Code added to the non DOS branch. * source/rtl/console.c @@ -253291,7 +253330,7 @@ NOTE: You have to recompile all PRG code! + Added standard error messages to runlib.c, printf() is no longer called. + TODO: the error codes should be replaced with meaningful ones. * Large cleanup in runlib.c, functions made static, renamings, some BYTE - changed to BOOL, TOFIX, TODO added, etc. + changed to BOOL, FIXME, TODO added, etc. + runner.prg help message standardized, extended. + Tried to modify Borland makefiles to be able to build runner. + Added runner lib to the Makefile's library list. @@ -253467,7 +253506,7 @@ NOTE: You have to recompile all PRG code! * source/rtl/transfrm.c * PicFlags type changed to WORD * Some length and pos variable types changed to ULONG. - * TOFIX: added about an unreachable code segment. + * FIXME: added about an unreachable code segment. * Some zero changed to '\0'. * source/rtl/strings.c source/rtl/maths.c @@ -254132,7 +254171,7 @@ NOTE: You have to recompile all PRG code! ! ASIZE() Fixed parameter handling. ! hb_arrayIns() removed one error to be Clipper compatible. ! hb_arrayDel() removed one error to be Clipper compatible. - + AFILL(), ASCAN(), AEVAL(), ACOPY() TOFIX: added. + + AFILL(), ASCAN(), AEVAL(), ACOPY() FIXME: added. * source/rtl/transform.c @@ -255231,7 +255270,7 @@ Wed Aug 04 12:25:12 1999 Gonzalo A. Diethelm * source/rtl/achoice.prg % Some small optimalizations, userfunc as codeblock support documented. * source/rtl/alert.prg - + Added TOFIX: DispBegin issue. + + Added FIXME: DispBegin issue. * include/ctoharb.h include/extend.h include/init.h @@ -262804,13 +262843,11 @@ June 1st. 1999 00:30 Ron Pinkas TEST/WORKING/TestFor.prg -> added this file -/* - This work is licensed under the Creative Commons Attribution-ShareAlike - License. To view a copy of this license, visit - http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to +/* This work is licensed under the Creative Commons Attribution-ShareAlike + 4.0 International License. To view a copy of this license, visit + https://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. A summary of the license and the full legal text is included - in file: COPYING.txt. If you wish to distribute some or all of this + in file: LICENSE.txt. If you wish to distribute some or all of this work under different terms, please contact respective author(s). - The license applies to all entries newer than 2009-04-28. - */ + The license applies to all entries newer than 2009-04-28. */ diff --git a/LICENSE.txt b/LICENSE.txt index 0d9a8b34a5..0367a2aa83 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -24,7 +24,7 @@ THE HARBOUR PROJECT LIBRARY LICENSE =================================== Note: This license applies to most of the files in the include directory, - source directory, and subdirectories. + /src, /contrib, /extras directories, and their subdirectories. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -85,14 +85,14 @@ Note: This license applies to the files where the content explicitly indicates so. These works are licensed under the Creative Commons Attribution-ShareAlike - License. To view a copy of this license, visit - http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to + 4.0 International License. To view a copy of this license, visit + https://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. A summary of the license and the full legal text is included after this text. If you wish to distribute some or all of these works under different terms, please contact respective author(s). - License summary: Creative Commons Attribution-ShareAlike 3.0 Unported + License summary: Creative Commons Attribution-ShareAlike 4.0 International -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- @@ -123,421 +123,431 @@ Under the following conditions: -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- - Creative Commons Legal Code: Attribution-ShareAlike 3.0 Unported +Attribution-ShareAlike 4.0 International -CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE -LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN -ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS -INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES -REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR -DAMAGES RESULTING FROM ITS USE. +======================================================================= -License: +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS -CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS -PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE -WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS -PROHIBITED. +Using Creative Commons Public Licenses -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND -AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS -LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU -THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH -TERMS AND CONDITIONS. +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. -1. Definitions + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors - a. "Adaptation" means a work based upon the Work, or upon the Work - and other pre-existing works, such as a translation, adaptation, - derivative work, arrangement of music or other alterations of a - literary or artistic work, or phonogram or performance and - includes cinematographic adaptations or any other form in which - the Work may be recast, transformed, or adapted including in any - form recognizably derived from the original, except that a work - that constitutes a Collection will not be considered an - Adaptation for the purpose of this License. For the avoidance of - doubt, where the Work is a musical work, performance or - phonogram, the synchronization of the Work in timed-relation - with a moving image ("synching") will be considered an - Adaptation for the purpose of this License. + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees - b. "Collection" means a collection of literary or artistic works, - such as encyclopedias and anthologies, or performances, - phonograms or broadcasts, or other works or subject matter other - than works listed in Section 1(f) below, which, by reason of the - selection and arrangement of their contents, constitute - intellectual creations, in which the Work is included in its - entirety in unmodified form along with one or more other - contributions, each constituting separate and independent works - in themselves, which together are assembled into a collective - whole. A work that constitutes a Collection will not be - considered an Adaptation (as defined below) for the purposes of - this License. +======================================================================= - c. "Creative Commons Compatible License" means a license that is - listed at http://creativecommons.org/compatiblelicenses that has - been approved by Creative Commons as being essentially - equivalent to this License, including, at a minimum, because - that license: (i) contains terms that have the same purpose, - meaning and effect as the License Elements of this License; and, - (ii) explicitly permits the relicensing of adaptations of works - made available under that license under this License or a - Creative Commons jurisdiction license with the same License - Elements as this License. +Creative Commons Attribution-ShareAlike 4.0 International Public +License - d. "Distribute" means to make available to the public the original - and copies of the Work or Adaptation, as appropriate, through - sale or other transfer of ownership. +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. - e. "License Elements" means the following high-level license - attributes as selected by Licensor and indicated in the title of - this License: Attribution, ShareAlike. - f. "Licensor" means the individual, individuals, entity or entities - that offer(s) the Work under the terms of this License. +Section 1 -- Definitions. - g. "Original Author" means, in the case of a literary or artistic - work, the individual, individuals, entity or entities who - created the Work or if no individual or entity can be - identified, the publisher; and in addition (i) in the case of a - performance the actors, singers, musicians, dancers, and other - persons who act, sing, deliver, declaim, play in, interpret or - otherwise perform literary or artistic works or expressions of - folklore; (ii) in the case of a phonogram the producer being the - person or legal entity who first fixes the sounds of a - performance or other sounds; and, (iii) in the case of - broadcasts, the organization that transmits the broadcast. + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. - h. "Work" means the literary and/or artistic work offered under the - terms of this License including without limitation any - production in the literary, scientific and artistic domain, - whatever may be the mode or form of its expression including - digital form, such as a book, pamphlet and other writing; a - lecture, address, sermon or other work of the same nature; a - dramatic or dramatico-musical work; a choreographic work or - entertainment in dumb show; a musical composition with or - without words; a cinematographic work to which are assimilated - works expressed by a process analogous to cinematography; a work - of drawing, painting, architecture, sculpture, engraving or - lithography; a photographic work to which are assimilated works - expressed by a process analogous to photography; a work of - applied art; an illustration, map, plan, sketch or - three-dimensional work relative to geography, topography, - architecture or science; a performance; a broadcast; a - phonogram; a compilation of data to the extent it is protected - as a copyrightable work; or a work performed by a variety or - circus performer to the extent it is not otherwise considered a - literary or artistic work. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. - i. "You" means an individual or entity exercising rights under this - License who has not previously violated the terms of this - License with respect to the Work, or who has received express - permission from the Licensor to exercise rights under this - License despite a previous violation. + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. - j. "Publicly Perform" means to perform public recitations of the - Work and to communicate to the public those public recitations, - by any means or process, including by wire or wireless means or - public digital performances; to make available to the public - Works in such a way that members of the public may access these - Works from a place and at a place individually chosen by them; - to perform the Work to the public by any means or process and - the communication to the public of the performances of the Work, - including by public digital performance; to broadcast and - rebroadcast the Work by any means including signs, sounds or - images. + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. - k. "Reproduce" means to make copies of the Work by any means - including without limitation by sound or visual recordings and - the right of fixation and reproducing fixations of the Work, - including storage of a protected performance or phonogram in - digital form or other electronic medium. + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. -2. Fair Dealing Rights. + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. - Nothing in this License is intended to reduce, limit, or restrict - any uses free from copyright or rights arising from limitations or - exceptions that are provided for in connection with the copyright - protection under copyright law or other applicable laws. + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. -3. License Grant. + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. - Subject to the terms and conditions of this License, Licensor - hereby grants You a worldwide, royalty-free, non-exclusive, - perpetual (for the duration of the applicable copyright) license to - exercise the rights in the Work as stated below: + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. - a. to Reproduce the Work, to incorporate the Work into one or more - Collections, and to Reproduce the Work as incorporated in the - Collections; + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. - b. to create and Reproduce Adaptations provided that any such - Adaptation, including any translation in any medium, takes - reasonable steps to clearly label, demarcate or otherwise - identify that changes were made to the original Work. For - example, a translation could be marked "The original work was - translated from English to Spanish," or a modification could - indicate "The original work has been modified."; + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. - c. to Distribute and Publicly Perform the Work including as - incorporated in Collections; and, + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. - d. to Distribute and Publicly Perform Adaptations. + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. - e. For the avoidance of doubt: - i. Non-waivable Compulsory License Schemes. In those - jurisdictions in which the right to collect royalties - through any statutory or compulsory licensing scheme - cannot be waived, the Licensor reserves the exclusive - right to collect such royalties for any exercise by You of - the rights granted under this License; +Section 2 -- Scope. - ii. Waivable Compulsory License Schemes. In those - jurisdictions in which the right to collect royalties - through any statutory or compulsory licensing scheme can - be waived, the Licensor waives the exclusive right to - collect such royalties for any exercise by You of the - rights granted under this License; and, + a. License grant. - iii. Voluntary License Schemes. The Licensor waives the right - to collect royalties, whether individually or, in the - event that the Licensor is a member of a collecting - society that administers voluntary licensing schemes, via - that society, from any exercise by You of the rights - granted under this License. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: - The above rights may be exercised in all media and formats whether - now known or hereafter devised. The above rights include the right - to make such modifications as are technically necessary to exercise - the rights in other media and formats. Subject to Section 8(f), all - rights not expressly granted by Licensor are hereby reserved. + a. reproduce and Share the Licensed Material, in whole or + in part; and -4. Restrictions. + b. produce, reproduce, and Share Adapted Material. - The license granted in Section 3 above is expressly made subject to - and limited by the following restrictions: + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. - a. You may Distribute or Publicly Perform the Work only under the - terms of this License. You must include a copy of, or the - Uniform Resource Identifier (URI) for, this License with every - copy of the Work You Distribute or Publicly Perform. You may not - offer or impose any terms on the Work that restrict the terms of - this License or the ability of the recipient of the Work to - exercise the rights granted to that recipient under the terms of - the License. You may not sublicense the Work. You must keep - intact all notices that refer to this License and to the - disclaimer of warranties with every copy of the Work You - Distribute or Publicly Perform. When You Distribute or Publicly - Perform the Work, You may not impose any effective technological - measures on the Work that restrict the ability of a recipient of - the Work from You to exercise the rights granted to that - recipient under the terms of the License. This Section 4(a) - applies to the Work as incorporated in a Collection, but this - does not require the Collection apart from the Work itself to be - made subject to the terms of this License. If You create a - Collection, upon notice from any Licensor You must, to the - extent practicable, remove from the Collection any credit as - required by Section 4(c), as requested. If You create an - Adaptation, upon notice from any Licensor You must, to the - extent practicable, remove from the Adaptation any credit as - required by Section 4(c), as requested. + 3. Term. The term of this Public License is specified in Section + 6(a). - b. You may Distribute or Publicly Perform an Adaptation only under - the terms of: (i) this License; (ii) a later version of this - License with the same License Elements as this License; (iii) a - Creative Commons jurisdiction license (either this or a later - license version) that contains the same License Elements as this - License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative - Commons Compatible License. If you license the Adaptation under - one of the licenses mentioned in (iv), you must comply with the - terms of that license. If you license the Adaptation under the - terms of any of the licenses mentioned in (i), (ii) or (iii) - (the "Applicable License"), you must comply with the terms of - the Applicable License generally and the following provisions: - (I) You must include a copy of, or the URI for, the Applicable - License with every copy of each Adaptation You Distribute or - Publicly Perform; (II) You may not offer or impose any terms on - the Adaptation that restrict the terms of the Applicable License - or the ability of the recipient of the Adaptation to exercise - the rights granted to that recipient under the terms of the - Applicable License; (III) You must keep intact all notices that - refer to the Applicable License and to the disclaimer of - warranties with every copy of the Work as included in the - Adaptation You Distribute or Publicly Perform; (IV) when You - Distribute or Publicly Perform the Adaptation, You may not - impose any effective technological measures on the Adaptation - that restrict the ability of a recipient of the Adaptation from - You to exercise the rights granted to that recipient under the - terms of the Applicable License. This Section 4(b) applies to - the Adaptation as incorporated in a Collection, but this does - not require the Collection apart from the Adaptation itself to - be made subject to the terms of the Applicable License. + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. - c. If You Distribute, or Publicly Perform the Work or any - Adaptations or Collections, You must, unless a request has been - made pursuant to Section 4(a), keep intact all copyright notices - for the Work and provide, reasonable to the medium or means You - are utilizing: (i) the name of the Original Author (or - pseudonym, if applicable) if supplied, and/or if the Original - Author and/or Licensor designate another party or parties (e.g., - a sponsor institute, publishing entity, journal) for attribution - ("Attribution Parties") in Licensor's copyright notice, terms of - service or by other reasonable means, the name of such party or - parties; (ii) the title of the Work if supplied; (iii) to the - extent reasonably practicable, the URI, if any, that Licensor - specifies to be associated with the Work, unless such URI does - not refer to the copyright notice or licensing information for - the Work; and (iv) , consistent with Ssection 3(b), in the case - of an Adaptation, a credit identifying the use of the Work in - the Adaptation (e.g., "French translation of the Work by - Original Author," or "Screenplay based on original Work by - Original Author"). The credit required by this Section 4(c) may - be implemented in any reasonable manner; provided, however, that - in the case of a Adaptation or Collection, at a minimum such - credit will appear, if a credit for all contributing authors of - the Adaptation or Collection appears, then as part of these - credits and in a manner at least as prominent as the credits for - the other contributing authors. For the avoidance of doubt, You - may only use the credit required by this Section for the purpose - of attribution in the manner set out above and, by exercising - Your rights under this License, You may not implicitly or - explicitly assert or imply any connection with, sponsorship or - endorsement by the Original Author, Licensor and/or Attribution - Parties, as appropriate, of You or Your use of the Work, without - the separate, express prior written permission of the Original - Author, Licensor and/or Attribution Parties. + 5. Downstream recipients. - d. Except as otherwise agreed in writing by the Licensor or as may - be otherwise permitted by applicable law, if You Reproduce, - Distribute or Publicly Perform the Work either by itself or as - part of any Adaptations or Collections, You must not distort, - mutilate, modify or take other derogatory action in relation to - the Work which would be prejudicial to the Original Author's - honor or reputation. Licensor agrees that in those jurisdictions - (e.g. Japan), in which any exercise of the right granted in - Section 3(b) of this License (the right to make Adaptations) - would be deemed to be a distortion, mutilation, modification or - other derogatory action prejudicial to the Original Author's - honor and reputation, the Licensor will waive or not assert, as - appropriate, this Section, to the fullest extent permitted by - the applicable national law, to enable You to reasonably - exercise Your right under Section 3(b) of this License (right to - make Adaptations) but not otherwise. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. -5. Representations, Warranties and Disclaimer + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, -LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR -WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, -STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF -TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, -NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, -OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT -DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED -WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. -6. Limitation on Liability. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). -EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL -LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, -INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT -OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN -ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + b. Other rights. -7. Termination + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this - License. Individuals or entities who have received Adaptations - or Collections from You under this License, however, will not - have their licenses terminated provided such individuals or - entities remain in full compliance with those licenses. Sections - 1, 2, 5, 6, 7, and 8 will survive any termination of this - License. + 2. Patent and trademark rights are not licensed under this + Public License. - b. Subject to the above terms and conditions, the license granted - here is perpetual (for the duration of the applicable copyright - in the Work). Notwithstanding the above, Licensor reserves the - right to release the Work under different license terms or to - stop distributing the Work at any time; provided, however that - any such election will not serve to withdraw this License (or - any other license that has been, or is required to be, granted - under the terms of this License), and this License will continue - in full force and effect unless terminated as stated above. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. -8. Miscellaneous - a. Each time You Distribute or Publicly Perform the Work or a - Collection, the Licensor offers to the recipient a license to - the Work on the same terms and conditions as the license granted - to You under this License. +Section 3 -- License Conditions. - b. Each time You Distribute or Publicly Perform an Adaptation, - Licensor offers to the recipient a license to the original Work - on the same terms and conditions as the license granted to You - under this License. +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. - c. If any provision of this License is invalid or unenforceable - under applicable law, it shall not affect the validity or - enforceability of the remainder of the terms of this License, - and without further action by the parties to this agreement, - such provision shall be reformed to the minimum extent necessary - to make such provision valid and enforceable. + a. Attribution. - d. No term or provision of this License shall be deemed waived and - no breach consented to unless such waiver or consent shall be in - writing and signed by the party to be charged with such waiver - or consent. + 1. If You Share the Licensed Material (including in modified + form), You must: - e. This License constitutes the entire agreement between the - parties with respect to the Work licensed here. There are no - understandings, agreements or representations with respect to - the Work not specified here. Licensor shall not be bound by any - additional provisions that may appear in any communication from - You. This License may not be modified without the mutual written - agreement of the Licensor and You. + a. retain the following if it is supplied by the Licensor + with the Licensed Material: - f. The rights granted under, and the subject matter referenced, in - this License were drafted utilizing the terminology of the Berne - Convention for the Protection of Literary and Artistic Works (as - amended on September 28, 1979), the Rome Convention of 1961, the - WIPO Copyright Treaty of 1996, the WIPO Performances and - Phonograms Treaty of 1996 and the Universal Copyright Convention - (as revised on July 24, 1971). These rights and subject matter - take effect in the relevant jurisdiction in which the License - terms are sought to be enforced according to the corresponding - provisions of the implementation of those treaty provisions in - the applicable national law. If the standard suite of rights - granted under applicable copyright law includes additional - rights not granted under this License, such additional rights - are deemed to be included in the License; this License is not - intended to restrict the license of any rights under applicable - law. + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); -Creative Commons Notice + ii. a copyright notice; -Creative Commons is not a party to this License, and makes no warranty -whatsoever in connection with the Work. Creative Commons will not be -liable to You or any party on any legal theory for any damages -whatsoever, including without limitation any general, special, -incidental or consequential damages arising in connection to this -license. Notwithstanding the foregoing two (2) sentences, if Creative -Commons has expressly identified itself as the Licensor hereunder, it -shall have all rights and obligations of Licensor. + iii. a notice that refers to this Public License; -Except for the limited purpose of indicating to the public that the -Work is licensed under the CCPL, Creative Commons does not authorize -the use by either party of the trademark "Creative Commons" or any -related trademark or logo of Creative Commons without the prior -written consent of Creative Commons. Any permitted use will be in -compliance with Creative Commons' then-current trademark usage -guidelines, as may be published on its website or otherwise made -available upon request from time to time. For the avoidance of doubt, -this trademark restriction does not form part of the License. + iv. a notice that refers to the disclaimer of + warranties; -Creative Commons may be contacted at http://creativecommons.org/. + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + + including for purposes of Section 3(b); and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. GNU GENERAL PUBLIC LICENSE VERSION 2 diff --git a/README.md b/README.md index 0f1a93fa3f..6345a112e2 100644 --- a/README.md +++ b/README.md @@ -1953,7 +1953,6 @@ Supported shells per host platforms: * Harbour [internal documents](doc/) * [Wikipedia](https://en.wikipedia.org/wiki/Harbour_compiler) - -This document Copyright © 2009-2015 Viktor Szakats (vszakats.net/harbour)
-Licensed under [Creative Commons Attribution-ShareAlike 3.0](http://creativecommons.org/licenses/by-sa/3.0/)
-See [LICENSE](LICENSE.txt). +--- +This document Copyright © 2009–present Viktor Szakats (vszakats.net/harbour)
+[![Creative Commons Attribution-ShareAlike 4.0](https://mirrors.creativecommons.org/presskit/buttons/80x15/svg/by-sa.svg)](https://creativecommons.org/licenses/by-sa/4.0/) diff --git a/bin/check.hb b/bin/check.hb index fdbb0c54a6..1c53e2089f 100755 --- a/bin/check.hb +++ b/bin/check.hb @@ -111,7 +111,7 @@ STATIC FUNCTION CheckFile( cName, /* @ */ aErr, lApplyFixes ) "*.po", ; "*.md", ; "*.html", ; - "*/hb-charmap.def", ; /* TOFIX: Use 8.3 name */ + "*/hb-charmap.def", ; /* FIXME: Use 8.3 name */ "debian/*", ; "package/*", ; "lib/3rd/*", ; @@ -494,7 +494,7 @@ STATIC FUNCTION StripCStrings( cFile ) LOCAL tmp DO WHILE ( tmp := hb_BAt( '"', cFile, nPos ) ) > 0 - /* TOFIX: imprecise escaped char detection */ + /* FIXME: imprecise escaped char detection */ IF ( !( hb_BSubStr( cFile, tmp - 1, 1 ) == "\" ) .OR. ; hb_BSubStr( cFile, tmp - 2, 2 ) == "\\" ) .AND. ; !( hb_BSubStr( cFile, tmp - 1, 1 ) + hb_BSubStr( cFile, tmp + 1, 1 ) == "''" ) diff --git a/config/aix/gcc.mk b/config/aix/gcc.mk index e9750433aa..4f549ce3fc 100644 --- a/config/aix/gcc.mk +++ b/config/aix/gcc.mk @@ -73,12 +73,12 @@ AR_RULE = ( $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) rc $(LIB_DIR)/$@ $(^ DY := $(CC) DFLAGS += -shared -Wl,-G $(LIBPATHS) -# TOFIX: CHECKME, there was space between -o and output name +# FIXME: CHECKME, there was space between -o and output name #DY_OUT := -o$(subst x,x, ) DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(SYSLIBS),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! #define dynlib_object # @$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/common/watcom.mk b/config/common/watcom.mk index 9447c195cf..a14ca2d454 100644 --- a/config/common/watcom.mk +++ b/config/common/watcom.mk @@ -33,14 +33,14 @@ AR_RULE = $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) $(LIB_DIR)/$@ $(foreac ifeq ($(HB_SHELL),dos) - # NOTE: The empty line directly before 'endef' HAVE TO exist! + # NOTE: The empty line directly before 'endef' HAS TO exist! # It causes that every command will be separated by LF define link_file @$(ECHO) $(ECHOQUOTE)FILE $(file)$(ECHOQUOTE) >> __link__.tmp endef - # NOTE: The empty line directly before 'endef' HAVE TO exist! + # NOTE: The empty line directly before 'endef' HAS TO exist! define link_lib @$(ECHO) $(ECHOQUOTE)LIB $(lib)$(ECHOQUOTE) >> __link__.tmp @@ -55,7 +55,7 @@ ifeq ($(HB_SHELL),dos) LD_RULE = $(link_exe_file) $(HB_USER_LDFLAGS) - # NOTE: The empty line directly before 'endef' HAVE TO exist! + # NOTE: The empty line directly before 'endef' HAS TO exist! define lib_object @$(ECHO) $(ECHOQUOTE)-+$(file)$(ECHOQUOTE) >> __lib__.tmp diff --git a/config/cygwin/gcc.mk b/config/cygwin/gcc.mk index b1c3a9d144..2310d10e9b 100644 --- a/config/cygwin/gcc.mk +++ b/config/cygwin/gcc.mk @@ -61,7 +61,7 @@ LDFLAGS += $(LIBPATHS) AR := $(HB_CCPATH)$(HB_CCPREFIX)ar -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define library_object @$(ECHO) $(ECHOQUOTE)$(subst \,/,$(file))$(ECHOQUOTE) >> __lib__.tmp @@ -79,7 +79,7 @@ DFLAGS += -shared $(LIBPATHS) DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/darwin/icc.mk b/config/darwin/icc.mk index f7bf0d031c..04145f2e22 100644 --- a/config/darwin/icc.mk +++ b/config/darwin/icc.mk @@ -44,7 +44,7 @@ DFLAGS += -dynamic -flat_namespace -undefined warning -multiply_defined suppress DY_OUT := -o$(subst x,x, ) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(SYSLIBS),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(subst \,/,$(file))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/dos/djgpp.mk b/config/dos/djgpp.mk index 9e53169f30..5ee5b95567 100644 --- a/config/dos/djgpp.mk +++ b/config/dos/djgpp.mk @@ -69,7 +69,7 @@ LD_OUT := -o LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-L$(dir)) LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! # It causes that every command will be separated by LF define lib_object @$(ECHO) $(ECHOQUOTE)ADDMOD $(file)$(ECHOQUOTE) >> __lib__.tmp @@ -88,7 +88,7 @@ define create_library $(ARSTRIP) endef -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define link_file @$(ECHO) $(ECHOQUOTE)$(file)$(ECHOQUOTE) >> __link__.tmp @@ -120,7 +120,7 @@ ifeq ($(HB_BUILD_DYN),dostest) DFLAGS += --whole-archive DLIBS := - # NOTE: The empty line directly before 'endef' HAVE TO exist! + # NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(subst \,/,$(file))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/dos/watcom.mk b/config/dos/watcom.mk index fb6322e858..253b8dbbee 100644 --- a/config/dos/watcom.mk +++ b/config/dos/watcom.mk @@ -97,7 +97,7 @@ ifeq ($(HB_BUILD_DYN),dostest) DLIBS_COMMA := endif - # NOTE: The empty line directly before 'endef' HAVE TO exist! + # NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)FILE '$(file)'$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/hpux/gcc.mk b/config/hpux/gcc.mk index 8d3627ee9d..c80d9ec6ee 100644 --- a/config/hpux/gcc.mk +++ b/config/hpux/gcc.mk @@ -53,7 +53,7 @@ DFLAGS += -shared $(LIBPATHS) DY_OUT := -o$(subst x,x, ) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(SYSLIBS),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/linux/gcc.mk b/config/linux/gcc.mk index bfe1b5c55d..a5231145cc 100644 --- a/config/linux/gcc.mk +++ b/config/linux/gcc.mk @@ -48,7 +48,7 @@ ifeq ($(HB_SHELL),sh) AR_RULE = ( $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) $(ARSTRIP) ) || ( $(RM) $(LIB_DIR)/$@ && $(FALSE) ) else -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define library_object @$(ECHO) $(ECHOQUOTE)$(subst \,/,$(file))$(ECHOQUOTE) >> __lib__.tmp @@ -71,7 +71,7 @@ ifeq ($(HB_SHELL),sh) DY_RULE = $(DY) $(DFLAGS) -Wl,-soname,$(DYN_NAME_CPT) $(HB_USER_DFLAGS) $(DY_OUT)$(DYN_DIR)/$@ $^ $(DLIBS) $(DYSTRIP) && ([ "$(@F)" = "$(notdir $(DYN_FILE_NVR))" ] || $(LN) $(@F) $(DYN_FILE_NVR)) && ([ "$(@F)" = "$(notdir $(DYN_FILE_CPT))" ] || $(LN) $(@F) $(DYN_FILE_CPT)) else -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/linux/icc.mk b/config/linux/icc.mk index a6c7c41800..3762523fe5 100644 --- a/config/linux/icc.mk +++ b/config/linux/icc.mk @@ -49,7 +49,7 @@ DFLAGS += -shared $(LIBPATHS) DY_OUT := -o$(subst x,x, ) DLIBS := $(foreach lib,$(SYSLIBS),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/linux/watcom.mk b/config/linux/watcom.mk index d2bc085478..0040978b6f 100644 --- a/config/linux/watcom.mk +++ b/config/linux/watcom.mk @@ -62,7 +62,7 @@ LDLIBS += $(foreach lib,$(LIBS),$(LIB_DIR)/$(lib)) #DY_OUT := #DLIBS := # -## NOTE: The empty line directly before 'endef' HAVE TO exist! +## NOTE: The empty line directly before 'endef' HAS TO exist! #define dynlib_object # @$(ECHO) $(ECHOQUOTE)FILE '$(file)'$(ECHOQUOTE) >> __dyn__.tmp # diff --git a/config/os2/watcom.mk b/config/os2/watcom.mk index c8655a993c..bfcb51bd13 100644 --- a/config/os2/watcom.mk +++ b/config/os2/watcom.mk @@ -73,7 +73,7 @@ DY_OUT := DLIBS := $(HB_USER_LIBS) DLIBS += $(foreach lib,$(LIBS),$(LIB_DIR)/$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)FILE '$(file)'$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/postinst.hb b/config/postinst.hb index 09026eb3fa..55b49bab65 100644 --- a/config/postinst.hb +++ b/config/postinst.hb @@ -179,7 +179,7 @@ PROCEDURE Main( ... ) mk_hb_FLinkSym( "harbour" + hb_ps() + cDynVersionFull, hb_DirSepToOS( GetEnvC( "HB_INSTALL_DYN" ) ) + hb_ps() + ".." + hb_ps() + cDynVersionFull ) CASE GetEnvC( "HB_INSTALL_DYN" ) == "/usr/local/harbour/lib" - /* TOFIX: Rewrite this in .prg: + /* FIXME: Rewrite this in .prg: ld="/usr/lib" if [ -n "${HB_INST_PKGPREF}" ] || [ -w $ld ] then diff --git a/config/vxworks/diab.mk b/config/vxworks/diab.mk index 41983232ac..23f84a85ec 100644 --- a/config/vxworks/diab.mk +++ b/config/vxworks/diab.mk @@ -85,7 +85,7 @@ DFLAGS += -Xpic -Wl, -Xshared -Wl, -Xdynamic $(DLIBPATHS) DY_OUT := -o$(subst x,x, ) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(SYSLIBS_DYN),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(subst \,/,$(file))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/vxworks/gcc.mk b/config/vxworks/gcc.mk index 1daab6e6d6..c3ae47af95 100644 --- a/config/vxworks/gcc.mk +++ b/config/vxworks/gcc.mk @@ -66,7 +66,7 @@ DFLAGS += -shared $(DLIBPATHS) DY_OUT := -o$(subst x,x, ) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(SYSLIBS_DYN),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/wce/mingwarm.mk b/config/wce/mingwarm.mk index 39e5c9ceb3..ad3388af42 100644 --- a/config/wce/mingwarm.mk +++ b/config/wce/mingwarm.mk @@ -59,7 +59,7 @@ LDFLAGS += $(LIBPATHS) AR := $(HB_CCPATH)$(HB_CCPREFIX)ar -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define library_object @$(ECHO) $(ECHOQUOTE)$(subst \,/,$(file))$(ECHOQUOTE) >> __lib__.tmp @@ -77,7 +77,7 @@ DFLAGS += -shared $(LIBPATHS) DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/wce/msvcarm.mk b/config/wce/msvcarm.mk index b0aba4324c..d85cd41ef6 100644 --- a/config/wce/msvcarm.mk +++ b/config/wce/msvcarm.mk @@ -105,7 +105,7 @@ DFLAGS += -nologo -dll -subsystem:windowsce -nodefaultlib:oldnames.lib $(LIBPATH DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(file)$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/wce/poccarm.mk b/config/wce/poccarm.mk index 71a93968c5..2616fa85b0 100644 --- a/config/wce/poccarm.mk +++ b/config/wce/poccarm.mk @@ -53,7 +53,7 @@ DFLAGS += -nologo -dll $(LIBPATHS) DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(file)$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/win/bcc.mk b/config/win/bcc.mk index 1e734c46ae..955827ec0c 100644 --- a/config/win/bcc.mk +++ b/config/win/bcc.mk @@ -121,7 +121,7 @@ ifneq ($(HB_SHELL),sh) # are only needed to support pre-Windows XP systems, where # limit is 2047 chars. [vszakats] - # NOTE: The empty line directly before 'endef' HAVE TO exist! + # NOTE: The empty line directly before 'endef' HAS TO exist! define library_object @$(ECHO) $(ECHOQUOTE)-+$(subst /,$(ECHOBACKSLASH),$(file)) $(LINECONT)$(ECHOQUOTE) >> __lib__.tmp @@ -153,7 +153,7 @@ else DLIBS := $(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS) cw32mt import32 endif -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(subst /,$(ECHOBACKSLASH),$(file)) +$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/win/icc.mk b/config/win/icc.mk index 29d072c493..d80dc45751 100644 --- a/config/win/icc.mk +++ b/config/win/icc.mk @@ -53,7 +53,7 @@ DFLAGS += -nologo -dll -subsystem:console $(LIBPATHS) DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(file)$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/win/mingw.mk b/config/win/mingw.mk index 7be6fe459a..ceb297129f 100644 --- a/config/win/mingw.mk +++ b/config/win/mingw.mk @@ -107,7 +107,7 @@ LDFLAGS += $(LIBPATHS) AR := $(HB_CCPATH)$(HB_CCPREFIX)ar -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define library_object @$(ECHO) $(ECHOQUOTE)$(subst \,/,$(file))$(ECHOQUOTE) >> __lib__.tmp @@ -125,7 +125,7 @@ DFLAGS += -shared $(LIBPATHS) DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),-l$(lib)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)INPUT($(subst \,/,$(file)))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/win/msvc.mk b/config/win/msvc.mk index ea270cd9ff..f7f5544e41 100644 --- a/config/win/msvc.mk +++ b/config/win/msvc.mk @@ -89,7 +89,7 @@ DFLAGS += -nologo -dll -subsystem:console $(LIBPATHS) DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(file)$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/win/pocc.mk b/config/win/pocc.mk index 4a5af82ae9..b54d1cb144 100644 --- a/config/win/pocc.mk +++ b/config/win/pocc.mk @@ -52,7 +52,7 @@ DFLAGS += -nologo -dll $(LIBPATHS) DY_OUT := $(LD_OUT) DLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(3RDLIBS) $(SYSLIBS),$(lib)$(LIB_EXT)) -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(file)$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/win/watcom.mk b/config/win/watcom.mk index fd9cc2e1cb..670d0d9603 100644 --- a/config/win/watcom.mk +++ b/config/win/watcom.mk @@ -79,7 +79,7 @@ else DLIBS_COMMA := endif -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)FILE '$(file)'$(ECHOQUOTE) >> __dyn__.tmp diff --git a/config/win/xcc.mk b/config/win/xcc.mk index 4622167248..8a0cb5626b 100644 --- a/config/win/xcc.mk +++ b/config/win/xcc.mk @@ -61,7 +61,7 @@ else DYNFIX := endif -# NOTE: The empty line directly before 'endef' HAVE TO exist! +# NOTE: The empty line directly before 'endef' HAS TO exist! define dynlib_object @$(ECHO) $(ECHOQUOTE)$(subst /,\,$(file))$(ECHOQUOTE) >> __dyn__.tmp diff --git a/contrib/gtwvg/wvgwing.c b/contrib/gtwvg/wvgwing.c index 5b08433365..7bf5e637de 100644 --- a/contrib/gtwvg/wvgwing.c +++ b/contrib/gtwvg/wvgwing.c @@ -1016,7 +1016,7 @@ HB_FUNC( WVG_ADDTOOLBARBUTTON ) tbb.dwData = 0; tbb.iString = iNewString; - /* TOFIX: Convertion of LRESULT to HB_BOOL */ + /* FIXME: Convertion of LRESULT to HB_BOOL */ bSuccess = ( HB_BOOL ) SendMessage( hWndTB, TB_ADDBUTTONS, ( WPARAM ) 1, ( LPARAM ) ( LPTBBUTTON ) &tbb ); #if ! defined( HB_OS_WIN_CE ) SendMessage( hWndTB, TB_SETPADDING, ( WPARAM ) 0, ( LPARAM ) MAKELPARAM( 10, 10 ) ); @@ -1036,7 +1036,7 @@ HB_FUNC( WVG_ADDTOOLBARBUTTON ) tbb.dwData = 0; tbb.iString = 0; - /* TOFIX: Convertion of LRESULT to HB_BOOL */ + /* FIXME: Convertion of LRESULT to HB_BOOL */ bSuccess = ( HB_BOOL ) SendMessage( hWndTB, TB_ADDBUTTONS, ( WPARAM ) 1, ( LPARAM ) ( LPTBBUTTON ) &tbb ); hb_retl( bSuccess ); return; diff --git a/contrib/hbcomm/comm.prg b/contrib/hbcomm/comm.prg index 51e0e51063..ddb4ef67c9 100644 --- a/contrib/hbcomm/comm.prg +++ b/contrib/hbcomm/comm.prg @@ -57,7 +57,7 @@ FUNCTION INIT_PORT( cPort, nBaud, nData, nParity, nStop, nBufferSize ) hb_mutexLock( s_hbcomm_mutex ) - /* TOFIX: We should get that number from core to avoid + /* FIXME: We should get that number from core to avoid getting mixed up with com port access outside this compatibility interface. [vszakats] */ nPort := Len( s_hPort ) + 1 diff --git a/contrib/hbfbird/tfirebrd.prg b/contrib/hbfbird/tfirebrd.prg index faff0c291c..2f2c0f27cd 100644 --- a/contrib/hbfbird/tfirebrd.prg +++ b/contrib/hbfbird/tfirebrd.prg @@ -543,7 +543,7 @@ METHOD Refresh() CLASS TFbQuery IF HB_ISARRAY( qry ) ::numcols := qry[ 4 ] - /* TOFIX: This is faulty code. ::aStruct will become zero length, out of sync with ::numcols. */ + /* FIXME: This is faulty code. ::aStruct will become zero length, out of sync with ::numcols. */ ::aStruct := StructConvert( qry[ 6 ], ::db, ::dialect ) ::lError := .F. diff --git a/contrib/hbfimage/fi_wrp.c b/contrib/hbfimage/fi_wrp.c index dfd6c777fc..71b2ef580a 100644 --- a/contrib/hbfimage/fi_wrp.c +++ b/contrib/hbfimage/fi_wrp.c @@ -45,7 +45,7 @@ * */ -/* TOFIX: To use strings (or other solutions) for remaining raw pointers. */ +/* FIXME: To use strings (or other solutions) for remaining raw pointers. */ #include "hbapi.h" #include "hbapiitm.h" diff --git a/contrib/hbformat/hbfmtcls.prg b/contrib/hbformat/hbfmtcls.prg index 90b60dce88..23a6727abd 100644 --- a/contrib/hbformat/hbfmtcls.prg +++ b/contrib/hbformat/hbfmtcls.prg @@ -53,7 +53,7 @@ #define RF_STATE_CODE 3 #define RF_STATE_RET 4 -// TOFIX: +// FIXME: // 1. in PP commands "" should not be converted to "< var >" // 2. To add a space between "!" operator and its argument // unless it's beginning with a parenthesis: @@ -673,7 +673,7 @@ METHOD ConvertCmd( cLine, nBegin, nEnd, lFirstOnly ) CLASS HBFormatCode IF ::lCase - IF ! HB_ISNUMERIC( nBegin ) /* TOFIX: Temporary hack to avoid RTE when processing contrib/hbhttpd/core.prg */ + IF ! HB_ISNUMERIC( nBegin ) /* FIXME: Temporary hack to avoid RTE when processing contrib/hbhttpd/core.prg */ ::nErr := 1 ::cLineErr := cLine RETURN .F. diff --git a/contrib/hbformat/utils/hbformat.prg b/contrib/hbformat/utils/hbformat.prg index 772eebadf0..e64afe0b31 100644 --- a/contrib/hbformat/utils/hbformat.prg +++ b/contrib/hbformat/utils/hbformat.prg @@ -47,6 +47,7 @@ #require "hbformat" #include "directry.ch" +#include "hbver.ch" ANNOUNCE HB_GTSYS REQUEST HB_GT_CGI_DEFAULT @@ -61,7 +62,7 @@ PROCEDURE Main( ... ) #endif aParams := hb_AParams() - IF Empty( aParams ) .OR. ( Left( cFileName := ATail( aParams ), 1 ) $ "@/-" ) + IF Empty( aParams ) .OR. Left( cFileName := ATail( aParams ), 1 ) $ "@/-" About() RETURN ENDIF @@ -139,8 +140,8 @@ STATIC PROCEDURE DirEval( cInitDir, cMask, lRecur, bCode ) FOR EACH file IN Directory( cInitDir + cMask, "HSD" ) IF "D" $ file[ F_ATTR ] - IF !( "." == file[ F_NAME ] ) .AND. ; - !( ".." == file[ F_NAME ] ) .AND. lRecur + IF ! "." == file[ F_NAME ] .AND. ; + ! ".." == file[ F_NAME ] .AND. lRecur DirEval( cInitDir + file[ F_NAME ], cMask, lRecur, bCode ) ENDIF ELSE @@ -156,9 +157,13 @@ STATIC PROCEDURE About() OutStd( ; "Harbour Source Formatter " + HBRawVersion() + hb_eol() + ; - "Copyright (c) 2009-2016, Alexander S.Kresin" + hb_eol() + ; - "http://harbour-project.org/" + hb_eol() + ; - hb_eol() + ; + "Copyright (c) 2010-" + ; + "2016" + ", " + ; + hb_Version( HB_VERSION_URL_BASE ) + hb_eol() + ; + "Copyright (c) 2009, Alexander S.Kresin" + hb_eol() + ; + hb_eol() ) + + OutStd( ; "Syntax: hbformat [options] [@config] " + hb_eol() + ; hb_eol() ) diff --git a/contrib/hbhttpd/core.prg b/contrib/hbhttpd/core.prg index a54cfce4a8..a7503a2dc1 100644 --- a/contrib/hbhttpd/core.prg +++ b/contrib/hbhttpd/core.prg @@ -917,7 +917,7 @@ STATIC FUNCTION HttpDateFormat( tDate ) { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }[ DoW( tDate ) ] + ", " + ; PadL( Day( tDate ), 2, "0" ) + " " + ; { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }[ Month( tDate ) ] + ; - " " + PadL( Year( tDate ), 4, "0" ) + " " + hb_TToC( tDate, "", "HH:MM:SS" ) + " GMT" // TOFIX: time zone + " " + PadL( Year( tDate ), 4, "0" ) + " " + hb_TToC( tDate, "", "HH:MM:SS" ) + " GMT" // FIXME: time zone STATIC FUNCTION HttpDateUnformat( cDate, tDate ) diff --git a/contrib/hbnetio/utils/hbnetio/hbnetio.prg b/contrib/hbnetio/utils/hbnetio/hbnetio.prg index 331167a345..19cd107133 100644 --- a/contrib/hbnetio/utils/hbnetio/hbnetio.prg +++ b/contrib/hbnetio/utils/hbnetio/hbnetio.prg @@ -30,9 +30,11 @@ - add support for subnet masks in allow/block lists, f.e. 172.16.0.0/12, and same for IPv6 */ #include "fileio.ch" +#include "inkey.ch" #include "hbhrb.ch" #include "hbsocket.ch" +#include "hbver.ch" #include "hbnetio.ch" @@ -284,7 +286,7 @@ PROCEDURE netiosrv_Main( lUI, ... ) ENDIF /* Command prompt */ - DO WHILE ! netiosrv[ _NETIOSRV_lQuit ] .and. inkey() != 27 + DO WHILE ! netiosrv[ _NETIOSRV_lQuit ] .AND. inkey() != 27 hb_idleSleep( 5 ) ENDDO @@ -833,8 +835,10 @@ STATIC PROCEDURE HB_Logo() OutStd( ; "Harbour NETIO Server " + StrTran( Version(), "Harbour " ) + hb_eol() + ; - "Copyright (c) 2009-2016, Przemyslaw Czerpak, Viktor Szakats" + hb_eol() + ; - "http://harbour-project.org/" + hb_eol() + ; + "Copyright (c) 2009-" + ; + "2016" + ", " + ; + "Przemyslaw Czerpak, Viktor Szakats" + hb_eol() + ; + hb_Version( HB_VERSION_URL_BASE ) + hb_eol() + ; hb_eol() ) RETURN diff --git a/contrib/hbnetio/utils/hbnetio/netiomgm.hb b/contrib/hbnetio/utils/hbnetio/netiomgm.hb index e037f1e4be..d5d2c72230 100644 --- a/contrib/hbnetio/utils/hbnetio/netiomgm.hb +++ b/contrib/hbnetio/utils/hbnetio/netiomgm.hb @@ -20,6 +20,8 @@ * */ +#include "hbver.ch" + #define _NETIOMGM_IPV4_DEF "127.0.0.1" #define _NETIOMGM_PORT_DEF 2940 @@ -261,12 +263,12 @@ STATIC PROCEDURE DisconnectLow( netiocli ) RETURN STATIC FUNCTION MyClientInfo() - - RETURN { "OS()" => OS() , ; - "Version()" => Version() , ; - "hb_Compiler()" => hb_Compiler() , ; - "NetName()" => NetName() , ; - "hb_UserName()" => hb_UserName() } + RETURN { ; + "OS()" => OS() , ; + "Version()" => Version() , ; + "hb_Compiler()" => hb_Compiler() , ; + "NetName()" => NetName() , ; + "hb_UserName()" => hb_UserName() } STATIC FUNCTION XToStrX( xValue ) @@ -329,8 +331,10 @@ STATIC FUNCTION XToStrX( xValue ) STATIC PROCEDURE cmdAbout( netiocli ) hbnetiocon_dispevent( netiocli, "Harbour NETIO Server Management Console " + StrTran( Version(), "Harbour " ) ) - hbnetiocon_dispevent( netiocli, "Copyright (c) 2009-2015, Viktor Szakats" ) - hbnetiocon_dispevent( netiocli, "http://harbour-project.org/" ) + hbnetiocon_dispevent( netiocli, "Copyright (c) 2009-" + ; + "2015" + ", " + ; + "Viktor Szakats" ) + hbnetiocon_dispevent( netiocli, hb_Version( HB_VERSION_URL_BASE ) ) RETURN diff --git a/contrib/hbsqlit3/hdbc.prg b/contrib/hbsqlit3/hdbc.prg index 296ead9861..4404f165ae 100644 --- a/contrib/hbsqlit3/hdbc.prg +++ b/contrib/hbsqlit3/hdbc.prg @@ -347,7 +347,7 @@ METHOD new( pDB, pStmt ) CLASS hdbcSQLTResultSet ::pDB := pDB ::pStmt := pStmt - ::pRes := pStmt:pRes /* TOFIX ! */ + ::pRes := pStmt:pRes /* FIXME ! */ ::nRows := 100 diff --git a/contrib/hbwin/win_bmp.c b/contrib/hbwin/win_bmp.c index c0930a6fcd..fec4e31a18 100644 --- a/contrib/hbwin/win_bmp.c +++ b/contrib/hbwin/win_bmp.c @@ -170,7 +170,7 @@ HB_FUNC( WIN_DRAWBITMAP ) BITMAPFILEHEADER * pbmfh = ( BITMAPFILEHEADER * ) hb_parc( 2 ); int iType = hbwin_bitmapType( pbmfh, nSize ); - /* TOFIX: No check is done on 2nd parameter which is a large security hole + /* FIXME: No check is done on 2nd parameter which is a large security hole and may cause GPF in simple error cases. [vszakats] */ if( hbwin_bitmapIsSupported( hDC, iType, pbmfh, nSize ) == 0 ) diff --git a/contrib/xhb/htmutil.prg b/contrib/xhb/htmutil.prg index 2ddc5327ca..8c10fd53a7 100644 --- a/contrib/xhb/htmutil.prg +++ b/contrib/xhb/htmutil.prg @@ -838,7 +838,7 @@ FUNCTION Greek2Html( cText ) t_aGreek := InitGreek() ENDIF FOR I := 1 TO Len( cText ) - cStr += t_aGreek[ Asc( SubStr( cText, i, 1 ) ) ] /* TOFIX: for unicode */ + cStr += t_aGreek[ Asc( SubStr( cText, i, 1 ) ) ] /* FIXME: for unicode */ NEXT RETURN cStr diff --git a/contrib/xhb/thtm.prg b/contrib/xhb/thtm.prg index adc56446d4..7a1594f7fe 100644 --- a/contrib/xhb/thtm.prg +++ b/contrib/xhb/thtm.prg @@ -354,7 +354,7 @@ METHOD New( cTitle, cLinkTitle, cCharSet, aScriptSRC, ; ::cStr += ">" + CRLF() ENDIF #if 0 -/* TOFIX: Luiz please review it */ +/* FIXME: Luiz please review it */ ::cStr += ; ' ' + CRLF() + ; diff --git a/contrib/xhb/xhbarr.c b/contrib/xhb/xhbarr.c index ca9392454e..94f2cfe72b 100644 --- a/contrib/xhb/xhbarr.c +++ b/contrib/xhb/xhbarr.c @@ -149,7 +149,7 @@ HB_FUNC( ASPLICE ) } } -/* TOFIX: Move this to hbxpp library */ +/* FIXME: Move this to hbxpp library */ /* Synonym of ASplice() Xbase++ compatibility (extended with optional replacemenet values) */ HB_FUNC_TRANSLATE( AREMOVE, ASPLICE ) diff --git a/contrib/xhb/xhbtedit.prg b/contrib/xhb/xhbtedit.prg index 4a2c6ea003..373dc633ea 100644 --- a/contrib/xhb/xhbtedit.prg +++ b/contrib/xhb/xhbtedit.prg @@ -2983,7 +2983,7 @@ STATIC FUNCTION Text2Array( cString, nWordWrapCol ) ENDDO DO WHILE nRetLen < ncSLen - /* TOFIX: Note that hb_tokenGet() is not able to cope with delimiters longer than one char */ + /* FIXME: Note that hb_tokenGet() is not able to cope with delimiters longer than one char */ // Dos - OS/2 - Windows have CRLF as EOL IF nEOLLen > 1 cLine := StrTran( hb_tokenPtr( @cString, @nTokPos, cEOL ), SubStr( cEOL, 2 ) ) @@ -3088,4 +3088,4 @@ METHOD BrowseText( nPassedKey, lHandleOneKey ) CLASS XHBEditor RETURN NIL STATIC FUNCTION __SoftCR() - RETURN hb_BChar( 141 ) + Chr( 10 ) /* TOFIX: Won't work in UTF-8 mode */ + RETURN hb_BChar( 141 ) + Chr( 10 ) /* FIXME: Won't work in UTF-8 mode */ diff --git a/debian/control b/debian/control index 3853b58884..b7d571bfda 100644 --- a/debian/control +++ b/debian/control @@ -20,7 +20,7 @@ Description: Compiler for the xBase superset language often referred to as Clipp compiler CA-Cl*pper). . Harbour is a cross platform compiler and is known to compile and run on - MS-DOS, MS Windows, OS/2 and GNU/Linux, *BSD systems, Mac OS X, HP-UX and + MS-DOS, MS Windows, OS/2 and GNU/Linux, *BSD systems, macOS, HP-UX and other *nixes . The main advantage Harbour has over other Clipper compilers is that it diff --git a/debian/copyright b/debian/copyright index 0d9a8b34a5..0367a2aa83 100644 --- a/debian/copyright +++ b/debian/copyright @@ -24,7 +24,7 @@ THE HARBOUR PROJECT LIBRARY LICENSE =================================== Note: This license applies to most of the files in the include directory, - source directory, and subdirectories. + /src, /contrib, /extras directories, and their subdirectories. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -85,14 +85,14 @@ Note: This license applies to the files where the content explicitly indicates so. These works are licensed under the Creative Commons Attribution-ShareAlike - License. To view a copy of this license, visit - http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to + 4.0 International License. To view a copy of this license, visit + https://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. A summary of the license and the full legal text is included after this text. If you wish to distribute some or all of these works under different terms, please contact respective author(s). - License summary: Creative Commons Attribution-ShareAlike 3.0 Unported + License summary: Creative Commons Attribution-ShareAlike 4.0 International -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- @@ -123,421 +123,431 @@ Under the following conditions: -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- - Creative Commons Legal Code: Attribution-ShareAlike 3.0 Unported +Attribution-ShareAlike 4.0 International -CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE -LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN -ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS -INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES -REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR -DAMAGES RESULTING FROM ITS USE. +======================================================================= -License: +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS -CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS -PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE -WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS -PROHIBITED. +Using Creative Commons Public Licenses -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND -AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS -LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU -THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH -TERMS AND CONDITIONS. +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. -1. Definitions + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors - a. "Adaptation" means a work based upon the Work, or upon the Work - and other pre-existing works, such as a translation, adaptation, - derivative work, arrangement of music or other alterations of a - literary or artistic work, or phonogram or performance and - includes cinematographic adaptations or any other form in which - the Work may be recast, transformed, or adapted including in any - form recognizably derived from the original, except that a work - that constitutes a Collection will not be considered an - Adaptation for the purpose of this License. For the avoidance of - doubt, where the Work is a musical work, performance or - phonogram, the synchronization of the Work in timed-relation - with a moving image ("synching") will be considered an - Adaptation for the purpose of this License. + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees - b. "Collection" means a collection of literary or artistic works, - such as encyclopedias and anthologies, or performances, - phonograms or broadcasts, or other works or subject matter other - than works listed in Section 1(f) below, which, by reason of the - selection and arrangement of their contents, constitute - intellectual creations, in which the Work is included in its - entirety in unmodified form along with one or more other - contributions, each constituting separate and independent works - in themselves, which together are assembled into a collective - whole. A work that constitutes a Collection will not be - considered an Adaptation (as defined below) for the purposes of - this License. +======================================================================= - c. "Creative Commons Compatible License" means a license that is - listed at http://creativecommons.org/compatiblelicenses that has - been approved by Creative Commons as being essentially - equivalent to this License, including, at a minimum, because - that license: (i) contains terms that have the same purpose, - meaning and effect as the License Elements of this License; and, - (ii) explicitly permits the relicensing of adaptations of works - made available under that license under this License or a - Creative Commons jurisdiction license with the same License - Elements as this License. +Creative Commons Attribution-ShareAlike 4.0 International Public +License - d. "Distribute" means to make available to the public the original - and copies of the Work or Adaptation, as appropriate, through - sale or other transfer of ownership. +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. - e. "License Elements" means the following high-level license - attributes as selected by Licensor and indicated in the title of - this License: Attribution, ShareAlike. - f. "Licensor" means the individual, individuals, entity or entities - that offer(s) the Work under the terms of this License. +Section 1 -- Definitions. - g. "Original Author" means, in the case of a literary or artistic - work, the individual, individuals, entity or entities who - created the Work or if no individual or entity can be - identified, the publisher; and in addition (i) in the case of a - performance the actors, singers, musicians, dancers, and other - persons who act, sing, deliver, declaim, play in, interpret or - otherwise perform literary or artistic works or expressions of - folklore; (ii) in the case of a phonogram the producer being the - person or legal entity who first fixes the sounds of a - performance or other sounds; and, (iii) in the case of - broadcasts, the organization that transmits the broadcast. + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. - h. "Work" means the literary and/or artistic work offered under the - terms of this License including without limitation any - production in the literary, scientific and artistic domain, - whatever may be the mode or form of its expression including - digital form, such as a book, pamphlet and other writing; a - lecture, address, sermon or other work of the same nature; a - dramatic or dramatico-musical work; a choreographic work or - entertainment in dumb show; a musical composition with or - without words; a cinematographic work to which are assimilated - works expressed by a process analogous to cinematography; a work - of drawing, painting, architecture, sculpture, engraving or - lithography; a photographic work to which are assimilated works - expressed by a process analogous to photography; a work of - applied art; an illustration, map, plan, sketch or - three-dimensional work relative to geography, topography, - architecture or science; a performance; a broadcast; a - phonogram; a compilation of data to the extent it is protected - as a copyrightable work; or a work performed by a variety or - circus performer to the extent it is not otherwise considered a - literary or artistic work. + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. - i. "You" means an individual or entity exercising rights under this - License who has not previously violated the terms of this - License with respect to the Work, or who has received express - permission from the Licensor to exercise rights under this - License despite a previous violation. + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. - j. "Publicly Perform" means to perform public recitations of the - Work and to communicate to the public those public recitations, - by any means or process, including by wire or wireless means or - public digital performances; to make available to the public - Works in such a way that members of the public may access these - Works from a place and at a place individually chosen by them; - to perform the Work to the public by any means or process and - the communication to the public of the performances of the Work, - including by public digital performance; to broadcast and - rebroadcast the Work by any means including signs, sounds or - images. + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. - k. "Reproduce" means to make copies of the Work by any means - including without limitation by sound or visual recordings and - the right of fixation and reproducing fixations of the Work, - including storage of a protected performance or phonogram in - digital form or other electronic medium. + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. -2. Fair Dealing Rights. + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. - Nothing in this License is intended to reduce, limit, or restrict - any uses free from copyright or rights arising from limitations or - exceptions that are provided for in connection with the copyright - protection under copyright law or other applicable laws. + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. -3. License Grant. + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. - Subject to the terms and conditions of this License, Licensor - hereby grants You a worldwide, royalty-free, non-exclusive, - perpetual (for the duration of the applicable copyright) license to - exercise the rights in the Work as stated below: + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. - a. to Reproduce the Work, to incorporate the Work into one or more - Collections, and to Reproduce the Work as incorporated in the - Collections; + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. - b. to create and Reproduce Adaptations provided that any such - Adaptation, including any translation in any medium, takes - reasonable steps to clearly label, demarcate or otherwise - identify that changes were made to the original Work. For - example, a translation could be marked "The original work was - translated from English to Spanish," or a modification could - indicate "The original work has been modified."; + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. - c. to Distribute and Publicly Perform the Work including as - incorporated in Collections; and, + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. - d. to Distribute and Publicly Perform Adaptations. + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. - e. For the avoidance of doubt: - i. Non-waivable Compulsory License Schemes. In those - jurisdictions in which the right to collect royalties - through any statutory or compulsory licensing scheme - cannot be waived, the Licensor reserves the exclusive - right to collect such royalties for any exercise by You of - the rights granted under this License; +Section 2 -- Scope. - ii. Waivable Compulsory License Schemes. In those - jurisdictions in which the right to collect royalties - through any statutory or compulsory licensing scheme can - be waived, the Licensor waives the exclusive right to - collect such royalties for any exercise by You of the - rights granted under this License; and, + a. License grant. - iii. Voluntary License Schemes. The Licensor waives the right - to collect royalties, whether individually or, in the - event that the Licensor is a member of a collecting - society that administers voluntary licensing schemes, via - that society, from any exercise by You of the rights - granted under this License. + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: - The above rights may be exercised in all media and formats whether - now known or hereafter devised. The above rights include the right - to make such modifications as are technically necessary to exercise - the rights in other media and formats. Subject to Section 8(f), all - rights not expressly granted by Licensor are hereby reserved. + a. reproduce and Share the Licensed Material, in whole or + in part; and -4. Restrictions. + b. produce, reproduce, and Share Adapted Material. - The license granted in Section 3 above is expressly made subject to - and limited by the following restrictions: + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. - a. You may Distribute or Publicly Perform the Work only under the - terms of this License. You must include a copy of, or the - Uniform Resource Identifier (URI) for, this License with every - copy of the Work You Distribute or Publicly Perform. You may not - offer or impose any terms on the Work that restrict the terms of - this License or the ability of the recipient of the Work to - exercise the rights granted to that recipient under the terms of - the License. You may not sublicense the Work. You must keep - intact all notices that refer to this License and to the - disclaimer of warranties with every copy of the Work You - Distribute or Publicly Perform. When You Distribute or Publicly - Perform the Work, You may not impose any effective technological - measures on the Work that restrict the ability of a recipient of - the Work from You to exercise the rights granted to that - recipient under the terms of the License. This Section 4(a) - applies to the Work as incorporated in a Collection, but this - does not require the Collection apart from the Work itself to be - made subject to the terms of this License. If You create a - Collection, upon notice from any Licensor You must, to the - extent practicable, remove from the Collection any credit as - required by Section 4(c), as requested. If You create an - Adaptation, upon notice from any Licensor You must, to the - extent practicable, remove from the Adaptation any credit as - required by Section 4(c), as requested. + 3. Term. The term of this Public License is specified in Section + 6(a). - b. You may Distribute or Publicly Perform an Adaptation only under - the terms of: (i) this License; (ii) a later version of this - License with the same License Elements as this License; (iii) a - Creative Commons jurisdiction license (either this or a later - license version) that contains the same License Elements as this - License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative - Commons Compatible License. If you license the Adaptation under - one of the licenses mentioned in (iv), you must comply with the - terms of that license. If you license the Adaptation under the - terms of any of the licenses mentioned in (i), (ii) or (iii) - (the "Applicable License"), you must comply with the terms of - the Applicable License generally and the following provisions: - (I) You must include a copy of, or the URI for, the Applicable - License with every copy of each Adaptation You Distribute or - Publicly Perform; (II) You may not offer or impose any terms on - the Adaptation that restrict the terms of the Applicable License - or the ability of the recipient of the Adaptation to exercise - the rights granted to that recipient under the terms of the - Applicable License; (III) You must keep intact all notices that - refer to the Applicable License and to the disclaimer of - warranties with every copy of the Work as included in the - Adaptation You Distribute or Publicly Perform; (IV) when You - Distribute or Publicly Perform the Adaptation, You may not - impose any effective technological measures on the Adaptation - that restrict the ability of a recipient of the Adaptation from - You to exercise the rights granted to that recipient under the - terms of the Applicable License. This Section 4(b) applies to - the Adaptation as incorporated in a Collection, but this does - not require the Collection apart from the Adaptation itself to - be made subject to the terms of the Applicable License. + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. - c. If You Distribute, or Publicly Perform the Work or any - Adaptations or Collections, You must, unless a request has been - made pursuant to Section 4(a), keep intact all copyright notices - for the Work and provide, reasonable to the medium or means You - are utilizing: (i) the name of the Original Author (or - pseudonym, if applicable) if supplied, and/or if the Original - Author and/or Licensor designate another party or parties (e.g., - a sponsor institute, publishing entity, journal) for attribution - ("Attribution Parties") in Licensor's copyright notice, terms of - service or by other reasonable means, the name of such party or - parties; (ii) the title of the Work if supplied; (iii) to the - extent reasonably practicable, the URI, if any, that Licensor - specifies to be associated with the Work, unless such URI does - not refer to the copyright notice or licensing information for - the Work; and (iv) , consistent with Ssection 3(b), in the case - of an Adaptation, a credit identifying the use of the Work in - the Adaptation (e.g., "French translation of the Work by - Original Author," or "Screenplay based on original Work by - Original Author"). The credit required by this Section 4(c) may - be implemented in any reasonable manner; provided, however, that - in the case of a Adaptation or Collection, at a minimum such - credit will appear, if a credit for all contributing authors of - the Adaptation or Collection appears, then as part of these - credits and in a manner at least as prominent as the credits for - the other contributing authors. For the avoidance of doubt, You - may only use the credit required by this Section for the purpose - of attribution in the manner set out above and, by exercising - Your rights under this License, You may not implicitly or - explicitly assert or imply any connection with, sponsorship or - endorsement by the Original Author, Licensor and/or Attribution - Parties, as appropriate, of You or Your use of the Work, without - the separate, express prior written permission of the Original - Author, Licensor and/or Attribution Parties. + 5. Downstream recipients. - d. Except as otherwise agreed in writing by the Licensor or as may - be otherwise permitted by applicable law, if You Reproduce, - Distribute or Publicly Perform the Work either by itself or as - part of any Adaptations or Collections, You must not distort, - mutilate, modify or take other derogatory action in relation to - the Work which would be prejudicial to the Original Author's - honor or reputation. Licensor agrees that in those jurisdictions - (e.g. Japan), in which any exercise of the right granted in - Section 3(b) of this License (the right to make Adaptations) - would be deemed to be a distortion, mutilation, modification or - other derogatory action prejudicial to the Original Author's - honor and reputation, the Licensor will waive or not assert, as - appropriate, this Section, to the fullest extent permitted by - the applicable national law, to enable You to reasonably - exercise Your right under Section 3(b) of this License (right to - make Adaptations) but not otherwise. + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. -5. Representations, Warranties and Disclaimer + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, -LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR -WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, -STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF -TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, -NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, -OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT -DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED -WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. -6. Limitation on Liability. + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). -EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL -LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, -INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT -OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN -ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + b. Other rights. -7. Termination + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this - License. Individuals or entities who have received Adaptations - or Collections from You under this License, however, will not - have their licenses terminated provided such individuals or - entities remain in full compliance with those licenses. Sections - 1, 2, 5, 6, 7, and 8 will survive any termination of this - License. + 2. Patent and trademark rights are not licensed under this + Public License. - b. Subject to the above terms and conditions, the license granted - here is perpetual (for the duration of the applicable copyright - in the Work). Notwithstanding the above, Licensor reserves the - right to release the Work under different license terms or to - stop distributing the Work at any time; provided, however that - any such election will not serve to withdraw this License (or - any other license that has been, or is required to be, granted - under the terms of this License), and this License will continue - in full force and effect unless terminated as stated above. + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. -8. Miscellaneous - a. Each time You Distribute or Publicly Perform the Work or a - Collection, the Licensor offers to the recipient a license to - the Work on the same terms and conditions as the license granted - to You under this License. +Section 3 -- License Conditions. - b. Each time You Distribute or Publicly Perform an Adaptation, - Licensor offers to the recipient a license to the original Work - on the same terms and conditions as the license granted to You - under this License. +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. - c. If any provision of this License is invalid or unenforceable - under applicable law, it shall not affect the validity or - enforceability of the remainder of the terms of this License, - and without further action by the parties to this agreement, - such provision shall be reformed to the minimum extent necessary - to make such provision valid and enforceable. + a. Attribution. - d. No term or provision of this License shall be deemed waived and - no breach consented to unless such waiver or consent shall be in - writing and signed by the party to be charged with such waiver - or consent. + 1. If You Share the Licensed Material (including in modified + form), You must: - e. This License constitutes the entire agreement between the - parties with respect to the Work licensed here. There are no - understandings, agreements or representations with respect to - the Work not specified here. Licensor shall not be bound by any - additional provisions that may appear in any communication from - You. This License may not be modified without the mutual written - agreement of the Licensor and You. + a. retain the following if it is supplied by the Licensor + with the Licensed Material: - f. The rights granted under, and the subject matter referenced, in - this License were drafted utilizing the terminology of the Berne - Convention for the Protection of Literary and Artistic Works (as - amended on September 28, 1979), the Rome Convention of 1961, the - WIPO Copyright Treaty of 1996, the WIPO Performances and - Phonograms Treaty of 1996 and the Universal Copyright Convention - (as revised on July 24, 1971). These rights and subject matter - take effect in the relevant jurisdiction in which the License - terms are sought to be enforced according to the corresponding - provisions of the implementation of those treaty provisions in - the applicable national law. If the standard suite of rights - granted under applicable copyright law includes additional - rights not granted under this License, such additional rights - are deemed to be included in the License; this License is not - intended to restrict the license of any rights under applicable - law. + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); -Creative Commons Notice + ii. a copyright notice; -Creative Commons is not a party to this License, and makes no warranty -whatsoever in connection with the Work. Creative Commons will not be -liable to You or any party on any legal theory for any damages -whatsoever, including without limitation any general, special, -incidental or consequential damages arising in connection to this -license. Notwithstanding the foregoing two (2) sentences, if Creative -Commons has expressly identified itself as the Licensor hereunder, it -shall have all rights and obligations of Licensor. + iii. a notice that refers to this Public License; -Except for the limited purpose of indicating to the public that the -Work is licensed under the CCPL, Creative Commons does not authorize -the use by either party of the trademark "Creative Commons" or any -related trademark or logo of Creative Commons without the prior -written consent of Creative Commons. Any permitted use will be in -compliance with Creative Commons' then-current trademark usage -guidelines, as may be published on its website or otherwise made -available upon request from time to time. For the avoidance of doubt, -this trademark restriction does not form part of the License. + iv. a notice that refers to the disclaimer of + warranties; -Creative Commons may be contacted at http://creativecommons.org/. + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + + including for purposes of Section 3(b); and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. GNU GENERAL PUBLIC LICENSE VERSION 2 diff --git a/doc/c_std.txt b/doc/c_std.txt index b05b8d5447..9e85ceb5a6 100644 --- a/doc/c_std.txt +++ b/doc/c_std.txt @@ -1,3 +1,5 @@ +https://en.wikipedia.org/wiki/C_standard_library + +++Date last modified: 1997-07-05 diff --git a/doc/clipper.txt b/doc/clipper.txt index 1a8412bcde..1470734ade 100644 --- a/doc/clipper.txt +++ b/doc/clipper.txt @@ -59,43 +59,43 @@ Note: to enumerator item changes the original string only if it was passed to FOR EACH statement by reference, i.e.: FOR EACH c IN @string - IF ! isAlpha( c ) - c := "*" + IF IsAlpha( c ) + c := Upper( c ) ELSE - c := upper( c ) + c := "*" ENDIF NEXT - after the loop the controlling variable(s) restore the value which they had before entering the loop - the enumerator variable supports the following properties - :__enumIndex - the loop counter for variable - :__enumKey - the hash key value of traversed hash item pair - :__enumBase - the value that is being traversed - :__enumValue - the value of variable - :__enumIsFirst - is it the first enumerated item? - :__enumIsLast - is it the last enumerated item? + :__enumIndex() - the loop counter for variable + :__enumKey() - the hash key value of traversed hash item pair + :__enumBase() - the value that is being traversed + :__enumValue() - the value of variable + :__enumIsFirst() - is it the first enumerated item? + :__enumIsLast() - is it the last enumerated item? - defining new class or overloading existing one user can define his own behavior of FOR EACH iterating overloading chosen of above methods and/or the following ones: - :__enumStart - :__enumSkip - :__enumStop + :__enumStart() + :__enumSkip() + :__enumStop() By default FOR EACH iterate all object instance variables for example: - a := 'A' - b := 'B' + a := "A" + b := "B" FOR EACH a, b IN { 1, 2, 3, 4 }, "abcd" - ? a, b //prints: 1 a - // 2 b - // 3 c - // 4 d + ? a, b // prints: 1 a + // 2 b + // 3 c + // 4 d NEXT - ? a, b //prints: A B + ? a, b // prints: A B // you can use EXIT statement inside the loop FOR EACH a IN { 1, 2, 3, 4 } - IF a:__enumindex == 3 + IF a:__enumIndex() == 3 ? a EXIT ENDIF @@ -107,13 +107,13 @@ for example: a *= 2 str := Upper( str ) NEXT - // now 'arr' stores { 2, 4, 6 } - // howerer 'str' still stores "abc" + // now `arr` stores { 2, 4, 6 } + // however `str` still stores "abc" Notice the difference: FOR EACH a IN someValue - ? a:__enumindex //prints current value of the index - ? (a):__enumindex //sends '__enumindex' message to the current value + ? a:__enumIndex() // prints current value of the index + ? ( a ):__enumIndex() // sends `__enumindex()` message to the current value NEXT @@ -129,7 +129,7 @@ Harbour supports the following statement: form of sending messages to the object. You can use the syntax :message( [params] ) :property - to send messages to the object specified by 'expression' + to send messages to the object specified by `expression` for example: WITH OBJECT myobj:a[ 1 ]:myitem @@ -142,7 +142,7 @@ for example: myobj:a[ 1 ]:myitem:value := 9 Inside WITH OBJECT/END you can access (or even assign a new object) - using a special reserved property :__withobject + using a special reserved property :__withObject() The runtime error will be generated at the time of message sending (or property access/assign) if @@ -150,16 +150,16 @@ for example: for example: CREATE CLASS foo - VAR name INIT 'FOO' + VAR name INIT "FOO" ENDCLASS CREATE CLASS bar - VAR name INIT 'BAR' + VAR name INIT "BAR" ENDCLASS WITH OBJECT foo():new() - ? :name //prints 'FOO' - ? :__withobject:name //also prints 'FOO' - ? :__withobject := bar():new() - ? :name //prints 'BAR' + ? :name // prints `FOO` + ? :__withObject():name // also prints `FOO` + ? :__withObject := bar():new() + ? :name // prints `BAR` ENDWITH diff --git a/doc/cmdline.txt b/doc/cmdline.txt index 36d10f1a5d..6ecc4f8073 100644 --- a/doc/cmdline.txt +++ b/doc/cmdline.txt @@ -93,6 +93,6 @@ Exceptions: [ Copyright (c) 1999-2009 Viktor Szakats (vszakats.net/harbour) - Licensed under Creative Commons Attribution-ShareAlike 3.0: - http://creativecommons.org/licenses/by-sa/3.0/ - See COPYING.txt. ] + Licensed under Creative Commons Attribution-ShareAlike 4.0: + + See LICENSE.txt ] diff --git a/doc/cmpopt.txt b/doc/cmpopt.txt index 20b2157051..653a5f0f25 100644 --- a/doc/cmpopt.txt +++ b/doc/cmpopt.txt @@ -47,9 +47,9 @@ optimized at compile time: hb_mutexCreate() -2. Expresion optimization: +2. Expression optimization: -Just like Clipper Harbour compiler can optimize some expresions if +Just like Clipper Harbour compiler can optimize some expressions if arguments are well known and can be calculated at compile time: - Clipper compatible: @@ -144,7 +144,7 @@ arguments are well known and can be calculated at compile time: ^ => [ ] => ( ) => // it allows to optimize - // expresions like: 1+(2) + // expressions like: 1+(2) - Harbour syntax extensions not supported by Clipper, enabled by -ko compiler switch: @@ -157,8 +157,8 @@ arguments are well known and can be calculated at compile time: i.e.: iif( dData == NIL, dDate, aVal[ 1 ] ) := date() iif( empty( x ), aVal[ 2 ], nTmp ) += 10 - ? iif( f1(), nVal1, nVal2 ) ++ - ? -- iif( f2(), aVal[ 1 ], hVal[ "abc" ] ) + ? iif( f1(), nVal1, nVal2 )++ + ? --iif( f2(), aVal[ 1 ], hVal[ "abc" ] ) - Harbour extensions which may disable RT errors in wrong expressions or can change used operators using basic math rules. Enabled by -ko @@ -198,11 +198,11 @@ Unlike Clipper Harbour tries to optimize all expressions. If some code needs strict Clipper behavior then it can be forced by using -kc Harbour compiler switch. It disables Harbour extensions and enables replicating some Clipper bugs like optimizing "" $ to .T. at -compile time (at runtime and in macrocompiler it's always .F. in Clipper +compile time (at runtime and in macro-compiler it's always .F. in Clipper and Harbour). Expressions fully optimized to constant values at compile time can be used -to intialize static variables, f.e.: +to initialize static variables, f.e.: static s_var := ( 1 + 2 / 3 ) Clipper does not optimize expression used in LOCAL, PRIVATE and @@ -233,11 +233,11 @@ or: or: ? &cLocalPref.func&cPriv1( cPriv2, &cStatic ) etc. -If possible then for macrocodeblocks Harbour compiler tries to +If possible then for macro-codeblocks Harbour compiler tries to generate early eval code in which macros are expanded when codeblock is created. Otherwise macros are expanded each time codeblock is evaluated. -This feature can be useful also in porting some other xbase compatible +This feature can be useful also in porting some other xBase compatible code to Harbour because some compilers just like xHarbour accepted in some limited way officially unsupported syntax with macros using declared symbols. @@ -247,7 +247,7 @@ declared symbols. Harbour has additional optimization phase which operates on generated PCODE. It can also reduce expressions, joins jumps, removes death or meaningless code which can appear after all other optimizations and were not optimized -by expression optimizer. It can also optimize readonly local variables +by expression optimizer. It can also optimize read-only local variables keeping the QSelf() value. QSelf() is not real function call but very fast single PCODE often used in OOP code. Harbour can replace local variables keeping it by direct QSelf() usage. diff --git a/doc/codebloc.txt b/doc/codebloc.txt index 0f24a2ebc8..3127e16c1d 100644 --- a/doc/codebloc.txt +++ b/doc/codebloc.txt @@ -48,14 +48,18 @@ to it. This is caused by the fact that a inner codeblock can be created during evaluation of outer codeblock when local variables don't exist like in this example: -PROCEDUE Main() +PROCEDURE Main() + PRIVATE foo, bar Test() Eval( foo ) Eval( bar ) + RETURN + PROCEDURE Test() + LOCAL a := "FOO", b := "BAR" foo := {|| a + ( bar := Eval( {|| b } ) ) } @@ -73,14 +77,15 @@ used. The negative value is used as an index to distinguish it from the reference to a codeblock parameter. -Incompatbility with the Clipper. +Incompatibility with the Clipper. -1) Detached locals passed by reference +1. Detached locals passed by reference There is a little difference between the handling of variables passed by the reference in a codeblock. The following code explains it (thanks to David G. Holm) PROCEDURE Main() + LOCAL nTest LOCAL bBlock1 := MakeBlock() LOCAL bBlock2 := {|| DoThing( @nTest ), QOut( "From Main: ", nTest ) } @@ -91,14 +96,16 @@ PROCEDURE Main() RETURN FUNCTION MakeBlock() + LOCAL nTest + RETURN {|| DoThing( @nTest ), QOut( "From MakeBlock: ", nTest ) } -FUNCTION DoThing( n ) +PROCEDURE DoThing( n ) n := 42 - RETURN NIL + RETURN In Clipper it produces: @@ -109,18 +116,22 @@ From Main: 42 From MakeBlock: 42 From Main: 42 -2) Scope of undeclared variables +2. Scope of undeclared variables Consider the following code: PROCEDURE Main() - LOCAL cb - cb := Detach() + + LOCAL cb := Detach() + ? Eval( cb, 10 ) + RETURN FUNCTION Detach() + LOCAL b := {| x | x + a } LOCAL a := 0 + RETURN b In Clipper the 'a' variable in a codeblock has the *local* scope however in @@ -130,10 +141,13 @@ this code will print 10 and in Harbour it will raise 'argument error' in This will be true also when the 'a' variable will be declared as PRIVATE PROCEDURE Main() + LOCAL cb PRIVATE a + cb := Detach() ? Eval( cb, 10 ) + RETURN The above code also prints 10 in Clipper (even if compiled with -a or -v diff --git a/doc/codestyl.txt b/doc/codestyl.txt index 8a128c54fe..2af4d83b5d 100644 --- a/doc/codestyl.txt +++ b/doc/codestyl.txt @@ -1,7 +1,7 @@ /* Please note the following comments we may use everywhere NOTE: Notes TODO: something should be added here - TOFIX: something needs to be fixed + FIXME: something needs to be fixed OBSOLETE: something could be removed from here QUESTION: I had some questions at this point but I could not get an answer OPT: something is commented out to improve performance @@ -76,13 +76,7 @@ Code Implementation Function calls in assert conditions may also cause this problem, if they modify one of their arguments or global variables. -[7] When commenting out code using a #if statement, do NOT use 0 only. Instead - use "_0". For example, #if FOO_0, where FOO is your - cvs user foo. This allows easier tracking of why code was commented out, - especially in bundled libraries. - - -[8] Use hb_xgrab()/hb_xalloc(), hb_xfree(), hb_xrealloc(), hb_xsize() to +[7] Use hb_xgrab()/hb_xalloc(), hb_xfree(), hb_xrealloc(), hb_xsize() to manage memory allocations. These functions implement an internal "safety-net" mechanism that ensures the deallocation of any unfreed memory at the end of an application. They also provide useful @@ -113,7 +107,7 @@ Naming Conventions [4] Static variables should be prefixed with 's_' -[5] Global variables (variables shared beetwen modules) should be +[5] Global variables (variables shared between modules) should be prefixed with 'hb_', e.g. hb_vm_bDebug, hb_gc_pStart @@ -126,7 +120,7 @@ Syntax and indentation accept C++-style comments in C code, you have to ensure that your code would compile with other compilers as well. -[2] Don't use K&R-style. Of course, we can't and don't want to +[2] Do not use K&R-style. Of course, we cannot and do not want to force anybody to use a style he or she is not used to, but, at the very least, when you write code that goes into the core of Harbour or one of its standard modules, please don't use the K&R @@ -169,8 +163,8 @@ Documentation [1] Whenever be possible document yourself functions you developed. Usually it's hard to understand code written by other person, moreover when it involves some obscure algorithm, system's vars or attributes - or data unavailable for the documentator. - This is particularly evident for low level functions. + or data unavailable for the documentation writers. + This is particularly evident for low-level functions. [2] After some time function was written, work becomes more difficult because it's needed to read the code several times (even for the own developer). @@ -192,11 +186,11 @@ Documentation [6] If you are the developer of the function, and you are using system's functions or vars undocumented, please explain it as much as possible. - If you use a obscure or strange algorithm (i.e md5 ) please explain what - it does and how it works. + If you use a obscure or strange algorithm please explain what it does + and how it works. -[7] Notes, remarks and explainings enclose always between the /* */ pair, - please don't use the double bar // because it difficults portability. +[7] Notes, remarks and explaining enclose always between the /* */ pair, + please don't use the double bar // because it may break portability. [8] Remember... documentation it's a much time consuming work, usually takes more time writing the documentation of a function that writing diff --git a/doc/destruct.txt b/doc/destruct.txt index 1064ae75f9..3a75f9ae42 100644 --- a/doc/destruct.txt +++ b/doc/destruct.txt @@ -38,25 +38,25 @@ destroyed by Garbage Collector in a special way. GC scans all items known to HVM and marks them as used, then destroys all items which are not marked. The reference counters in such items are greater then zero and cannot be directly used to detect bugs in a user code. So GC collects all -unaccessible items and then executes cleanup functions for each of them, +inaccessible items and then executes cleanup functions for each of them, and finally checks if reference counters reached zero before it will free the memory blocks. If they didn't then RT error is generated for the first memory block. All items which are still accessible, are not freed and if GC can recognize a type of an item then it will also try to convert it to some empty form (f.e. empty array). The destructors are executed from cleanup functions so they all will be -executed and then, if there is sth wrong, RT error will be generated for -the first memory block which was copied to some external structures. +executed and then, if there is something wrong, RT error will be generated +for the first memory block which was copied to some external structures. Please note that the order in which destructors are executed by GC -can be diffrent then some logical order defined by an application. HVM +can be different then some logical order defined by an application. HVM does not know anything about programmer's ideas so a programmer has to create a code which will be safe for such situations. HVM only guaranties that destructors will be executed only once for each object. This also cannot break HVM integrity for standard object items which are represented as arrays. But if the problem is inside cleanup function of a GC POINTER item, which has a structure unknown to HVM, then any further -behavior can be unpredictible if a programmer, who created such pointer -items, doesn't support such situation himslef in his C code. It's a good +behavior can be unpredictable if a programmer, who created such pointer +items, doesn't support such situation himself in his C code. It's a good practice to add some type of marker to body of memory allocated by hb_gcAlloc() to detect bugs in .prg code destructors which may keep pointers to freed POINTER item (these could be destructors of differ @@ -71,7 +71,7 @@ situation. In summary, Harbour destructor implementation should be able to detect bugs in destructor and keep HVM integrity. But we are not able to -guarantiee that nothing wrong will happen with 3-rd party code which +guarantee that nothing wrong will happen with 3rd party code which uses POINTER items scanned by GC, which are not safe for .prg code bugs in destructors and repeated cleanup function execution. @@ -88,9 +88,9 @@ some other structures, the object destructors will not be executed. Clearing STATIC variables before closing classy subsystem will not help because STATIC variables are integral part of this subsystem. -Anomalies and excpetions +Anomalies and exceptions ------------------------ -In some situations HVM may clear items when exception apear, f.e. +In some situations HVM may clear items when exception appear, f.e. BREAK or QUIT request. In such case executing the exception type is stored and destructors are executed and finally the exception restored. But in destructors code new exception can appear. In such diff --git a/doc/dirstruc.txt b/doc/dirstruc.txt index 3c19c2e871..526f2fb340 100644 --- a/doc/dirstruc.txt +++ b/doc/dirstruc.txt @@ -4,11 +4,11 @@ Harbour directory structure Follow are the various directories that exist under the Harbour tree. - - Main Harbour directory. Contain all the various -| make file and Changelog (=changes history) files. + - Main Harbour directory. Contains all the various +| make file and Changelog (=changes history) file. | -+---bin - Executable and build scripts. -| Should contain harbour and other executables. (*) ++---bin - Executable and helper scripts. +| Should contain Harbour and other executables. (*) | +---config - Configuration Files (.mk) for the GNU Make system. | | @@ -32,7 +32,7 @@ Follow are the various directories that exist under the Harbour tree. | +---debian - Packaging information for Debian GNU/Linux. | -+---doc - Documentation and white-paper. ++---doc - Documentation and white-papers. | | | +---en - English documentation. | @@ -44,7 +44,7 @@ Follow are the various directories that exist under the Harbour tree. | | | +---codepage - National codepage collection. | | -| +---common - Common function and Expression Optimizer. +| +---common - Common function and expression optimizer. | | | +---compiler - Harbour compiler module. | | @@ -53,11 +53,10 @@ Follow are the various directories that exist under the Harbour tree. | +---hbextern - Library with all function binding available for | | .prg code | | -| +---3rd/pcre - Harbour implementation of the Perl Compatible -| | Regular Expressions (PCRE) library. -| | -| +---3rd/zlib - Harbour implementation of the ZLIB data -| | compression library. +| +---3rd - Locally hosted copies of 3rd party libraries +| | required by core code or deemed important enough +| | to be provided as part of core. +| | (plays a role primarily on non-*nix systems) | | | +---lang - National language message support files. | | @@ -65,7 +64,7 @@ Follow are the various directories that exist under the Harbour tree. | | | +---main - Harbour compiler main source. | | -| +---pp - Harbour Preprocessor. +| +---pp - Harbour preprocessor. | | | +---rdd - Replaceable Database Driver (RDD). | | | @@ -77,7 +76,7 @@ Follow are the various directories that exist under the Harbour tree. | | | | | +---dbfntx - DBFNTX RDD. | | | -| | +---hbsix - SIX compatible functions. +| | +---hbsix - SIx compatible functions. | | | | | +---hsx - HiPer-SEEK / CFTS compatible library. | | | @@ -87,7 +86,7 @@ Follow are the various directories that exist under the Harbour tree. | | | | | +---example - Usage examples. | | | -| | +---rdds - A set of simple RDD's all written in PRG. +| | +---rdds - A set of simple RDDs all written in PRG. | | | +---rtl - Run-Time libraries functions and various General | | | Terminal (GT) implementation @@ -96,11 +95,11 @@ Follow are the various directories that exist under the Harbour tree. | | | | | +---gtcrs - GT subsystem based on ncurses. | | | -| | +---gtdos - GT subsystem for MS-DOS compilers. +| | +---gtdos - GT subsystem for MS-DOS platform. | | | | | +---gtgui - Minimal GT for Windows GUI programs. | | | -| | +---gtos2 - GT subsystem for OS/2 compilers. +| | +---gtos2 - GT subsystem for OS/2 platform. | | | | | +---gtpca - GT subsystem for ANSI terminals. | | | @@ -124,11 +123,11 @@ Follow are the various directories that exist under the Harbour tree. | +---vm - Harbour Virtual Machine and internal Run-Time | | library functions. | | -| +---mainstd - mainstd library for MinGW build. +| +---mainstd - mainstd helper library. | | -| +---mainwin - mainwin library for MinGW build. +| +---mainwin - mainwin helper library. | | -| +---vmmt - GNU Makefile for creating the multithreaded version +| +---vmmt - GNU Makefile for creating the multi-threaded version | of the VM library. | +---tests - Test programs. @@ -138,7 +137,7 @@ Follow are the various directories that exist under the Harbour tree. | | | +---hbpptest - Regression tests for the preprocessor. | | -| +---mt - Various multithreading tests. +| +---mt - Various multi-threading tests. | | | +---multifnc - Overloading C functions test. | | diff --git a/doc/gmake.txt b/doc/gmake.txt index 93923aa25d..5c4e402937 100644 --- a/doc/gmake.txt +++ b/doc/gmake.txt @@ -1,18 +1,18 @@ INTRODUCTION ============ -This file explains the philosophy for the GNU-make based build system +This file explains the philosophy for the GNU Make based build system for Harbour, and gives instructions on how to use it. PHILOSOPHY ========== -This build system is based on GNU-make, the idea being that GNU-make -is freely available for every platform you can dream up, and it is +This build system is based on GNU Make, the idea being that GNU Make +is free software, available for every platform you can dream up, and it is usually more powerful than any native make. -Each directory in the project contains one makefile, called Makefile, +Each directory in the project contains one Makefile, called Makefile, which lists the data (file names, directory names, etc.) that is used to determine how to bring every target up to date within that directory. There are no rules in the Makefiles, to keep them @@ -23,13 +23,12 @@ For example, the following was the Makefile for an early version of the VM library: -- Cut here --------------------------------------- - ROOT := ../../ C_SOURCES := \ - dynsym.c \ - hvm.c \ - initsymb.c \ + dynsym.c \ + hvm.c \ + initsymb.c \ LIB := vm @@ -51,7 +50,6 @@ What this means is: Let's look at another Makefile, this one for the Harbour compiler: -- Cut here --------------------------------------- - ROOT := ../../ YACC_SOURCE := harbour.y @@ -59,7 +57,7 @@ YACC_SOURCE := harbour.y LEX_SOURCE := harbour.l C_SOURCES := \ - genobj32.c \ + genobj32.c \ C_MAIN=harbour.c @@ -79,12 +77,12 @@ One final Makefile, this one from the source directory: ROOT := ../ DIRS := \ - compiler \ - hbpp \ - rtl \ - vm \ - rdd \ - tools \ + compiler \ + hbpp \ + rtl \ + vm \ + rdd \ + tools \ include $(TOP)$(ROOT)config/dir.mk -- Cut here --------------------------------------- @@ -113,8 +111,8 @@ files compiled with gcc). This has two advantages: USAGE ===== -To use the system, you need to install GNU-make 3.81 or later on your -system. To check this, type "make -v"; you should see +To use the system, you need to install GNU Make 3.81 or later on your +system. To check this, type `make -v`; you should see GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. @@ -123,63 +121,47 @@ system. To check this, type "make -v"; you should see Then, you must set a couple of environment variables that indicate your platform and compiler. -For gcc on Windows with the Cygwin library: - Notes: The CYGWIN environment variable must include "noglob" in order - to avoid having Harbour or programs created with Harbour expand - wildcard command line arguments (this is checked at run-time!) - HB_PLATFORM win - HB_COMPILER gcc - CYGWIN noglob - -For gcc on Windows with the MinGW library: +For MinGW (GCC port for Windows): HB_PLATFORM win HB_COMPILER mingw For MSVC on Windows: - Notes: gnu make is case sensitive! If your editor converts - harbour.c to HARBOUR.C when it saves the file, then gnu make + Notes: GNU Make is case sensitive! If your editor converts + harbour.c to HARBOUR.C when it saves the file, then GNU Make _will_not_work. If you have MAKE_MODE in your dos environment, make sure it is - not set to unix + not set to Unix For best results, also set: HB_PLATFORM win HB_COMPILER msvc -For GCC on BSD: - HB_PLATFORM bsd - HB_COMPILER gcc - Notes: - 1) You have to have bison and gmake installed in order to build - Harbour for BSD. The file doc/howtobsd.txt gives an overview - of what is required. - For GCC on Linux: HB_PLATFORM linux HB_COMPILER gcc - Notes: - 1) If you want to take advantage of compiler cache programs - (such as http://ccaache.samba.org), you may set environment + + Note: If you want to take advantage of compiler cache programs + (such as https://ccache.samba.org), you may set environment variable HB_CCACHE with the value containing the name of program. +For GCC on BSD: + HB_PLATFORM bsd + HB_COMPILER gcc + + Note: You have to have bison and gmake installed in order to build + Harbour for BSD. The file doc/howtobsd.txt gives an overview + of what is required. + For GCC on OS/2 for VIO mode: Note: You must point C_INCLUDE_PATH to the EMX include directory and you must also point LIBRARY_PATH to the EMX library directory. HB_PLATFORM os2 HB_COMPILER gcc -For Borland C++ - HB_PLATFORM win - HB_COMPILER bcc - For DJGPP (GCC port for MS-DOS) HB_PLATFORM dos HB_COMPILER djgpp -For Watcom C/C++ 10.x (default Makefile creates DOS4G extender executables) - HB_PLATFORM dos - HB_COMPILER watcom - The most used targets are these: * all: Same as typing "make" without arguments. It will usually try to @@ -197,8 +179,8 @@ See README.md about details. You can build and/or run any program in tests/working by using hbmk2 -and hbrun. For example, 'hbmk2 scroll.prg -run' will build the scroll.prg -program and then run it. 'hbrun scroll.prg' will run the program as +and hbrun. For example, `hbmk2 scroll.prg -run` will build the scroll.prg +program and then run it. `hbrun scroll.prg` will run the program as a script. You can also pass parameters to the program. For example, -'hbrun readfile.prg harbour.ini' will rebuild the readfile.prg program -and run it with 'harbour.ini' as a command line parameter. +`hbrun readfile.prg harbour.ini` will rebuild the readfile.prg program +and run it with `harbour.ini` as a command-line parameter. diff --git a/doc/gtapi.txt b/doc/gtapi.txt index 22e52f36d4..7c10865b0e 100644 --- a/doc/gtapi.txt +++ b/doc/gtapi.txt @@ -14,7 +14,7 @@ implementation of the _gt functions. These are functions named with gtxxxxxx convention and are called by the _gt functions in gtapi.c. I've provided the following files to implement the console functions: -gtdos.c - MS-DOS implemenation +gtdos.c - MS-DOS implementation gtwin.c - Windows implementation gtos2.c - OS/2 implementation gtxxx.c - Generic template for implementation @@ -22,7 +22,7 @@ gtxxx.c - Generic template for implementation If you wish to port the gt functions to another platform, just take the gtxxx.c and populate it with calls to your OSes functions. Call the file something appropriate (gtmac.c, gtnext.c or whatever) and add it to -that platforms makefile. +that platforms Makefile. The API supports a dozen or so compilers on three platforms. You only have to change the gtxxx.c files to implement your platform. @@ -40,19 +40,19 @@ directly anyway. Just compile gtapi.c alone with a #define of TEST to see the output (or build a PRG test if you want). You must include gtapi.c and one of the platform implementation files -to compile sucessfully! +to compile successfully! There are exceptions for various compilers in the platform implementation files so if you're using a compiler that doesn't support certain routines or syntax just stick in your changes and surround it with an -#if defined(__XXX__) call. +`#if defined( __XXX__ )` call. This is a complete set of gt functions as defined by Clipper. That is there are no new _gt functions added. But this is not a complete -implementation. I do not know what _gtBegin or _gtEnd will do for +implementation. I do not know what _gtBegin() or _gtEnd() will do for instance. Yes, they buffer the display but what does that really mean under the covers? Perhaps someone needs to implement a screen buffer -to write to in order to achive this but the issue that immediately comes +to write to in order to achieve this but the issue that immediately comes to mind is how to initialize the size of this buffer? The files are attached but I will NOT be checking them into cvs for the @@ -63,20 +63,20 @@ overwrite someones code. If the author wants to remove his file and check this in then be my guest. 2. This is my vision of how "I" think the gt API should be implemented. -Perhaps it isn't Antonio's or anyone elses so review it and if you feel +Perhaps it isn't Antonio's or anyone else's so review it and if you feel that it deserves being put into Harbour I'll leave that up to you. TODO: The following functions are not implemented in gtapi.c: -_gtPostExt -_gtPreExt -_gtScroll -_gtSetBlink -_gtSetMode +_gtPostExt() +_gtPreExt() +_gtScroll() +_gtSetBlink() +_gtSetMode() The following functions don't work in gtapi.c: -_gtSave -_gtRestore +_gtSave() +_gtRestore() Two Harbour functions are included in the gtapi.c file, Row() and Col() to get started. @@ -171,12 +171,15 @@ For example, compile this code: /*** t.prg ***/ REQUEST HB_GT_WIN REQUEST HB_GT_WVT + PROCEDURE Main() + ? hb_gtVersion(), hb_gtVersion( 1 ) Tone( 200, 3 ) Tone( 300, 3 ) Tone( 500, 3 ) Inkey( 0 ) + RETURN and link it as Windows GUI application. Then simply execute: @@ -213,19 +216,19 @@ driver in GUI application. You can even create mixed GUI/CUI code in one program. And finally, the Tone() function problem. -Low level TONE code is part of GT driver. In the past, GUI libraries in -Windows were linked the whole GTWIN driver and only TONE were used. It +Low-level Tone() code is part of GT driver. In the past, GUI libraries in +Windows were linked the whole GTWIN driver and only Tone() were used. It was possible because someone blocked GTWIN to work with application linked as Windows GUI programs. Now, GTWIN can be used with any applications, and I do not want reduce its functionality. So GUI -libraries which needs TONE should have their own GT driver which will +libraries which needs Tone() should have their own GT driver which will support it. Now, such GT driver can also give much more features for final users, because it allow to integrate GUI library with standard Clipper screen functions. How to create such base GUI GT driver? See as example GTGUI in src/rtl/gtgui/gtgui.c -It supports only TONE and CLIPBOARD operations. +It supports only Tone() and CLIPBOARD operations. GUI libraries can use it or create other GT driver inheriting from this one. @@ -237,16 +240,16 @@ gtnul - base GT driver from which each other inherits. It's present on all platforms and i always linked. gtcgi - very simple GT driver which does not make any output - formatting and simply send it as to stdout. + formatting and simply send it as to STDOUT. Supported by all platforms. -gtstd - it uses stdout output but tries to support full screen output but - without collor support and cursor shape. It format text to number +gtstd - it uses STDOUT output but tries to support full screen output but + without color support and cursor shape. It format text to number of row and columns if is able to detect these values on given platform. Supported by all platforms. -gtpca - It's PCANSI terminal GT - it works in similar way to ANSI GT +gtpca - It's PC-ANSI terminal GT - it works in similar way to ANSI GT driver in Clipper though keyboard input is not fully supported. Now GTTRM can make all GTPCA job and much more. Supported by all platforms. @@ -258,7 +261,7 @@ gtdos - GT driver for MS-DOS - it uses BIOS and direct hardware screen output Clipper compatible. Supported only by MS-DOS builds. -gtos2 - GT driver for OS/2 - It's sth like GTWIN but for other OS. +gtos2 - GT driver for OS/2 - It's similar to GTWIN but for another OS. Supported only by OS/2 builds. gtwin - GT driver for MS-Windows console window. @@ -302,14 +305,14 @@ gtwvt - GT driver for MS-Windows. It creates its own GUI window gtwvg - GUI emulation of GTWVT. It implements itself on top of GTWVT. GTWVG ( WVTGUI in xHarbour ) offers functions and classes to present a console application look like a windows one. - It renderes GUI elements on top of Clipper elements + It renders GUI elements on top of Clipper elements ( GETS, BROWSERS, BOXES, LINES ) which makes them feel like a Windows element. GTWVG can be used with existing code just adding some more code but without sacrificing or modifying old one. Also all IO commands can be rendered on top of the GUI elements gtxwc - GT driver for X-Window. It's like GTWVT but for nixes. - Additionaly it has set of predefined vector characters + Additionally it has set of predefined vector characters (box and arrow drawing characters) which can be used instead of the one defined in font. It means that you will have all boxes and arrows you know from MS-DOS and CP437 @@ -318,12 +321,12 @@ gtxwc - GT driver for X-Window. It's like GTWVT but for nixes. for simple program which demonstrates it. Supported by POSIX systems (mostly different *nixes) -gtalleg- GT driver which uses alegro library for input/output. +gtalleg- GT driver which uses Allegro library for input/output. It's also GUI driver which support HB_GFX*() drawing. Multi platform, works on all platforms for which allegro - library has been ported: MS-Win, MS-DOS, VESA, X11, FB, SDL, ... + library has been ported: MS-Windows, MS-DOS, VESA, X11, FB, SDL, ... -gtgui - pseudo GT driver which adds to GTNUL Clipboard and Tone +gtgui - pseudo GT driver which adds to GTNUL Clipboard and Tone() functionality. If you are using some MS-Windows GUI library and you still want to use Tone() function or HB_GTI_CLIPBOARD actions then link this GT driver with your application. diff --git a/doc/gtslang.txt b/doc/gtslang.txt index 10c62560fc..2f15ddef80 100644 --- a/doc/gtslang.txt +++ b/doc/gtslang.txt @@ -3,12 +3,12 @@ A GT Slang driver for Harbour (gtsln) is based on a S-Lang library written by John E. Davis. It was developed using Slang version 1.41, although prior -versions of Slang up to 1.22 should also work, but they are not recomended +versions of Slang up to 1.22 should also work, but they are not recommended because of some bugs they have. The main OS it is developed to be used on is Linux. Slang was ported to other OSes so it should be possible to use it on other systems too. I've -also successfully compiled and testd gtsln under MS-DOS but I don't think it +also successfully compiled and tested gtsln under MS-DOS but I don't think it makes any sense to use it on that system instead of gtdos, due to its limitations and incompatibilities with CA-Cl*pper (see below), so I removed MS-DOS support. @@ -16,7 +16,7 @@ MS-DOS support. A gt Slang driver is a second driver which can be used on Unix based OSes. The first one is a gt driver based on a curses library (gtcrs). Due to the fact that curses is a standard library on Unix like systems, gtcrs should -be considerd as a primary gt driver for such OSes. +be considered as a primary gt driver for such OSes. @@ -24,12 +24,12 @@ Compiling a gt slang driver ... -------------------------------- -The driver should be automaticly compiled when you build Harbour from -sourcees, regardless of what gt driver you've chosen by setting HB_GT_LIB. -Succesfull compilation requires Slang library and Slang header files +The driver should be automatically compiled when you build Harbour from +sources, regardless of what gt driver you've chosen by setting HB_GT_LIB. +Successful compilation requires Slang library and Slang header files properly installed on your system. The driver expects Slang header files to be placed in /slang/ directory on Linux based -systems ( this usualy means /usr/include/slang on most of them ) and +systems ( this usually means /usr/include/slang on most of them ) and on other systems (which is usually /usr/include). To build programs (by using a bld.sh script from Harbour sources), which @@ -54,25 +54,25 @@ It assumes national characters are placed in an upper 128 bytes of ASCII table from a normal character set. "Normal" means not "alternate character set" here, because "alternate character set" is generally used to display graphics characters. It also assumes national characters can be entered -for example by pressing an ALTR key and a particular key on a keyboard to -get a desired national character. If this is impossible on some terminals -due to their lack of posibilities, an alternate method which uses Dead +for example by pressing an key and a particular key on a keyboard +to get a desired national character. If this is impossible on some terminals +due to their lack of possibilities, an alternate method which uses Dead keys, is implemented. To be able to see and to enter national characters one should : - have a proper font table loaded - - optionaly have a software installed to allow enter national characters + - optionally have a software installed to allow enter national characters in whatever way they should be entered - have an environment variable HRBNATIONCHARS properly set (see below) - - optionaly have a HRBNATIONDEADKEY defined (see below) + - optionally have a HRBNATIONDEADKEY defined (see below) An environment variable HRBNATIONCHARS should contain a list of character -pairs. A first character from each pair sholud be a character from a lower +pairs. A first character from each pair should be a character from a lower 128 bytes of ASCII table, which should be pressed after a Dead Key was pressed, to get a desired national character. The second character is a national character itself. Those pairs should be defined even if a Dead key is not used (because a terminal supports other method of entering -national characters - for example ALTR+letter). +national characters - for example ). If a terminal does not support entering national characters by using an ALT key (or the other similar) an environment variable HRBNATIONDEADKEY @@ -81,7 +81,7 @@ can be defined. It should contain a character which should be pressed national character. The reason I am using HRBNATIONCHARS envvar is simple. I want to give a -better graphics chars support when the same code is ocupied by a nation +better graphics chars support when the same code is occupied by a nation char and by a graphics char. Because on terminals there are usually two glyph's character sets (normal and alternate) knowing nation's characters codes, I can switch to normal character set when a nation character code @@ -104,7 +104,7 @@ This implementation works better than it would ever work in MS-DOS where there is no way to do such tricks (because there is only one glyph's character set without VGA tricks). -Using environment variables gives a configuration fexibility to Harbour +Using environment variables gives a configuration flexibility to Harbour programs for different users and different code pages. To change a code page one should only change HRBNATIONCHARS var (if a Dead key is used) and this can be done from a script which runs a Harbour program. @@ -123,8 +123,8 @@ HRBNATIONCHARS should be defined as : where AĄ is a first pair, CĆ is a second pair and so on Suppose also we are working on a terminal which does not allow to enter -national characters by pressing ALTR+A, ALTR+C, ALTR+E. Because we like -a character '`' (\140 in octal), we arbitrary choose it as a Dead key. +national characters by pressing , , . Because we +like a character '`' (\140 in octal), we arbitrary choose it as a Dead key. So we define HRBNATIONDEADKEY as : @@ -139,13 +139,13 @@ and so on. To get '`' character we need to double press `. -Limitations, incomatibilities with CA-Cl*pper, errors ... +Limitations, incompatibilities with CA-Cl*pper, errors ... -------------------------------------------------------- The driver is rather limited in comparison to other Harbour gt drivers and -has many incompatibilities with CA-Cl*pper. Some of those limitations and in- -compatibilities are caused by an Unix behavior, others are caused by a Slang +has many incompatibilities with CA-Cl*pper. Some of those limitations and +incompatibilities are caused by an Unix behavior, others are caused by a Slang implementation. There are also some caused by a gt layer design. Not to mention that there are probably some caused by my lack of knowledge. @@ -158,17 +158,17 @@ Here is a (probably not complete) list of them : fact the previous problem, just worded differently) - you can't display characters with values below 32 (control characters). - It is a very important limitation because you can't use many usefull + It is a very important limitation because you can't use many useful chars which you used under CA-Cl*pper. This is an OS limitation which Slang also inherits - - displaying chars above 128 widely depends on terminal posibilities. + - displaying chars above 128 widely depends on terminal possibilities. Because of this on xterm I set all frame chars to a single frame (this means - double and mixed frames are shown as a single frame). You should not expect to see chars above 128 shown properly in all cases. - - a screen is automaticly cleared on program's startup (you can't inherit + - a screen is automatically cleared on program's startup (you can't inherit it from a system) and a cursor is set at 0,0 - when you run external programs a screen is restored after execution so @@ -176,8 +176,8 @@ Here is a (probably not complete) list of them : programs - you can't expect cursor hiding and cursor style changing to work at - all. Although on a textmode Linux console it works, this is a Linux - textmode hack only and it is hardcoded. For example on xterm only + all. Although on a text-mode Linux console it works, this is a Linux + text-mode hack only and it is hardcoded. For example on xterm only cursor hiding works well. - it is not guaranteed that programs which use DispBegin() and DispEnd() @@ -195,7 +195,7 @@ Here is a (probably not complete) list of them : - keyboard handling is VERY LIMITED. Generally you should not expect ALT+key, CTRL+F and CTRL+ combinations to work at all - although they work on a textmode Linux console. This is a very big + although they work on a text-mode Linux console. This is a very big problem and at least any solution should be developed to emulate this. One attempt is a Dead key workaround I've implemented for national characters and a Meta key to simulate Alt key. By default as a Meta @@ -209,7 +209,7 @@ Here is a (probably not complete) list of them : - currently there is no mouse support. This is a TODO item - Out() functions do not work well. This is caused by a design of - a gt layer where writing directly to stdout is done outside Slang, + a gt layer where writing directly to STDOUT is done outside Slang, so Slang can't maintain screen changes properly. - redirecting Out() to a file results in writing control chars @@ -226,9 +226,9 @@ Terminfo database ... Slang gt driver is based on a terminfo database so it is very important to have it properly set. Most problems are related to a broken terminfo file. I don't have general advice about that. You are supposed to help yourself. -The only thing you should know is that you must not have sequences for F11 -and F12 function keys set in a terminfo file if you want to use SHFT+F -and CTRL+F keys (of course they all should be defined there). +The only thing you should know is that you must not have sequences for +and function keys set in a terminfo file if you want to use +and keys (of course they all should be defined there). @@ -236,7 +236,7 @@ Why use gt slang driver ... ----------------------------- -Well, personaly I find only two reasons. When CA-Cl*pper compatibility and +Well, personally I find only two reasons. When CA-Cl*pper compatibility and current limitations are not a problem, gtsln is a little bit faster than gtcrs and my experiences show that sometimes it works a little bit better than gtcrs on real terminals (tested on wy60 where gtcrs did not handle @@ -247,14 +247,14 @@ the keyboard well). TODO ------ - - keyboard emulation on terminals with lack of posibilities + - keyboard emulation on terminals with lack of possibilities - support for mouse on Linux text console and on xterm - fix a problem with redirecting output to a file or a pipe - find a way to inherit screen from a system at startup (is it possible at all ?) - sound support on Linux using native sound system (Alsa ?) - support for sound on other systems than Linux - - fix working on monochorme terminals + - fix working on monochrome terminals - add a PC video card hardware emulation @@ -263,5 +263,5 @@ TODO PS. -I want to appologize for any english errors +I want to apologize for any English errors and any technical errors in this text. diff --git a/doc/hdr_tpl.txt b/doc/hdr_tpl.txt index 6549608de8..8bd992358f 100644 --- a/doc/hdr_tpl.txt +++ b/doc/hdr_tpl.txt @@ -12,7 +12,7 @@ FUNCTION HEADER TEMPLATE $AUTHOR$ Copyright YYYY FirstName LastName $NAME$ - StartHere() + StartHere() $CATEGORY$ $SUBCATEGORY$ @@ -40,7 +40,7 @@ FUNCTION HEADER TEMPLATE $FILES$ $SEEALSO$ - Comma separated list of references + Comma separated list of references $END$ */ @@ -48,77 +48,81 @@ HEADER EXAMPLES =============== /* $DOC$ + $AUTHOR$ + Copyright YYYY FirstName LastName $NAME$ - IsLeapYr() + IsLeapYr() $CATEGORY$ - Date functions + Date functions $ONELINER$ - Test if a date falls in a leap year. + Test if a date falls in a leap year. $SYNTAX$ - IsLeapYr( [] ) --> + IsLeapYr( [] ) --> $ARGUMENTS$ - is an optional date. If not supplied is defaults to the - value returned from Date(). + is an optional date. If not supplied is defaults to the + value returned from Date(). $RETURNS$ - .T. if falls in a leap year, .F. if not. + .T. if falls in a leap year, .F. if not. $DESCRIPTION$ - IsLeapYr() can be used to check if a given year is a leap year. + IsLeapYr() can be used to check if a given year is a leap year. $EXAMPLES$ - /* Check if it's a leap year. */ + /* Check if it's a leap year. */ - IF IsLeapYr() - ? "One extra day before you get paid this Feb!!" - ELSE - ? "A normal year" - ENDIF + IF IsLeapYr() + ? "One extra day before you get paid this Feb!!" + ELSE + ? "A normal year" + ENDIF $STATUS$ - C + C $COMPLIANCE$ - IsLeapYr() works exactly like CA-Cl*pper's IsLeapYr(), if your - CA-Cl*pper doesn't have such a function you're probably in a - different universe from the author of this function. + IsLeapYr() works exactly like CA-Cl*pper's IsLeapYr(), if your + CA-Cl*pper doesn't have such a function you're probably in a + different universe from the author of this function. $PLATFORMS$ - All + All $FILES$ $SEEALSO$ - Date(), IsWeekend(), IsHarbourFinished(), IsApocalypse(), SET DATE + Date(), IsWeekend(), IsHarbourFinished(), IsApocalypse(), SET DATE $END$ */ /* $DOC$ + $AUTHOR$ + Copyright YYYY FirstName LastName $TEMPLATE$ - Function + Function $NAME$ - hb_dateEncStr() + hb_dateEncStr() $CATEGORY$ - C level API + C level API $SUBCATEGORY$ - Date/Time + Date/Time $ONELINER$ $SYNTAX$ - C Prototype + C Prototype - #include - long hb_dateEncStr( char * szDate ) + #include + long hb_dateEncStr( char * szDate ) $ARGUMENTS$ - + $RETURNS$ - + $DESCRIPTION$ $EXAMPLES$ $STATUS$ - R + R $COMPLIANCE$ - NA + NA $FILES$ $PLATFORMS$ - All + All $VERSION$ - 1.0 + 1.0 $SEEALSO$ $END$ diff --git a/doc/howtorel.txt b/doc/howtorel.txt index b132ae3d70..3985d47861 100644 --- a/doc/howtorel.txt +++ b/doc/howtorel.txt @@ -8,13 +8,13 @@ By Przemyslaw Czerpak (druzus/at/priv.onet.pl) with the above unused empty directories will be removed from your repository copy. Please check if all your files are unmodified. You can redirect - stdout output from cvs command to a file to see if all files are + STDOUT output from cvs command to a file to see if all files are exactly the same. -2. Update files which contain harbour release number. Now these are: +2. Update files which contain Harbour release number. Now these are: harbour.spec include/hbver.h 3. Set proper release date in NEWS (found as doc/oldnews.txt) and - if necessary update release informations. Also add the exact + if necessary update release information. Also add the exact tag name to this file, for example "tag: build46". 4. Update ChangeLog.txt and commit your modifications. 5. Update hbver.h with ChangeLog.txt file ID and your last entry ID. diff --git a/doc/howtorep.txt b/doc/howtorep.txt index 18cd8c4403..5f89177aa6 100644 --- a/doc/howtorep.txt +++ b/doc/howtorep.txt @@ -14,36 +14,40 @@ Content ========================================================= by Viktor Szakats - 1) Read the Harbour README.md, monitor the development mailing list, + 1. Read the Harbour README.md, monitor the development mailing list, consult with the developers, make contributions. This way your chances are high to get a R/W access to the repository. - 2) Before uploading anything you'll need push permission for the + 2. Before uploading anything you'll need push permission for the Harbour Git server. To get this please make a request on the development list. Note that getting Developer status is not an automatic process. - 3) You'll need an Git client for your platform. - 4) Do a 'git clone' to get your own local development Git repository. + 2. You'll need an Git client for your platform. + 3. Do a 'git clone' to get your own local development Git repository. 1.2 Here's how to upload your changes to the Git server ======================================================= by Viktor Szakats - 1) Make the changes in the source - 2) Do a 'git pull' - 3) Resolve any conflicts - 4) Run 'hbrun bin/commit' to check any commit pre-checks + 1. Make the changes in the source + 2. Do a 'git pull' + 3. Resolve any conflicts + 4. Run 'hbrun bin/commit' to check any commit pre-checks and to create new ChangeLog.txt entry template - 5) Edit ChangeLog.txt with a text editor (do not use notepad.exe) - 6) Copy the last ChangeLog.txt entry to the clipboard + 5. Edit ChangeLog.txt with a text editor (do not use notepad.exe) + 6. Copy the last ChangeLog.txt entry to the clipboard If it's a single atomic change, it's better to copy only the description itself without the entry header and list of files. - 7) Do a 'git commit [-a]' - 8) Paste clipboard content to the text editor that popped up - 9) Save and exit in editor -10) Git is now committing -11) Do a 'git push' to publish your changes online to the + 7. Do a 'git commit [-a]' + 8. Paste clipboard content to the text editor that popped up + 9. Save and exit in editor +10. Git is now committing +11. Do a 'git push' to publish your changes online to the master repository +NOTE: + - Run once 'git config --global core.autocrlf true' on Windows + - Run once 'git config --global core.autocrlf input' on *nix + 1.3 Here's how to format your ChangeLog.txt entries =================================================== by Viktor Szakats @@ -54,11 +58,24 @@ by Viktor Szakats Describe what you've changed, the reasons, and other comments and explanations you find useful. +- To refer to a commit, simply include the commit hash in the + text. If you refer to a commit in another fork, + include the whole (GitHub) URL of the commit. + +- To refer to an issue, include issue number prefixed with + a # character. If you include the word "fixes", "fixed" + or similar, the issue will automatically be closed. + See more here: + https://help.github.com/articles/writing-on-github#references + - In case of incompatible changes visible on the user-level, add the word 'INCOMPATIBLE' to the text. -- Mark comments suggesting further fixes with 'TOFIX: ', further - todos as 'TODO: ', and update these to '[DONE]' when implemented. +- In case some translatable strings have changed, + add the word '[TRANSLATION]' to the text. + +- Mark comments suggesting further fixes with 'FIXME: ', further + TODOs as 'TODO: ', and update these to '[DONE]' when implemented. - Mark changes to merge with different branch as '[TOMERGE x.0]'. Changes these to '[MERGED x.0]' when merge is completed. @@ -68,13 +85,13 @@ by Viktor Szakats 1.4 Here's how to use the Git server in read-only mode ====================================================== - git clone git://github.com/harbour/core.git harbour-core + git clone https://github.com/harbour/core.git harbour-core 1.5 Things to do to avoid damaging the Git repository ===================================================== by David G. Holm -1) Always do your Harbour development using your local source tree. Do not +1. Always do your Harbour development using your local source tree. Do not do your development outside your local source tree and then copy your changes into your local source tree to commit them, because that leads easily to accidentally overwriting changes made by others, because @@ -83,7 +100,7 @@ by David G. Holm your local source tree, changes made by others will be merged with your changes and you only need to recompile and retest before committing. -2) Always run 'git pull' from the 'harbour' directory before you run +2. Always run 'git pull' from the 'harbour' directory before you run 'git commit'. Run 'hbmk2 bin/commit' before committing, which will create a new entry at the top of ChangeLog.txt, which you can then edit with the description of changes. @@ -99,7 +116,7 @@ by David G. Holm and the commit. -[ Copyright (c) 1999-2013 Viktor Szakats (vszakats.net/harbour) - Licensed under Creative Commons Attribution-ShareAlike 3.0: - http://creativecommons.org/licenses/by-sa/3.0/ - See COPYING.txt. ] +[ Copyright (c) 1999-2014 Viktor Szakats (vszakats.net/harbour) + Licensed under Creative Commons Attribution-ShareAlike 4.0: + https://creativecommons.org/licenses/by-sa/4.0/ + See LICENSE.txt. ] diff --git a/doc/locks.txt b/doc/locks.txt index f16e2422a9..60474bb870 100644 --- a/doc/locks.txt +++ b/doc/locks.txt @@ -10,7 +10,7 @@ They can be emulated by fcntl() or flock() locks. Harbour uses flock() in systems where it does not create conflicts with fcntl() locks used to synchronize file access by different processes in shared mode. Currently it's enabled by default only in Linux (tests with *BSD systems -and MacOSX showed that it interacts with fcntl locks causing deadlocks). +and macOS showed that it interacts with fcntl locks causing deadlocks). On other POSIX systems Harbour uses fcntl() read and write locks at address 0x7fffffff (size 1) to simulate shared and exclusive mode. @@ -126,13 +126,13 @@ CDX WRITE LOCK: @0xfffeffff : 0x10001 prepare the index modification in memory and before writing to index file lock @0xffff0000 : 0x10000 to eliminate starvation effect caused by many readers - on each 16-th read lock reading process tries to lock write + on each 16th read lock reading process tries to lock write area @0xfffeffff : 1 instead and then sets normal read lock In Harbour it's DB_DBFLOCK_COMIX. -HARBOUR 32-bit locking +Harbour 32-bit locking ====================== all locks are exclusive (*), in index shared locks are emulated @@ -148,13 +148,13 @@ CDX WRITE LOCK: @0xfffeffff : 0x10001 prepare the index modification in memory and before writing to index file lock @0xffff0000 : 0x10000 to eliminate starvation effect caused by many readers - on each 16-th read lock reading process tries to lock write + on each 16th read lock reading process tries to lock write area @0xfffeffff : 1 instead and then sets normal read lock In Harbour it's DB_DBFLOCK_HB32. -HARBOUR 64-bit locking +Harbour 64-bit locking ====================== all locks are exclusive (*), in index shared locks are emulated @@ -170,7 +170,7 @@ CDX WRITE LOCK: @0x7fffffff00000000 : 0x10001 prepare the index modification in memory and before writing to index file lock @0x7fffffff00000001 : 0x10000 to eliminate starvation effect caused by many readers - on each 16-th read lock reading process tries to lock write + on each 16th read lock reading process tries to lock write area @0x7fffffff00000000 : 1 instead and then sets normal read lock In Harbour it's DB_DBFLOCK_HB64. diff --git a/doc/oldnews.txt b/doc/oldnews.txt index 68fe8159d1..6b11d2c225 100644 --- a/doc/oldnews.txt +++ b/doc/oldnews.txt @@ -1,12 +1,11 @@ /* This work is licensed under the Creative Commons Attribution-ShareAlike - License. To view a copy of this license, visit - http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to + 4.0 International License. To view a copy of this license, visit + https://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. A summary of the license and the full legal text is included in file: LICENSE.txt. If you wish to distribute some or all of this work under different terms, please contact respective author(s). - The license applies to all entries on or after Version 1.1.0. -*/ + The license applies to all entries on or after Version 1.1.0. */ Version 3.0.0 (2011-07-17) @@ -61,7 +60,7 @@ General - HB_PLATFORM=w32 -> HB_PLATFORM=win - CCPATH -> HB_CCPREFIX - CCPREFIX -> HB_CCPATH -- GNU-make system revised to give optimal support -j +- GNU Make system revised to give optimal support -j multi-threaded parallel builds, which can dramatically increase build speed in multi-core/multi-CPU systems. - HB_WINCE -> HB_OS_WIN_CE @@ -76,7 +75,7 @@ General (old ones still work for compatibility, but please switch your code to use the new ones) - Fixed dynamic library creation on Solaris OSes. -- hbrun will now open .dbf files when passed on the command line. +- hbrun will now open .dbf files when passed on the command-line. - Added web-server written in Harbour: uHTTPD - POCC WinCE builds are now supported. - Open Watcom 1.8 (RC3) compiler is now supported. @@ -91,7 +90,6 @@ General compatibility, you can turn it off manually by #defining HB_LEGACY_OFF. (HB_USER_CFLAGS=-DHB_LEGACY_OFF) - New Harbour homepage, thanks to Vailton Renato. - http://harbour-project.org/ - GNU Make system now supports parallel builds. (needs GNU Make newer than 3.79.1) - GNU Make system allows to install in Harbour source tree on all platforms. @@ -110,7 +108,7 @@ General Harbour on Windows, so this is now a requirement for a proper build. - hb-mkslib.sh renamed to hb-mkdyn.sh. Old name stil works, but it's now deprecated. -- x64 msvc compiler got a distinct HB_COMPILER value: msvc64. +- x86_64 msvc compiler got a distinct HB_COMPILER value: msvc64. - msvcce compiler made compatible with older MSVC/WinCE versions. - Added support for Intel(R) C++ compiler (icc) on Linux and Windows. - Added new README.md document giving a quick describing of the build @@ -127,7 +125,7 @@ General - Cygwin renamed from gcc to cygwin. (NOTE: Cygwin doesn't work since some versions, and support may be removed in the future.) - Fixed #pragma -k? options to be case-insensitive. -- Explicitly bind system libraries with harbour shared library. +- Explicitly bind system libraries with Harbour shared library. RPM/DEB packages should automatically detect these dependencies. - Warning cleanup (minors) for Intel compiler. - Pelles C workarounds for compiler bugs. @@ -211,8 +209,8 @@ Core - Added hb_osDecode(), hb_osEncode() C APIs. - hb_GetEnv() extended with 3rd parameter to control OS codepage conversion (on by default). -- Added CPU dump support for AMD64/x64. -- Added module listing on GPF for x86 and x64. +- Added CPU dump support for AMD64/x86_64. +- Added module listing on GPF for x86 and x86_64. - GTXWC potential GPF fixed. - Added process handling: hb_processOpen(), hb_processValue(), hb_processClose() @@ -263,7 +261,7 @@ Core - Added Windows 7 and Server 2008 R2 version detection. - Replaced old hbmk.bat, hbmk bash script and Harbour Make tool with portable make tool written in Harbour: hbmk. This tool can create - a Harbour executable on any platforms using minimal effort. It autodetects + a Harbour executable on any platforms using minimal effort. It auto-detects OS and compiler environment. Support script and parameter files, can act as a linker, C compiler, Harbour compiler, static and dynamic library creator, resource compiler (on Windows). Core features are @@ -284,7 +282,7 @@ Core Harbour help screen. - Added support for reading FoxPro .mem files - Clipper compatibility. - Fixed very old bug which disabled writing to .mem files strings - longer then 32Kb. + longer then 32 KiB. - hbrun now accepts .dbf file as paramater, which it will open after startup. - hbrun now accepts -v option which makes it display its own version after startup. @@ -294,7 +292,7 @@ Core - Fixed __M[V]CLEAR()/ __M[V]RESTORE() to be exactly Clipper compatible and do not release PUBLIC GetList value. - bcc compiler in GNU Make now supports older Windows NT with limited - command line length. + command-line length. - Removed support for following compilers: dos/bcc16, dos/rsx32, win/dmc, win/rsxnt, os2/icc, win/icc (IBM). - Fixed static variables indexes in the generated PCODE when static @@ -307,10 +305,10 @@ Core In such case "(_INITSTATICS)" is used as function name. Without it debugger does not register entering such codeblocks and GPFs. -- Added support for automatic adding 1-st function with the same name - as compiled .prg file if some code statements are used before 1-st +- Added support for automatic adding 1st function with the same name + as compiled .prg file if some code statements are used before 1st function/procedure declared explicitly in .prg file. Such mode can - be enabled by -n2 new harbour compiler switch. This switch is used + be enabled by -n2 new Harbour compiler switch. This switch is used by default by new hbmk tool. - speedtst updated to work with CA-Cl*pper. - Added protection against pushing new private variable on HVM stack @@ -351,8 +349,8 @@ Contrib - hbtip FTP handling fixed some accidental typos. - hbtip new MIME types. - hbtip fixes and optimization to HB_BASE64(). -- rddads now autodetects version 9.10. -- hbct XToC(), FToC() and CToF() fixed to be properly multiplatform. +- rddads now auto-detects version 9.10. +- hbct XToC(), FToC() and CToF() fixed to be properly multi-platform. - hbct unbuffered drawing speed improvement in windowing code. - hbct DirName() fixed. - hbct other fixes. @@ -361,7 +359,7 @@ Contrib - hbwin made steps towards creating a unified Windows API wrapper layer. - Added hbcrypt, hbssl and rddsql (with mysql, pgsql, fbsql plugins) to contribs. -- hbct windowing extended with new low level API, better shadow +- hbct windowing extended with new low-level API, better shadow handling. - gtwvg lots of improvements. - gtwvg Xbase++ compatible UI objects. @@ -469,7 +467,7 @@ General - Several code quality enhancements, warning fixes. - Doc quality fixes, formatting. - Fixed so that build-time PRG_USR always overrides default - options in GNU-make. + options in GNU Make. - Added openSUSE package requirements to doc/linux1st.txt. - Unnecessary compiler options and lib dependencies cleaned from build processes. @@ -508,14 +506,14 @@ General instructions in make_vc.bat, how to initiate a WinCE build. - Now Harbour is able to build and run properly in MSVC C mode in AMD64 (64-bit) mode. -- Added experimental Pelles C WinCE GNU-make file. It doesn't +- Added experimental Pelles C WinCE GNU Make file. It doesn't yet work properly. - Post batch file called from core non-GNU make files was renamed, please update your system if you're using them: exit_err.bat -> hbmkpost.bat -- Added experimental MSVC WinCE GNU-make file. -- Added Darwin autodetection to non-GNU .sh make files. -- Changed GNU-make name of MinGW WinCE compiler (HB_COMPILER) +- Added experimental MSVC WinCE GNU Make file. +- Added Darwin auto-detection to non-GNU .sh make files. +- Changed GNU Make name of MinGW WinCE compiler (HB_COMPILER) from 'cemgw' to 'mingwce'. Please update your system, if you've been using this directly (and not via make_*ce.sh scripts). - Memory statistics module now turned off by default for optimal @@ -602,7 +600,7 @@ Core - Fixed GPFs and leaks when using Harbour compiler -w3 switch. - Bad workaround added for Pelles C 5.00.1 in AMD64 mode to compile the Harbour 'inet' subsystem. It won't properly - work, but it lets build the rest of Harbour (like hbrun.exe). + work, but it lets build the rest of Harbour (like hbrun executable). - PCRE lib upgraded to 7.8 (from 7.7) - Fixed dbInfo( DBI_POSITIONED ) returned value. - Fixed internal error in dirty index reading. @@ -623,7 +621,7 @@ Contrib - gtalleg fixed to compile under several non-*nix platforms (still needs more work). - xhb: hb_ArrayBlock() compatibility function added. -- hbnf ft_GetE() function bad leak fixed on Win32 systems, +- hbnf ft_GetE() function bad leak fixed on Windows systems, and potential GPF on all systems. - hbwhat32 removed wintypes.ch header. Header with the same name and identical content can be found in xhb contrib. @@ -665,7 +663,7 @@ Contrib other when building them using the non-GNU make system. - Former hbwhat32 lib added to the default contrib list under the name of hbwhat, compilation was fully cleaned - and fixed to support Win64 platform. INTERNETREADFILE(), + and fixed to support Windows 64-bit platform. INTERNETREADFILE(), INTERNETWRITEFILE() functions were fixed. what32.ch renamed to hbwhat.ch. - hbhpdf fixed HPDF_AddPageLabel(). @@ -886,7 +884,7 @@ Portability - added support for shared libraries (.sl) in HPUX builds - added large file support (64-bit) in HPUX builds - disabled in default BSD* builds DOS/Windows DENY_* flags emulation - implemented by BSD locks - tests on FreeBSD 6.2 and MacOSX shows + implemented by BSD locks - tests on FreeBSD 6.2 and OS X shows that it badly interacts with POSIX locks and it's possible to create deadlock. @@ -940,7 +938,7 @@ internals: - added support for dynamically set during compilation ChangeLog entry, ChangeLog ID, SVN revision and compilation flags. Update Harbour logo message to show the exact revision number and -- removed non-working compiler frontends: .NET CLI and JAVA. +- removed non-working compiler frontends: .NET CLI and Java. - added support for i18n into compiler (-j[] switch) gettext compatible .pot files are generated @@ -970,7 +968,7 @@ API - added C functions to access SET values (hb_setGet*()) which should be used instead of direct accessing HB_SET structure - added hb_fsFileExists() and hb_fsDirExists() -- added hb_arraySet*() functions - they should help 3-rd party developers +- added hb_arraySet*() functions - they should help 3rd party developers to eliminate using C stack level HB_ITEM and reduce usage of potentially danger function like hb_arrayGetItemPtr() - added hb_itemParamStore[Forward]() functions @@ -1007,8 +1005,8 @@ DEBUGGER RTL --- -- added functions for translation to/from UTF8 mode and operations - on UTF8 strings +- added functions for translation to/from UTF-8 mode and operations + on UTF-8 strings - added functions for bit manipulations: HB_BIT*() and for conversions to/from hexadecimal format - added set of functions with hb_ prefix supported extended parameters, @@ -1028,7 +1026,7 @@ RTL objects also with active exceptions - added missing support for _SET_FILECASE, _SET_DIRCASE switches in some functions -- added _SET_TRIMFILENAME - when enabled low level hb_fs*() functions strip +- added _SET_TRIMFILENAME - when enabled low-level hb_fs*() functions strip trailing and leading spaces from file names to emulate DOS like behavior - added support for _SET_DEFEXTENSIONS to native all RDDs - many fixes in Transform() function and fixed 64-bit integer transformation. @@ -1062,7 +1060,7 @@ GT: terminfo). It has hard coded support only for few terminals (Linux,ANSI, XTERM) but because uses only very limited set of escape sequences then on most currently used terminals it works better then curses or slang - based programs. GTTRM automatically detects ISO/UTF8 terminal mode at + based programs. GTTRM automatically detects ISO/UTF-8 terminal mode at startup and chose valid output what should also help *nix users - it resolves problems with some box drawing characters and others which are not accessible in ISO mode. It also respects /etc/harbour/hb-charmap.def @@ -1082,7 +1080,7 @@ GT: - fixed color string decoding to be fully Clipper compatible - OutStd()/OutErr() respects automatic CP translation when they are not redirected to GT screen -- added common for all GTs CLIPBOARD support. If possible low level GT +- added common for all GTs CLIPBOARD support. If possible low-level GT drivers uses system clipboard otherwise they emulate it for Harbour application only @@ -1165,7 +1163,7 @@ Version 1.1.1 Devel Build (2007-06-14) tag: build48 constructions - added BEGIN SEQUENCE [WITH ] / RECOVER [USING ] / ALWAYS / END -- new debugger code with low level C interface borrowed from xHarbour +- new debugger code with low-level C interface borrowed from xHarbour - added hash tables - speed improvement - added regular expressions @@ -1260,7 +1258,7 @@ syntax: (FLEX version only). - Added new compiler switch -gc3 to generate real C code output (instead of PCODE array called by a C wrapper). -- Added new command line switch -r= +- Added new command-line switch -r= - Added -undef: compiler switch (borrowed from xHarbour). - Added support for @filelst[.clp] - partially borrowed from xHarbour. It's not exactly the same as in Clipper because Clipper creates one @@ -1339,12 +1337,12 @@ API such code may stop to work with next Harbour versions. Without hbvmopt.h the internal structures like HB_ITEM, HB_DYNS, ... are mapped to 'void' so there is no way to access their members so we - can modify them in the future without afford for 3-rd party code. + can modify them in the future without afford for 3rd party code. - Remove default API and stack macros. Now API/stack macros can be enabled by including hb_vmopt.h file. This file should be included ONLY by core code because binary object/libraries generated after can work only with EXACTLY the same HVM compiled the same C - alignment switches. 3-rd party code should include hbvmpub.h only. + alignment switches. 3rd party code should include hbvmpub.h only. - Added support to passing function references as HB_IT_SYMBOL. - hb_itemType() return "S" for HB_IT_SYMBOL. - Message symbols are not function symbols, cleaned the HB_FS_MESSAGE @@ -1400,7 +1398,7 @@ API - Use hb_fileNameConv() instead of hb_filecase(), hb_fileNameConv() is the only one function to make file name conversions dependent on some SETs. -- HB_MATHERRMODE() input validation logic moved to the lower level +- HB_MATHERRMODE() input validation logic moved to the lower-level function. This is a step to make this a simple Set(). - Added STRPEEK and STRPOKE FS functions covered by HB_COMPAT_FLAGSHIP macro. @@ -1426,7 +1424,7 @@ GT: - Added GTI_* defintions for hb_gtInfo() function. This function works in similar way to dbInfo() in RDD. - New driver GTCRS based on xHarbour and Flagship curses code. -- New driver GTWVT for Win32 using GUI window instead of console. +- New driver GTWVT for Windows using GUI window instead of console. - New driver GTXWC for XWindow Console. - New driver GTALLEG for Allegro cross platform graphic libraries. - Respect pure REQUEST HB_GT_NUL as user GT choice if only GTNUL @@ -1439,7 +1437,7 @@ Multilangual: - Codepage: Updated UNICODE values for characters in range 1-31 to keep DOS compatibility. - Codepage: Renamed files (cdp*.c -> cd*.c). -- Codepage: Added UTF8 related functions: hb_cdpUTF8StringLength(), +- Codepage: Added UTF-8 related functions: hb_cdpUTF8StringLength(), hb_cdpStringInUTF8Length(), hb_cdpUTF8ToStrn(). - Moved EN lang definitions to core lang code so we always have - HU sorting order fixed to be more compatible with Clipper. @@ -1456,7 +1454,7 @@ RDD - Rewritten DBFNTX, now it supports in practice all CDX features with multi tags and many others. With rddInfo() some important new features in DBFNTX can be enabled like increased maximum NTX file - size up to 4TB, support structural/autoopen indexes, bounding record + size up to 4 TiB, support structural/autoopen indexes, bounding record number with index key (like in CDX format what resaolves the performance problem with indexes which have a lot of non unique keys, etc.) @@ -1506,7 +1504,7 @@ Contrib - ADS: Added ADSCDX, ADSNTX and ADT RDDs. ADS RDD should not be longer used, it's only for backward compatibility. - ADS: Call AdsFlushFileBuffers() only when _SET_HARDCOMMIT is set. -- ADS: Added possibility to save memo fields > 64K. +- ADS: Added possibility to save memo fields > 64 KiB. - ADS: Added support for relations in ADS* RDDs which are not supported directly by ADS or are for other non ADS* tables. - ADS: Synced base RDD with xHarbour. @@ -1604,7 +1602,7 @@ The runtime modules - Added Spanish Modern codepage - Synced HB CDP API with xHarbour - added basic Unicode support - Added functions hb_fsLockLarge() and hb_fsSeekLarge() which uses 64-bit - offsets in filesys.c for files larger than 2Gb + offsets in filesys.c for files larger than 2GB RDD --- @@ -1623,7 +1621,7 @@ General ------- - Updated build process for Debian Linux distribution (.deb) packages. Now hb* scripts and shared libs are created by standard make install -- Added support for Solaris (SunOS) and Darwin (Mac OS X). +- Added support for Solaris (SunOS) and Darwin (OS X). - Added support for Hewlett Packard Unix (HP_UX) and ALPHA DEC. - Many adds and fix in compilation scripts on all platforms. - Fixed some error messages @@ -1641,7 +1639,7 @@ The compiler - New compiler flag -ks was added to enable support for strings as array of bytes. (Notice that support for strings as array of bytes is disabled by default both in the Harbour compiler - and in harbour's runtime modules) + and in Harbour's runtime modules) - Added a new compiler switch -kJ to disable jump optimalization and NOOP pcode removal (optimalization is enabled by default). - When Xbase++ mode is not used (-kc or -kch) then compiler doesn't @@ -1651,7 +1649,7 @@ The compiler - Enabled support for break[]. - Fixed optimalization of far jumps (this fixes generation of pcode for abnormally large (DO CASE/IF/ELSEIF statements) -- Added support to OpenWatcom DOS/Win32. +- Added support to OpenWatcom DOS/Windows. - Fixed compilation of &(exp) in normal stringify markers (this fixes INDEX ON bug). - Added missing support for @¯o and @M->memvar (aAdded a new @@ -1661,7 +1659,7 @@ The compiler passed argument has the same name as declared parameter. - Fixed parsing of nested #defines in command/translate - Macro - Added HB_SM_ARRSTR support. -- Clipper preproceses '**' into '^' - harbour too +- Clipper preproceses '**' into '^' - Harbour too - Added HB_COUNTER and HB_PTRDIFF types - first for reference counters and second for any pointer differences and pointer to integer conversions. - HB_EXPORT is added to ITEM API, FILE API and some other function @@ -1688,7 +1686,7 @@ The runtime modules - Added possibility to load a character mapping using HB_GT_CHARMAP() (ncurses GT only) - Improved recognition of xterm compatible terminals (ncurses GT only) -- New internal command line arguments were added to control +- New internal command-line arguments were added to control application at runtime: //FLAGS:switches this flag controls compatibility issues of the virtual @@ -1734,14 +1732,14 @@ The runtime modules - Fixed to correctly return the procedure name where the codeblock was created. - Greek and Serbian language codepage files added. - fixed to use 'mkstemp' on Unix (no more GCC linker warnings) -- Fixed file find API to be compatible with CA-Cl*pper on the lower level. +- Fixed file find API to be compatible with CA-Cl*pper on the lower-level. - Fixes in TBColumn class RDD --- - Latest RDD changes synced with xHarbour. - Fixed dbCreate() bug that closed an open dbf with same name as newly - created dbf in a different folder. + created dbf in a different directory. - FieldPut() Fixed to accept and ignore field NIL values without runtime error. C52 compatible. - Added scopped relations. Now ordSetRelation() works with DBFCDX like @@ -1832,7 +1830,7 @@ Version 0.38 Alpha Build 38 (2001-12-15) tag: build38 - ::Super(::oneVar) is now correctly interpreted - Freezed Scooping because it was not anymore working after the previous fix. Waiting after Alpha build 38 to fix and re-enable it -- HGF (Harbour GUI multiplatform Framework) started +- HGF (Harbour GUI multi-platform Framework) started - Class HBPersistent added to RTL to provide Harbour objects persistence - New PROPERTY | PERSISTENT clause added as a DATA feature - New function __clsGetProperties() added. Syntax: @@ -1864,7 +1862,7 @@ Version 0.38 Alpha Build 38 (2001-12-15) tag: build38 - Hbzlib enhacements - Some debugger fixes - it is now really usable. - Hbmake enhacements -- On Win32 platforms, Harbour now supports the ability to create and +- On Windows platforms, Harbour now supports the ability to create and use .dll files. These .dll files can be used as pcode storage, Harbour Runtime storage, or both, and if both, can be made callable from other languages that use .dll's as fully functional standalone @@ -1926,9 +1924,10 @@ Version 0.35 Alpha Build 35 (2000-08-15) - MySQL database access contribution started - ADS RDD encryption/decryption functions added - New GTCGI driver -- Improved command line parsing -- Alternate Lexer (SimpLex), utilizes less memory, smaller Harbour.exe - as well as smaller compiled applications (due to smaller macro compiler) +- Improved command-line parsing +- Alternate Lexer (SimpLex), utilizes less memory, smaller harbour + executables as well as smaller compiled applications (due to smaller + macro compiler) ---------------------------------------------------------------------- Version 0.34 Alpha Build 34 (2000-06-02) @@ -1937,7 +1936,7 @@ Version 0.34 Alpha Build 34 (2000-06-02) - Linux/Unix ncurses screen output and xterm mouse input support - MEMOEDIT support started - CONTRIBs better separated from core Harbour (TOOLS moved there) -- Simplified and enhanced base for multiplatform coding +- Simplified and enhanced base for multi-platform coding - Language API (link/compile time language module selection) - Several small optimizations, enhancements and fixes (compiler, macro, GT, inkey, make and build systems, more strict compiler warnings) @@ -1997,10 +1996,10 @@ Version 0.33 Alpha Build 33 (2000-04-07) - Make and build files further cleaned up, enhanced, optimized, synchronized etc... - Compiler and platform detection enhanced, some hacks removed, - multiplatform cleanups and fixes. + multi-platform cleanups and fixes. - Warning levels upped, warnings fixed, code quality raised - Version numbering standardized -- Multiple source file support in Harbour command line +- Multiple source file support in Harbour command-line - HBCLIP and RUNJAVA contribution dirs added - HBDOC Enhacements: New subtags for better output: , for paragraph for bold, for italic, for bold italic font @@ -2013,7 +2012,7 @@ Version 0.32 Alpha Build 32 (2000-03-07) - New Borland make files - Many make and build processes fixes, enhancements, warning fixes -- Borland, MSVC and GNU-make processes don't collide anymore +- Borland, MSVC and GNU Make processes don't collide anymore - PP now supports code in header files - Docs separated from the source - Docs enhanced @@ -2041,7 +2040,7 @@ Version 0.31 Alpha Build 31 (2000-01-27) tag: build31 - Many changes, fixes, and enhancements to the GT API system - Improved SetCursor() and Set( _SET_CURSOR ) - Added FieldBlock() and FieldWBlock() -- The Harbour '-w' command line option can set the maximal level of reported +- The Harbour '-w' command-line option can set the maximal level of reported warnings. The following levels are supported currently: '-w0' - no warnings '-w' or '-w1' - Clipper compatible warnings @@ -2099,7 +2098,7 @@ Version 0.31 Alpha Build 31 (2000-01-27) tag: build31 - Added HARBOURCMD/CLIPPERCMD environment variables - Added support for #pragma directives - Enhanced GetEnv() function -- Added //BUILD app command line option +- Added //BUILD app command-line option ---------------------------------------------------------------------- Version 0.30 Alpha Build 30 (1999-09-30) @@ -2114,20 +2113,20 @@ Version 0.30 Alpha Build 30 (1999-09-30) - Support for FIELD variables - Support for canceling the application by pressing Alt-C - Enhanced ITEM API -- Support for internal command line options '//' +- Support for internal command-line options '//' - Severe speed improvement - Better Directory() compatibility - Redirected output works now - Even more Preprocessor compatibility - Set HARBOUR= in environment to override Set CLIPPER= settings - Rudimentary Unix keyboard support added -- Tone support added +- Tone() support added - SET KEY support was added - Extensive regression test suite added (RTL_TEST) - Array handling fixed and made Clipper compatible - Ragged array declaration and initialization support added - FileSys API extensions, more C5.3 compatible functions added -- Compiler command line compatibility enhanced +- Compiler command-line compatibility enhanced - Internal errors made uniform - Source code cleanup and formatting - Many new functions, samples and bug fixes @@ -2141,7 +2140,7 @@ Version 0.29 Alpha Build 29 (1999-07-27) MacIntosh BC 3.1, 4.0, 4.5, 5.2 GCC OS/2 - GCC Win32 + GCC Windows MS VC GCC Linux / Unix IBM C @@ -2174,8 +2173,8 @@ Version 0.28 Alpha Build 28 (1999-07-18) ---------------------------------------------------------------------- Version 0.27a Alpha Build 27a (1999-06-19) -- Corrected build numbers in Harbour.exe -- Corrected a little bug in HScript.prg +- Corrected build numbers in harbour executable +- Corrected a little bug in hscript.prg ---------------------------------------------------------------------- Version 0.27 Alpha Build 27 (1999-06-18) @@ -2226,9 +2225,9 @@ Version 0.24 Alpha Build 24 (1999-06-03) ---------------------------------------------------------------------- Version 0.23 Alpha Build 23 (1999-05-19) -- Harbour.exe for DOS/Windows is included now -- The Windows libs are also included (hbw.bat to build Windows .exe's) -- .hrb files! These files can be run with the runner.exe (Source included) +- harbour executable for DOS/Windows is included now +- The Windows libs are also included (hbw.bat to build Windows executables) +- .hrb files! These files can be run with runner.exe (Source included) - No need for a C compiler anymore to run Harbour source! - New MAKE and BUILD files for IBM C++ 3.0 for OS/2 - Many fixes, Many enhancements (See ChangeLog in the Harbour directory) @@ -2238,7 +2237,7 @@ Version 0.23 Alpha Build 23 (1999-05-19) ---------------------------------------------------------------------- Version 0.21-2 Alpha Build 21-2 (1999-05-13) -- 32 bits OBJ's generation +- 32-bit OBJ's generation - More Clipper language compatibility - New object oriented features @@ -2281,7 +2280,7 @@ Version 0.17 Alpha Build 17 (1999-04-20) Version 0.16 Alpha Build 16 (1999-04-17) - New project directories structure -- Added support for command line parameters +- Added support for command-line parameters - Compiler /o options changed to /g - /gc added (default option) - Changes on types.h @@ -2322,7 +2321,7 @@ OpenClipper #9 Alpha build 9 (1999-04-01) - Bison 1.24 is used now instead of byacc as byacc were returning a 'Out of space' error (parser execution is faster now!) - We are linking using huge memory model now cause DGROUP was already - over 64Kb + over 64 KiB ---------------------------------------------------------------------- OpenClipper #8 Alpha build 8 (1999-03-29) diff --git a/doc/pp.txt b/doc/pp.txt index f625f2668d..48646f848e 100644 --- a/doc/pp.txt +++ b/doc/pp.txt @@ -332,7 +332,7 @@ making in last days. to macro tokens expressions starting with '&' followed by '('. The macro tokens are stringify in differ way. If macro does not have any internal '&' characters and has at most - one '.' as last character then as result non quited keyword + one '.' as last character then as result non quoted keyword is generated. Otherwise it generate strings with stripped first '&' character. If expression starts with '&' token followed by single @@ -450,7 +450,7 @@ making in last days. The optional match patterns are one of the weakest point of current PP. Even such simple code: #xcommand CMD [IN [GET] [PUT]] => ? # - CMD sth IN PUT GET + CMD something IN PUT GET Is not well preprocessed. 20. rule have to begin with non empty token or the rule will never be used. @@ -492,7 +492,7 @@ making in last days. If anything substituted continue - Do While 1-st token match some #[x]command pattern + Do While 1st token match some #[x]command pattern substitute EndDo @@ -500,7 +500,7 @@ making in last days. Output processed token until the last one or ; token - If 1-st token is '#' + If 1st token is '#' continue Remove all tokens in the list until the last one or ; token @@ -647,15 +647,15 @@ making in last days. Such special status can be added automatically when ; token is followed by # or ; is quoted by \ d. already existing xHarbour extensions: - #[x]unTrasnslate, #[x]unCommand + #[x]untranslate, #[x]uncommand but modified to locate match pattern which can cover exactly the same data. #if but working with integer to allow using 64bit ones which are broken due to conversion to double. The semantic for expressions will be similar to C one with the exception to ! (not) operator precedence. - I do not think that Clipper/xbase users are familiar with the exact - not operator precedence in C which is differ then the one in xbase + I do not think that Clipper/xBase users are familiar with the exact + not operator precedence in C which is differ then the one in xBase world. e. modified version of Harbour's #pragma {__text, __stream, __cstream, __endtext} diff --git a/doc/pp_prg.txt b/doc/pp_prg.txt index 58c1f47eb6..3b9f1abe6d 100644 --- a/doc/pp_prg.txt +++ b/doc/pp_prg.txt @@ -3,32 +3,32 @@ Przemyslaw Czerpak (druzus/at/priv.onet.pl) In Harbour preprocessor can be used in PRG code. This is list of PRG functions available for programmer. - REQUEST __PP_STDRULES + REQUEST __pp_StdRules It forces including standard std.ch rules in static binaries. - Dynamic binaries linked with harbour dynamic library always + Dynamic binaries linked with Harbour dynamic library always includes standard PP rules. - __PP_INIT( [] [, ] ) -> + __pp_Init( [] [, ] ) -> Initialize new PP context and return pointer to it. when is empty string ("") then no default rules are used and only the dynamically created #defines like __HARBOUR__, __DATE__, __TIME__, __PLATFORM__* are registered. If is missing or NIL and standard PP rules from - std.ch are included in binaries (REQUEST __PP_STDRULES) then + std.ch are included in binaries (REQUEST __pp_StdRules) then they are used. - __PP_PATH( , [, ] ) -> NIL + __pp_Path( , [, ] ) -> NIL Add new (or replace previous) include paths. - __PP_RESET( ) + __pp_Reset( ) Reset the PP context (remove all rules added by user or preprocessed code) - __PP_ADDRULE( , ) + __pp_AddRule( , ) Preprocess and execute new preprocessor directive - __PP_PROCESS( , ) -> + __pp_Process( , ) -> Preprocess given code and return result User can create more then one PP context and then use each of them @@ -56,25 +56,28 @@ it's lines by macro compiler: ? "pow =", pow ? "value * pow =", VALUE * pow WAIT - ? VALUE2 // generate RTE + ? VALUE2 // generate RTE /*** testpp.prg ***/ - REQUEST __PP_STDRULES - REQUEST __WAIT - PROC Main() - local cLine, pPP, oErr - pPP := __PP_INIT() - BEGIN SEQUENCE WITH {|oErr| BREAK( oErr ) } - FOR EACH cLine IN hb_ATokens( StrTran( __PP_Process( pPP, ; - hb_MemoRead( "macro.dat" ) ), Chr( 13 ) ), Chr( 10 ) ) + REQUEST __pp_StdRules + REQUEST __Wait + + PROCEDURE Main() + + LOCAL cLine, pPP, oErr + + pPP := __pp_Init() + BEGIN SEQUENCE WITH __BreakBlock() + FOR EACH cLine IN hb_ATokens( __pp_Process( pPP, ; + hb_MemoRead( "macro.dat" ) ), .T. ) BEGIN SEQUENCE - IF !Empty( cLine ) + IF ! Empty( cLine ) &cLine ENDIF RECOVER USING oErr ? "MacroCompiler error at line:", ; - hb_ntos( cLine:__enumIndex() ) + hb_ntos( cLine:__enumIndex() ) ? cLine ? ErrMsg( oErr ) END SEQUENCE @@ -83,17 +86,18 @@ it's lines by macro compiler: ? ErrMsg( oErr ) END SEQUENCE ? - RETURN + + RETURN STATIC FUNCTION ErrMsg( oErr ) - RETURN "Error " + ; - iif( HB_ISSTRING( oErr:subsystem ), ; - oErr:subsystem, "???" ) + ; - iif( HB_ISNUMERIC( oErr:subCode ), ; - "/" + hb_ntos( oErr:subCode ), "/???" ) + ; - iif( HB_ISSTRING( oErr:description ), ; - " " + oErr:description, "" ) + ; - iif( ! Empty( oErr:filename ), ; - " " + oErr:filename, ; - iif( ! Empty( oErr:operation ), ; - " " + oErr:operation, "" ) ) + RETURN "Error " + ; + iif( HB_ISSTRING( oErr:subsystem ), ; + oErr:subsystem, "???" ) + ; + iif( HB_ISNUMERIC( oErr:subCode ), ; + "/" + hb_ntos( oErr:subCode ), "/???" ) + ; + iif( HB_ISSTRING( oErr:description ), ; + " " + oErr:description, "" ) + ; + iif( ! oErr:filename == "", ; + " " + oErr:filename, ; + iif( ! Empty( oErr:operation ), ; + " " + oErr:operation, "" ) ) diff --git a/doc/pragma.txt b/doc/pragma.txt index 7dd87d3321..ad5e48d0d6 100644 --- a/doc/pragma.txt +++ b/doc/pragma.txt @@ -75,7 +75,7 @@ EXAMPLES #pragma linenumber=off /* #pragma -l */ -This is the same as calling Harbour with the -l switch in the command line, +This is the same as calling Harbour with the -l switch in the command-line, but with the great benefit that if you forgot to pass the switch, it will be used anyway because it is included inside the source. @@ -89,7 +89,7 @@ SPECIAL PRAGMAS =============== These pragmas allows to control the processing of PRG source within the preprocessor. The special handling is done with a text enclosed -betwen the '#pragma ' and '#pragma __endtext' +between the '#pragma ' and '#pragma __endtext' #pragma __text -------------- @@ -97,10 +97,10 @@ Syntax: #pragma __text '|' [LineOutputCode] '|' [FinallyCode] '|' [StartupCode] Every line of text is stringified using '[' and ']' markers and is - passed to 'LineOutputCode' using C '%s' formating code. The result + passed to 'LineOutputCode' using C '%s' formatting code. The result text is passed further to the syntax analyzer. The 'StartupCode' - is returned at the very beginning of procesing. The 'FinallyCode' - is returned at the end. If 'LineOutputCode' is ommited then all + is returned at the very beginning of processing. The 'FinallyCode' + is returned at the end. If 'LineOutputCode' is omitted then all lines are ignored. For example, this pragma is used to implement TEXT/ENDTEXT command @@ -136,19 +136,19 @@ Syntax: ? TEXT TO VAR v - This is 'example' text with ''""[] embeded + This is 'example' text with ''""[] embedded ENDTEXT The above example is preprocessed into: - v:=[This is 'example' text with ''""[] embeded] + v:=[This is 'example' text with ''""[] embedded] #pragma __cstream ---------------- Syntax: #pragma __cstream '|' [JoinLineCode] '|' [EndingCode] '|' [StartingCode] - This is simmilar to '#pragma __stream' with the additional convertion - of C esc sequences e.g \n \t \r \b + This is similar to '#pragma __stream' with the additional conversion + of C Esc sequences e.g \n \t \r \b For example: @@ -156,18 +156,18 @@ Syntax: #pragma __cstream|%s||:= TEXT TO VAR v - This is 'example' text with ''""[] embeded and C \n + This is 'example' text with ''""[] embedded and C \n sequence ENDTEXT ? v The above example is preprocessed into: - v:=[This is 'example' text with ''""[] embeded and C \nsequence] + v:=[This is 'example' text with ''""[] embedded and C \nsequence] QOut(v) and at runtime the following is printed: - This is 'example' text with ''""[] embeded and C + This is 'example' text with ''""[] embedded and C sequence #pragma __endtext @@ -189,7 +189,7 @@ Syntax: This pragma sets the maximum number of preprocess iterations during the source code translation. The default value is 1024. - This is the same as /r= command line switch + This is the same as /r= command-line switch For example: diff --git a/doc/statics.txt b/doc/statics.txt index 354c5c7807..ab1f8ebd76 100644 --- a/doc/statics.txt +++ b/doc/statics.txt @@ -5,7 +5,7 @@ does not generate the proper pcode for them). So I would like to make an introduction to static variables management as it is a sophisticated system that Harbour is going to implement. - It is something publically known that Clipper static variables are + It is something publicly known that Clipper static variables are located at the bottom of the data segment. This has caused all kinds of troubles. This is why when I designed Five I did it in a way that could not cause any trouble in the future. diff --git a/doc/todo.txt b/doc/todo.txt index 366e6814e2..ca38d30040 100644 --- a/doc/todo.txt +++ b/doc/todo.txt @@ -3,8 +3,8 @@ Harbour TODO list ======================================================================= -Tasks for after v.1 release: ----------------------------- +Tasks for after v1.0 release: +----------------------------- Assign to: Ryszard Detail...: SQLRDD. @@ -12,26 +12,6 @@ Status...: Working on it. *** -Assign to: -Detail...: Add support for virtual file handles and registering some - meta handles so it will be possible to make: - h := FOpen( "gzip:/tmp/myarchive.gz", FO_WRITE ) - FWrite( h, cData ) - FClose( h ) - or: - h := FOpen( "tcp:some.host:port", FO_WRITE ) - ... - or: - h := FOpen( "|lpr -PLaserJet", FO_WRITE ) - ... - or: - h := FOpen( "gunzip /tmp/myarchive.gz|", FO_READ ) - ... - etc. -Status...: Open. - -*** - Assign to: Przemek Detail...: Define multi platform platform API for GTs which can mix graphics objects with standard text output. Now it's @@ -52,7 +32,7 @@ Assign to: Detail...: Add NETRDD - meta RDD which will allow transport layer between client application and server application with any other chosen RDD driver. Idea similar to GTNET but for RDD - drivers - it's sth like ADS does. + drivers - it's something like ADS does. Status...: Open. *** @@ -62,7 +42,7 @@ Detail...: Extended HB_IT_POINTER. In practice we can give them the same functionality as for objects and use them for fast creation objects at C level. We can also add HB_VALTYPE() function which will return the extended type name, f.e. - "WINDOW", "FONT", "SOCKET" or anything what 3-rd party + "WINDOW", "FONT", "SOCKET" or anything what 3rd party programmers may want to use. It will greatly simplify writing some libraries. Status...: Open. @@ -77,14 +57,14 @@ Status...: Open. *** Assign to: Ryszard -Detail...: Real strong typing in the compiler. +Detail...: Static/gradual ("strong") typing in the compiler. Status...: Open. *** ======================================================================= - Harbour TOFIX list + Harbour FIXME list ======================================================================= diff --git a/doc/tracing.txt b/doc/tracing.txt index 8daae65329..174a9d7e65 100644 --- a/doc/tracing.txt +++ b/doc/tracing.txt @@ -12,7 +12,7 @@ the C code: HB_TRACE( level, ( "printf-style parameters", arg1, arg2 ) ); -The level specified for the HB_TRACE call affects harbour in two ways: +The level specified for the HB_TRACE call affects Harbour in two ways: compilation time and run time. @@ -61,7 +61,7 @@ one of with the following effect: any calls to HB_TRACE that were left by the compiler and which have a level lower or equal to HB_TR_LEVEL will -print its arguments on stderr. +print its arguments on STDERR. EXAMPLES @@ -91,7 +91,7 @@ usually set the HB_USER_CFLAGS environment variable like this: export HB_USER_CFLAGS='-DHB_TR_LEVEL=HB_TR_INFO' -or for other OS (eg: MS-DOS, Windows) +or for other OS (e.g.: MS-DOS, Windows) SET HB_USER_CFLAGS=-DHB_TR_LEVEL_INFO @@ -101,7 +101,7 @@ can set an environment variable like this: export HB_TR_LEVEL=HB_TR_WARNING -or for other OS (eg: MS-DOS, Windows) +or for other OS (e.g.: MS-DOS, Windows) SET HB_TR_LEVEL=HB_TR_WARNING @@ -115,8 +115,8 @@ USAGE When Harbour is compiled/run with some level of tracing and then used to compile a regular Harbour application, the app will output LOTS of -tracing information to stderr. If you are using a sensible command -shell (such as bash) you can redirect stderr to a file like this: +tracing information to STDERR. If you are using a sensible command +shell (such as bash) you can redirect STDERR to a file like this: my_app 2> trace.txt @@ -124,18 +124,18 @@ shell (such as bash) you can redirect stderr to a file like this: REDIRECTION =========== -The output generated while tracing goes to stderr by default. You can +The output generated while tracing goes to STDERR by default. You can control this at run-time by setting the environment variable HB_TR_OUTPUT to the name of a file where you would like the tracing output to be directed. If there is any problem opening the file for -writing, the output reverts to stderr. +writing, the output reverts to STDERR. -When it happens an error and the controller of errors of harbour cannot -intercept it (eg: GPF), it can happen that part of information of tracing +When it happens an error and the controller of errors of Harbour cannot +intercept it (e.g.: GPF), it can happen that part of information of tracing it is not written. This problem is avoided setting the environment variable HB_TR_FLUSH to 1 (one). This makes that every time that one record is sent to write, don't remain in the buffer, but rather it is -writen in the file before continuing with the execution. +written in the file before continuing with the execution. This set can produce an important reduction of speed of execution. TRACING THE PREPROCESSOR AND COMPILER diff --git a/doc/transfrm.txt b/doc/transfrm.txt index 15e43a0961..1f55c911db 100644 --- a/doc/transfrm.txt +++ b/doc/transfrm.txt @@ -69,5 +69,5 @@ The following functions mean something : date format is British, using @E displays the date in American. Harbour always treats @E as British. - So is Harbour's behaviour a bug fix or a bug? + So is Harbour's behavior a bug fix or a bug? */ diff --git a/doc/vm.txt b/doc/vm.txt index 76630d8e74..1fc0d3db92 100644 --- a/doc/vm.txt +++ b/doc/vm.txt @@ -1,13 +1,13 @@ The Harbour virtual machine (VM) -Question : +Question: If a VM description is desirable, how should it be structured? (I propose plain text, with two main sections: VM description, Opcodes. The "Opcodes" section would describe every opcode: mnemonic, code, operands, description. I think I can maintain this section.) -Answer : +Answer: The VM is formed by the main execution loop and several subsystems, each of which could be theoretically replaced, supposing that you respect the @@ -47,9 +47,9 @@ will be optimized by the dynamic symbol table. The dynamic symbol table: Dynamically generated from the startup subsystem at the beginning of the application. It organizes in an efficient way the -static symbol table creating an alphabetical index that allows a dicotomic +static symbol table creating an alphabetical index that allows a dichotomic search of symbols. This subsystem is responsible for quick access to symbols -(functions, variables, fields and workareas aliases). +(functions, variables, fields and work areas aliases). The static and public variables: Responsible for storing public and static variables. @@ -58,7 +58,7 @@ The memory: Responsible for allocating, reallocating, locking, unlocking and freeing memory. The extend system: Defines the interface (_parc(), ..., _retc() ) from low -level (C language) to high level (Clipper language). This subsystem is +level (C language) to high-level (Clipper language). This subsystem is responsible for connecting in a proper way C language functions to the entire application. @@ -74,14 +74,14 @@ runtime. The macro subsystem: it implements a reduced compiler that may be used at runtime to generate pcode to be used by the application. In fact it is a -portion of the harbour yacc specifications. +portion of the Harbour yacc specifications. -The workareas subsystem: Responsible for databases management. It defines -the locations where the used workareas will be stored and provides all the -functions to access those workareas. It also implements the interface to the +The work areas subsystem: Responsible for databases management. It defines +the locations where the used work areas will be stored and provides all the +functions to access those work areas. It also implements the interface to the replaceable database drivers. -Question : +Question: Will Harbour opcodes mimic the Clipper ones? (will there be a 1:1 relation between them?) If so, are Clipper opcodes described somewhere? @@ -89,7 +89,7 @@ relation between them?) If so, are Clipper opcodes described somewhere? Answer: Clipper language pcode opcodes - DEFINE NAME VALOR BYTES + DEFINE NAME VALUE BYTES #define NOP 0x00 1 #define PUSHC 0x01 3 + literal #define PUSHN 0x05 3 @@ -277,7 +277,7 @@ Answer: #define SETPOSBS 0xCF 1 Harbour will not implement all of them as we want to provide the highest -freedom to programers to extend and modify Harbour as needed. In example: +freedom to programmers to extend and modify Harbour as needed. In example: Clipper language uses opcodes for: Row(), Col(), Upper(), Space(), Replicate(), Inkey(), Year(), Month(), etc... where we may just call a standard C function, that uses the standard extend system and that may be @@ -285,15 +285,15 @@ easily modified. So Harbour will use much less opcodes than the Clipper language. This will also help to have a simpler and easier to maintain compiler and VM. -Question : +Question: I see that, for example, Harbour has an opcode named "PUSHWORD"(06), -while Valkyre calls it "PUSHW"(3B): Different names, different codes. -Isn't it desirable that Harbour pCode be binary-compatible with Clipper? I -mean, by doing so, Harbour VM could interpret Clipper pCode and -vice-versa. +while Valkyrie calls it "PUSHW"(3B): Different names, different codes. +Isn't it desirable that Harbour pcode be binary-compatible with Clipper? I +mean, by doing so, Harbour VM could interpret Clipper pcode and +vice versa. -Answer : +Answer: Harbour opcodes are defined in hbpcode.h. We are trying to use very easy to remember mnemonics, so PUSHWORD seems easier than PUSHW. The opcodes values @@ -304,7 +304,7 @@ speed may increase. Clipper uses it). We are not fully implementing the Clipper language OBJs model (i.e. to provide identifiers names length higher than 10 chars) so Harbour OBJs will -not be supported by Clipper and viceversa. +not be supported by Clipper and vice versa. sorry for such a long message :-) diff --git a/doc/windll.txt b/doc/windll.txt index dc707e455a..c9d4a6c36b 100644 --- a/doc/windll.txt +++ b/doc/windll.txt @@ -1,84 +1,77 @@ -Windows DLLs with Harbour code -============================== +# Windows DLLs with Harbour code Programs created with Clipper or Harbour are traditionally a -monolithic EXE containing all executable code. This includes -the Virtual Machine (VM) and the RunTime Library (RTL) as well as -your own code. Running under Windows with Harbour, you +monolithic executable containing all executable code. This includes +the Virtual Machine (VM) and the Runtime Library (RTL) as well as +your own code. Running under Windows with Harbour, you can now also create and use Windows DLLs that contain PRG code. Harbour supports Windows DLLs in 3 ways. - 1) Self-contained DLLs containing functions from any platform. + 1. Self-contained DLLs containing functions from any platform. (These are not what we call a "harbour.dll", although they may be named that. The DLL entry points are different.) These have the VM/RTL inside them and can be used by any other - Windows program. You can create a .lib for static linking, - or use GetProcAddress as in any standard Windows DLL. - Calling Harbour/Prg functions directly is limited to + Windows program. You can create a library for static linking, + or use GetProcAddress() as in any standard Windows DLL. + Calling Harbour/.prg functions directly is limited to those that take no parameters unless you include C functions in the DLL that take parameters and then call the PRG-level code. - To do static linking, do this to create the .lib: - implib harbour.lib harbour.dll - For the Borland C platform, use that library and import32.lib - and cw32.lib from Borland, and you are ready to go. + To do static linking, do this to create the library: + hbmk2 -hbimplib harbour.dll + 2. PCode executables using a harbour.dll - 2) PCode EXEs using a Harbour.dll - - A Harbour.dll is designed to be called from a Harbour app. - A pcode EXE is a small Harbour executable that does not contain the - VM/RTL. To execute its functions, it must load and access a - Harbour.dll. + A harbour.dll is designed to be called from a Harbour app. + A pcode executable is a small Harbour executable that does not + contain the VM/RTL. To execute its functions, it must load and access + a harbour.dll. If you want dynamic linking, then use this to execute a Harbour dynamically loaded pcode DLL function or procedure: - HB_DllDo( [,] ) --> [] + hb_LibDo( [, ] ) --> [] This lets you have all your common code in a DLL, and have lots - of small EXEs that use it. Realize however that, even though this - may be a nice way to manage your code, each EXE may - load its own image of the Harbour.dll into memory at runtime. + of small executables that use it. Realize however that, even though + this may be a nice way to manage your code, each executable may + load its own image of the harbour.dll into memory at runtime. In terms of Windows memory, there may not be a benefit to using pcode - EXEs over monolithic EXEs. But it may be a worthwhile maintenance - benefit to have lots of replaceable small exes. + executables over monolithic executables. But it may be a worthwhile + maintenance benefit to have lots of replaceable small exes. - 3) PCode DLLs used from traditional EXEs + 3. PCode DLLs used from traditional executables A pcode DLL does not contain the VM/RTL. It is a library of Harbour-compiled PRG code that uses the VM/RTL - of the EXE that calls it. This has the benefit of having + of the executable that calls it. This has the benefit of having replaceable modules in DLLs that don't necessarily require updating - your EXE. + your executable. The following is clipped from a msg by Antonio Linares to the Harbour developer list explaining some of the details: Please notice that there are three different Windows DLL entry points: - + src/vm/ - * maindll.c Windows self-contained DLL entry point - * maindllh.c Windows Harbour DLL entry point (harbour.dll) - * maindllp.c Windows pcode DLL entry point and VM/RTL routing functions - > * maindll.c Windows self-contained DLL entry point - To produce Harbour code, as DLLs, that may be used - from other programming languages applications (as VB, - Delphi, C++, etc...) + * src/vm/maindll.c Windows self-contained DLL entry point - > * maindllh.c Windows Harbour DLL entry point (harbour.dll) - To produce Harbour.dll, to be just used from small pcode Harbour EXEs + To produce Harbour code, as DLLs, that may be used from other + programming languages applications (as VB, Delphi, C++, etc...) - > * maindllp.c Windows pcode DLL entry point and VM/RTL routing - To produce small pcode DLLs, to be used just from Harbour EXE apps. - maindllp.c is the entry point for the Harbour pcode DLLs. pcode DLLs - are quite small DLLs, that just contain pcode and/or C (using extend - api) functions. + * src/vm/maindllh.c Windows Harbour DLL entry point (harbour.dll) - mainwin.c is the entry point for Windows EXEs, not for DLLs. + To produce harbour.dll, to be just used from small pcode Harbour + executables. - You may use maindll.c, maindllh.c or maindllp.c based on - your needs. + * src/vm/maindllp.c Windows pcode DLL entry point and VM/RTL routing functions - If you are looking to build a Harbour.dll, then you must use - maindllh.c + To produce small pcode DLLs, to be used just from Harbour executable + apps. maindllp.c is the entry point for the Harbour pcode DLLs. pcode + DLLs are quite small DLLs, that just contain pcode and/or C (using + Extend API) functions. + +mainwin.c is the entry point for Windows executables, not for DLLs. + +You may use maindll.c, maindllh.c or maindllp.c based on your needs. + +If you are looking to build a harbour.dll, then you must use maindllh.c. diff --git a/package/harbour.spec b/package/harbour.spec index 3583e39d6e..756129794d 100644 --- a/package/harbour.spec +++ b/package/harbour.spec @@ -12,7 +12,7 @@ # https://www.gurulabs.com/media/files/courseware-samples/GURULABS-RPM-GUIDE-v1.0.PDF # --------------------------------------------------------------- -# TOFIX: Contrib packages with dependencies will be packaged +# FIXME: Contrib packages with dependencies will be packaged # into separate .rpms, but their headers will be packaged # into the core Harbour package. This f.e. makes it impossible # to detect a Harbour contrib package by checking the existence diff --git a/src/compiler/hbusage.c b/src/compiler/hbusage.c index 62e5c02e80..45e397a2a4 100644 --- a/src/compiler/hbusage.c +++ b/src/compiler/hbusage.c @@ -260,8 +260,11 @@ void hb_compPrintLogo( HB_COMP_DECL ) { char * szVer = hb_verHarbour(); + #define HB_VER_COMMIT_YEAR "2016" + #define HB_VER_ORIGIN_URL "http://harbour-project.org/" + hb_compOutStd( HB_COMP_PARAM, szVer ); hb_compOutStd( HB_COMP_PARAM, - "\nCopyright (c) 1999-2016, http://harbour-project.org/\n" ); + "\nCopyright (c) 1999-" HB_VER_COMMIT_YEAR ", " HB_VER_ORIGIN_URL "\n" ); hb_xfree( szVer ); } diff --git a/src/pp/hbpp.c b/src/pp/hbpp.c index 13f160bb7c..a7a544e93c 100644 --- a/src/pp/hbpp.c +++ b/src/pp/hbpp.c @@ -48,6 +48,8 @@ #include "hbapi.h" +#define _DEFAULT_ORIGIN_URL "http://harbour-project.org/" + int hb_verRevision( void ) { return 0; @@ -196,7 +198,7 @@ static void hb_pp_generateRules( FILE * fout, PHB_PP_STATE pState, const char * fprintf( fout, "/*\n" " * Built-in preprocessor rules.\n" " *\n" - " * Copyright 2006-2016 Przemyslaw Czerpak \n" + " * Copyright 2006-present Przemyslaw Czerpak \n" " *\n" " * This file is generated automatically by Harbour preprocessor\n" " * and is covered by the same license as Harbour PP\n" @@ -318,7 +320,10 @@ static char * hb_pp_escapeString( char * szString ) return szResult; } -static int hb_pp_generateVerInfo( char * szVerFile, int iRevID, char * szChangeLogID, char * szLastEntry ) +static int hb_pp_generateVerInfo( char * szVerFile, + int iRevID, + char * szChangeLogID, + char * szLastEntry ) { int iResult = 0; FILE * fout; @@ -339,7 +344,7 @@ static int hb_pp_generateVerInfo( char * szVerFile, int iRevID, char * szChangeL fprintf( fout, "/*\n" " * Version information and build time switches.\n" " *\n" - " * Copyright 2008-2016 Przemyslaw Czerpak \n" + " * Copyright 2008-present Przemyslaw Czerpak \n" " *\n" " * This file is generated automatically by Harbour preprocessor\n" " * and is covered by the same license as Harbour PP\n" @@ -786,7 +791,7 @@ int main( int argc, char * argv[] ) { printf( "Harbour Preprocessor %d.%d.%d%s\n", HB_VER_MAJOR, HB_VER_MINOR, HB_VER_RELEASE, HB_VER_STATUS ); - printf( "Copyright (c) 1999-2016, http://harbour-project.org/\n" ); + printf( "Copyright (c) 1999-present, %s\n", _DEFAULT_ORIGIN_URL ); } if( szFile ) diff --git a/src/rtl/memoedit.prg b/src/rtl/memoedit.prg index 87236c5056..6acedd8eab 100644 --- a/src/rtl/memoedit.prg +++ b/src/rtl/memoedit.prg @@ -264,7 +264,7 @@ METHOD HandleUserKey( nKey, nUdfReturn ) CLASS HBMemoEditor OTHERWISE - // TOFIX: Not CA-Cl*pper compatible, see teditor.prg + // FIXME: Not CA-Cl*pper compatible, see teditor.prg IF ( nUdfReturn >= 1 .AND. nUdfReturn <= 31 ) .OR. nUdfReturn == K_ALT_W ::super:Edit( nUdfReturn ) ELSE diff --git a/src/rtl/teditor.prg b/src/rtl/teditor.prg index 8504c702ac..2c9f89f4a3 100644 --- a/src/rtl/teditor.prg +++ b/src/rtl/teditor.prg @@ -55,7 +55,7 @@ #include "inkey.ch" #include "setcurs.ch" -/* TOFIX: Leave this here, until this code is cleaned off of RTEs */ +/* FIXME: Leave this here, until this code is cleaned off of RTEs */ #pragma linenumber=on #define _REFRESH_NONE 0 @@ -564,14 +564,14 @@ METHOD Edit( nPassedKey ) CLASS HBEditor // if it's a movement key ::MoveCursor() handles it CASE nKeyStd == K_CTRL_B .OR. nKeyStd == K_ALT_B - /* TOFIX: K_ALT_B is not Cl*pper compatible, added as workaround + /* FIXME: K_ALT_B is not Cl*pper compatible, added as workaround for missing in some GTs extended keycodes which are necessary to resolve K_CTRL_B and K_CTRL_RIGHT keycode conflict */ ::ReformParagraph() CASE nKeyStd == K_CTRL_W .OR. nKeyStd == K_ALT_W - /* TOFIX: K_ALT_W is not Cl*pper compatible, added as workaround + /* FIXME: K_ALT_W is not Cl*pper compatible, added as workaround for missing in some GTs extended keycodes which are necessary to resolve K_CTRL_W and K_CTRL_END keycode conflict */ diff --git a/src/rtl/tget.prg b/src/rtl/tget.prg index 06f55df9fc..bf134e0e1c 100644 --- a/src/rtl/tget.prg +++ b/src/rtl/tget.prg @@ -54,7 +54,7 @@ #include "inkey.ch" #include "button.ch" -/* TOFIX: ::Minus [vszakats] */ +/* FIXME: ::Minus [vszakats] */ #define GET_CLR_UNSELECTED 0 #define GET_CLR_ENHANCED 1 @@ -1208,7 +1208,7 @@ METHOD PutMask( xValue, lEdit ) CLASS Get IF lEdit .AND. ::cType == "N" .AND. ! Empty( cPicMask ) FOR nFor := 1 TO ::nMaxLen cChar := SubStr( cPicMask, nFor, 1 ) - IF cChar $ ",." .AND. SubStr( cBuffer, nFor, 1 ) $ ",." // " " TOFIX + IF cChar $ ",." .AND. SubStr( cBuffer, nFor, 1 ) $ ",." // " " FIXME IF "E" $ cPicFunc cChar := iif( cChar == ",", ".", "," ) ENDIF diff --git a/src/rtl/version.c b/src/rtl/version.c index 8f2d41dc1e..f004a8247e 100644 --- a/src/rtl/version.c +++ b/src/rtl/version.c @@ -129,7 +129,7 @@ HB_FUNC( HB_VERSION ) case HB_VERSION_BITWIDTH: hb_retni( ( int ) sizeof( void * ) * 8 ); break; case HB_VERSION_MT: hb_retl( hb_vmIsMt() ); break; - case HB_VERSION_SHARED: /* TOFIX: This only works when platforms has separate + case HB_VERSION_SHARED: /* FIXME: This only works when platforms has separate compilation pass for harbour dynlib build - it is 32-bit Windows. */ diff --git a/utils/hbi18n/hbi18n.prg b/utils/hbi18n/hbi18n.prg index 64a22a8a30..c6e9c3fe74 100644 --- a/utils/hbi18n/hbi18n.prg +++ b/utils/hbi18n/hbi18n.prg @@ -167,8 +167,10 @@ STATIC PROCEDURE Logo() OutStd( ; "Harbour i18n .pot/.hbl file manager " + HBRawVersion() + hb_eol() + ; - "Copyright (c) 2009-2016, Przemyslaw Czerpak" + hb_eol() + ; - "http://harbour-project.org/" + hb_eol() + ; + "Copyright (c) 2009-" + ; + "2016" + ", " + ; + "Przemyslaw Czerpak" + hb_eol() + ; + hb_Version( HB_VERSION_URL_BASE ) + hb_eol() + ; hb_eol() ) RETURN diff --git a/utils/hbmk2/hbmk2.prg b/utils/hbmk2/hbmk2.prg index 96d5adc808..bb3b87f988 100644 --- a/utils/hbmk2/hbmk2.prg +++ b/utils/hbmk2/hbmk2.prg @@ -1,5 +1,5 @@ /* - * Harbour Make (alias hbmk/hbmk2/hbrun) + * Harbour Make (alias mk/hbmk/hbmk2/hbrun) * * Copyright 1999-2013 Viktor Szakats (vszakats.net/harbour) * @@ -14,9 +14,9 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit - * their web site at https://www.gnu.org/). + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * (or visit their website at https://www.gnu.org/licenses/). * * License extensions: * - This source code must be kept and distributed as part @@ -29,8 +29,8 @@ * - Source code modifications shall always be made available * along with binaries. * - Help text and documentation is licensed under - * Creative Commons Attribution-ShareAlike 3.0: - * http://creativecommons.org/licenses/by-sa/3.0/ + * Creative Commons Attribution-ShareAlike 4.0 International: + * https://creativecommons.org/licenses/by-sa/4.0/ * */ @@ -57,11 +57,16 @@ #pragma -ko+ /* + Interesting C build overview from the author of a similar tool: + http://nethack4.org/blog/building-c.html + Program Library HOWTO: - http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/index.html + https://www.dwheeler.com/program-library/Program-Library-HOWTO.pdf Markdown syntax: - http://daringfireball.net/projects/markdown/syntax + https://daringfireball.net/projects/markdown/syntax + http://spec.commonmark.org/ (CommonMark) + https://johnmacfarlane.net/babelmark2/ Markdown to man page converter: https://github.com/sunaku/md2man @@ -70,15 +75,7 @@ Convert with: md2man man.md > man.1 (man.md should come out from this executable as output, so - the manual does not have to be updated in two disctinct places) - - Man page HOWTO: - http://www.schweikhardt.net/man_page_howto.html - Groff manual: - https://www.gnu.org/software/groff/manual/html_node/index.html - https://www.gnu.org/software/groff/manual/groff.pdf - Troff manual: - http://cm.bell-labs.com/sys/doc/troff.pdf + the manual does not have to be updated in two distinct places) */ /* needed for -u */ @@ -119,11 +116,11 @@ - Consider renaming the tool to simply 'hb'. - Turn off lib grouping by default - Avoid adding certain options and input files twice - - Clean up compiler autodetection and add those few feature only - found in GNU Make / global.mk, like *nix native autodetection, - autodetection of watcom cross-build setups, poccarm/pocc64 setups, + - Clean up compiler auto-detection and add those few feature only + found in GNU Make / global.mk, like *nix native auto-detection, + auto-detection of watcom cross-build setups, poccarm/pocc64 setups, clang, etc. - - Next gen compiler autodetection: + - Next gen compiler auto-detection: 1. Gather supported compilers by Harbour installation (look for lib//*[/] subdirs) Show error if nothing is found @@ -140,7 +137,7 @@ NOTES: - Priority list: HB_CCPATH, PATH, embedded. - Priority list: mingw, msvc, bcc, watcom, pocc, xcc - Compilers of native CPU target have higher priority. (extra) - On x64 Windows: msvc64, msvc, msvcia64, mingw64, mingw, ... + On x86_64 Windows: msvc64, msvc, msvcia64, mingw64, mingw, ... On x86 Windows: msvc, msvc64, msvcia64, mingw, mingw64, ... On IA64 Windows: msvcia64, msvc, msvc64, mingw, mingw64, ... */ @@ -187,7 +184,8 @@ EXTERNAL hbmk_KEYW #define _SELF_NAME_ "hbmk2" #define I_( x ) hb_UTF8ToStr( hb_i18n_gettext( x /*, _SELF_NAME_ */ ) ) -#define R_( x ) ( x ) /* marking for regexps */ +#define H_( x ) I_( x ) +#define R_( x ) ( x ) /* marking for regexps */ #define _TARG_PLAT 1 #define _TARG_COMP 2 @@ -198,11 +196,11 @@ EXTERNAL hbmk_KEYW #define _PAR_cFileName 2 #define _PAR_nLine 3 -#define _WARN_DEF 0 /* Do not set any explicit warning level */ +#define _WARN_DEF 0 /* Do not set any explicit warning level */ #define _WARN_MAX 1 -#define _WARN_YES 2 /* Default level in Harbour build */ -#define _WARN_LOW 3 /* Low level, used for 3rd party code in Harbour build */ -#define _WARN_NO 4 /* Explicitly disable warnings */ +#define _WARN_YES 2 /* Default level in Harbour build */ +#define _WARN_LOW 3 /* Low level, used for 3rd party code in Harbour build */ +#define _WARN_NO 4 /* Explicitly disable warnings */ #define _COMPR_OFF 0 #define _COMPR_DEF 1 @@ -216,9 +214,9 @@ EXTERNAL hbmk_KEYW #define _COMPDET_bBlock 1 #define _COMPDET_cCOMP 2 -#define _COMPDET_cCCPREFIX 3 /* optional */ -#define _COMPDET_cCCSUFFIX 4 /* optional */ -#define _COMPDET_cPLAT 5 /* optional */ +#define _COMPDET_cCCPREFIX 3 /* optional */ +#define _COMPDET_cCCSUFFIX 4 /* optional */ +#define _COMPDET_cPLAT 5 /* optional */ #define _COMPDETE_bBlock 1 #define _COMPDETE_cPLAT 2 @@ -239,9 +237,9 @@ EXTERNAL hbmk_KEYW #define _HBMODE_IS_XHB( n ) ( n <= _HBMODE_XHB ) /* Not implemented yet */ -#define _CONF_RELEASE 0 /* No debug */ -#define _CONF_DEBUG 1 /* Harbour level debug */ -#define _CONF_FULLDEBUG 2 /* Harbour + C level debug */ +#define _CONF_RELEASE 0 /* No debug */ +#define _CONF_DEBUG 1 /* Harbour level debug */ +#define _CONF_FULLDEBUG 2 /* Harbour + C level debug */ #define _ESC_NONE 0 #define _ESC_DBLQUOTE 1 @@ -320,7 +318,7 @@ EXTERNAL hbmk_KEYW #define HB_ISALPHA( c ) hb_asciiIsAlpha( c ) #define HB_ISFIRSTIDCHAR( c ) ( HB_ISALPHA( c ) .OR. ( c ) == "_" ) -#define HB_ISNEXTIDCHAR( c ) ( HB_ISFIRSTIDCHAR(c) .OR. hb_asciiIsDigit( c ) ) +#define HB_ISNEXTIDCHAR( c ) ( HB_ISFIRSTIDCHAR( c ) .OR. hb_asciiIsDigit( c ) ) #define LEFTEQUAL( l, r ) ( Left( l, Len( r ) ) == r ) @@ -528,7 +526,7 @@ EXTERNAL hbmk_KEYW #define _HBMK_MAX_ 158 -#define _HBMK_DEP_CTRL_MARKER ".control." /* must be an invalid path */ +#define _HBMK_DEP_CTRL_MARKER ".control." /* must be an invalid path */ #define _HBMKDEP_cName 1 #define _HBMKDEP_aPKG 2 @@ -711,7 +709,7 @@ STATIC PROCEDURE hbmk_local_entry( ... ) aArgsProc := {} FOR EACH tmp IN hb_AParams() DO CASE - CASE !( Left( tmp, 1 ) $ "-@" ) .AND. Lower( hb_FNameExt( tmp ) ) == ".hbp" + CASE ! Left( tmp, 1 ) $ "-@" .AND. Lower( hb_FNameExt( tmp ) ) == ".hbp" FOR EACH tmp1 IN FN_Expand( tmp, .T. ) AAdd( aArgsProc, tmp1 ) NEXT @@ -1767,8 +1765,8 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit cLIB_BASE_PCRE := "pcrepos" cLIB_BASE_ZLIB := "zlib" - /* NOTE: 'dbfnsx' was added to xhb on 2009-01-08. We chose to prioritize - on newer xhb versions, so for older versions, a dummy lib should + /* NOTE: 'dbfnsx' was added to xHarbour on 2009-01-08. We chose to prioritize + on newer xHarbour versions, so for older versions, a dummy lib should be created. [vszakats] */ ENDIF @@ -2095,7 +2093,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit #endif ENDIF - /* Autodetect compiler */ + /* Auto-detect compiler */ cPath_CompC := NIL @@ -2178,7 +2176,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit ENDIF IF ! Empty( hbmk[ _HBMK_cCOMP ] ) IF hbmk[ _HBMK_lInfo ] - _hbmk_OutStd( hbmk, hb_StrFormat( I_( "Autodetected C compiler: %1$s" ), hbmk[ _HBMK_cCOMP ] ) ) + _hbmk_OutStd( hbmk, hb_StrFormat( I_( "Auto-detected C compiler: %1$s" ), hbmk[ _HBMK_cCOMP ] ) ) ENDIF ELSE IF Empty( aCOMPDET ) @@ -2382,7 +2380,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit hbmk[ _HBMK_lSTATICFULL ] := .F. ENDIF - /* Process command line */ + /* Process command-line */ hbmk_init_stage2( hbmk ) @@ -2459,7 +2457,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit /* Process automatic control files. */ HBC_ProcessAuto( hbmk ) - /* Process command line (2nd pass) */ + /* Process command-line (2nd pass) */ FOR EACH aParam IN aParams cParam := ArchCompFilter( hbmk, aParam[ _PAR_cParam ], aParam[ _PAR_cFileName ] ) @@ -2494,7 +2492,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit cParamL == "-blinker" .OR. ; cParamL == "-exospace" - /* Command line option were already processed in the first pass, ignore those. */ + /* Command-line option were already processed in the first pass, ignore those. */ IF ! Empty( aParam[ _PAR_cFileName ] ) _hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Ignored option valid only on command-line: %1$s" ), ParamToString( aParam ) ) ) @@ -3700,7 +3698,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit ENDIF #endif - /* Force MT mode off in 1.0.x and xhb/dos compatibility modes. */ + /* Force MT mode off in 1.0.x and xHarbour/MS-DOS compatibility modes. */ IF hbmk[ _HBMK_nHBMODE ] == _HBMODE_HB10 .OR. ; ( _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) .AND. hbmk[ _HBMK_cPLAT ] == "dos" ) hbmk[ _HBMK_lMT ] := .F. @@ -4054,7 +4052,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit AAdd( hbmk[ _HBMK_aOPTL ], "-mrtp" ) AAdd( hbmk[ _HBMK_aOPTD ], "-mrtp" ) AAdd( hbmk[ _HBMK_aOPTC ], "-fno-strict-aliasing" ) - /* TOFIX: Potential collision with -cpp=/-c= options */ + /* FIXME: Potential collision with -cpp=/-c= options */ AAdd( hbmk[ _HBMK_aOPTC ], "-D_C99" ) AAdd( hbmk[ _HBMK_aOPTC ], "-D_HAS_C9X" ) ENDIF @@ -4136,7 +4134,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit ENDIF IF hbmk[ _HBMK_cPLAT ] == "vxworks" IF hbmk[ _HBMK_lSHARED ] - AAdd( hbmk[ _HBMK_aOPTL ], "-shared" ) /* TOFIX: no entry point */ + AAdd( hbmk[ _HBMK_aOPTL ], "-shared" ) /* FIXME: no entry point */ ENDIF ENDIF IF hbmk[ _HBMK_lSTRIP ] @@ -4241,7 +4239,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit ENDIF IF IsGTRequested( hbmk, "gtcrs" ) - /* TOFIX: Sometimes 'ncur194' is needed. */ + /* FIXME: Sometimes 'ncur194' is needed. */ AAdd( l_aLIBSYS, iif( HBMK_ISPLAT( "sunos|bsd|minix" ), "curses", "ncurses" ) ) ENDIF IF IsGTRequested( hbmk, "gtsln" ) @@ -4470,7 +4468,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit l_aLIBSYS := ArrayAJoin( { l_aLIBSYS, l_aLIBSYSCORE, l_aLIBSYSMISC } ) DO CASE CASE _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) - /* NOTE: Newer xhb versions use "-x.y.z" version numbers. */ + /* NOTE: Newer xHarbour versions use "-x.y.z" version numbers. */ l_aLIBSHARED := { iif( hbmk[ _HBMK_lMT ], "xharbourmt", "xharbour" ) } OTHERWISE l_aLIBSHARED := { cHarbourDyn + cDL_Version_Alter + hbmk_DYNSUFFIX( hbmk ) } @@ -4890,7 +4888,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit l_aLIBSHARED := { cHarbourDyn + cLibExt } IF hbmk[ _HBMK_lSHARED ] - /* TOFIX: This line is plain guessing. */ + /* FIXME: This line is plain guessing. */ AAdd( hbmk[ _HBMK_aOPTL ], "FILE " + hb_FNameExtSet( hbmk[ _HBMK_cHB_INSTALL_LIB ] + hb_ps() + iif( hbmk[ _HBMK_lGUI ], "hbmainstd", "hbmainstd" ), cLibExt ) ) ENDIF CASE hbmk[ _HBMK_cPLAT ] == "dos" @@ -4976,7 +4974,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit AAdd( hbmk[ _HBMK_aOPTC ], "-DUNICODE" ) ENDIF IF _HBMODE_IS_XHB( hbmk[ _HBMK_nHBMODE ] ) - /* Adding weird hack for xhb to make it possible to force ST C mode. */ + /* Adding weird hack for xHarbour to make it possible to force ST C mode. */ IF AScan( hbmk[ _HBMK_aOPTC ], {| tmp | tmp == "-tW" } ) == 0 AAdd( hbmk[ _HBMK_aOPTC ], "-tWM" ) ELSE @@ -5483,7 +5481,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit ENDIF IF IsGTRequested( hbmk, "gtcrs" ) - /* TOFIX: Sometimes 'ncur194' is needed. */ + /* FIXME: Sometimes 'ncur194' is needed. */ AAdd( l_aLIBSYS, iif( hbmk[ _HBMK_cPLAT ] == "sunos", "curses", "ncurses" ) ) ENDIF IF IsGTRequested( hbmk, "gtsln" ) @@ -5562,7 +5560,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit AAdd( hbmk[ _HBMK_aOPTD ], "-Wl, -Xdynamic" ) ENDIF IF hbmk[ _HBMK_lSHARED ] - /* TOFIX: .so is referred by its full link-time search path, + /* FIXME: .so is referred by its full link-time search path, there is even a backslash present in the dir formed by the linker */ AAdd( hbmk[ _HBMK_aOPTL ], "-Wl, -Xdynamic" ) @@ -6462,7 +6460,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit /* Process build-time configuration */ - /* TOFIX: This does not work well when doing cross-platform + /* FIXME: This does not work well when doing cross-platform build f.e. on a 32-bit *nix system to 64-bit target where the 64-bit target does not happen to provide 64-bit flavor of gpm lib. This is the case when @@ -7557,7 +7555,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit ENDIF #if defined( __PLATFORM__DARWIN ) IF hbmk[ _HBMK_lGUI ] - /* TOFIX: Find a way to pass arbitrary options to an .app. */ + /* FIXME: Find a way to pass arbitrary options to an .app. */ l_aOPTRUN := {} cCommand += ".app" ENDIF @@ -8499,95 +8497,95 @@ STATIC FUNCTION s_getIncludedFiles( hbmk, cFile, cParentDir, lCMode ) IF t_hExclStd == NIL t_hExclStd := { ; - "assert.h" => NIL, ; /* Standard C */ - "ctype.h" => NIL, ; - "errno.h" => NIL, ; - "float.h" => NIL, ; - "limits.h" => NIL, ; - "locale.h" => NIL, ; - "math.h" => NIL, ; - "setjmp.h" => NIL, ; - "signal.h" => NIL, ; - "stdarg.h" => NIL, ; - "stddef.h" => NIL, ; - "stdio.h" => NIL, ; - "stdlib.h" => NIL, ; - "string.h" => NIL, ; - "time.h" => NIL, ; - "iso646.h" => NIL, ; /* ISO C NA1 */ - "wchar.h" => NIL, ; - "wctype.h" => NIL, ; - "complex.h" => NIL, ; /* ISO C C99 */ - "fenv.h" => NIL, ; - "inttypes.h" => NIL, ; - "stdbool.h" => NIL, ; - "stdint.h" => NIL, ; - "tgmath.h" => NIL, ; - "unistd.h" => NIL, ; /* Standard C POSIX */ - "aio.h" => NIL, ; - "arpa/inet.h" => NIL, ; - "cpio.h" => NIL, ; - "dirent.h" => NIL, ; - "dlfcn.h" => NIL, ; - "fcntl.h" => NIL, ; - "fmtmsg.h" => NIL, ; - "fnmatch.h" => NIL, ; - "ftw.h" => NIL, ; - "glob.h" => NIL, ; - "grp.h" => NIL, ; - "iconv.h" => NIL, ; - "langinfo.h" => NIL, ; - "libgen.h" => NIL, ; - "monetary.h" => NIL, ; - "mqueue.h" => NIL, ; - "ndbm.h" => NIL, ; - "net/if.h" => NIL, ; - "netdb.h" => NIL, ; - "netinet/in.h" => NIL, ; - "netinet/tcp.h" => NIL, ; - "nl_types.h" => NIL, ; - "poll.h" => NIL, ; - "pthread.h" => NIL, ; - "pwd.h" => NIL, ; - "regex.h" => NIL, ; - "sched.h" => NIL, ; - "search.h" => NIL, ; - "semaphore.h" => NIL, ; - "spawn.h" => NIL, ; - "strings.h" => NIL, ; - "stropts.h" => NIL, ; - "sys/ipc.h" => NIL, ; - "sys/mman.h" => NIL, ; - "sys/msg.h" => NIL, ; - "sys/resource.h" => NIL, ; - "sys/select.h" => NIL, ; - "sys/sem.h" => NIL, ; - "sys/shm.h" => NIL, ; - "sys/socket.h" => NIL, ; - "sys/stat.h" => NIL, ; - "sys/statvfs.h" => NIL, ; - "sys/time.h" => NIL, ; - "sys/times.h" => NIL, ; - "sys/types.h" => NIL, ; - "sys/uio.h" => NIL, ; - "sys/un.h" => NIL, ; - "sys/utsname.h" => NIL, ; - "sys/wait.h" => NIL, ; - "syslog.h" => NIL, ; - "tar.h" => NIL, ; - "termios.h" => NIL, ; - "trace.h" => NIL, ; - "ulimit.h" => NIL, ; - "unistd.h" => NIL, ; - "utime.h" => NIL, ; - "utmpx.h" => NIL, ; - "wordexp.h" => NIL, ; - "windows.h" => NIL, ; /* OS (win) */ - "winspool.h" => NIL, ; - "shellapi.h" => NIL, ; - "ole2.h" => NIL, ; - "dos.h" => NIL, ; /* OS (dos) */ - "os2.h" => NIL } /* OS (os2) */ + "assert.h" => , ; /* Standard C */ + "ctype.h" => , ; + "errno.h" => , ; + "float.h" => , ; + "limits.h" => , ; + "locale.h" => , ; + "math.h" => , ; + "setjmp.h" => , ; + "signal.h" => , ; + "stdarg.h" => , ; + "stddef.h" => , ; + "stdio.h" => , ; + "stdlib.h" => , ; + "string.h" => , ; + "time.h" => , ; + "iso646.h" => , ; /* ISO C NA1 */ + "wchar.h" => , ; + "wctype.h" => , ; + "complex.h" => , ; /* ISO C C99 */ + "fenv.h" => , ; + "inttypes.h" => , ; + "stdbool.h" => , ; + "stdint.h" => , ; + "tgmath.h" => , ; + "unistd.h" => , ; /* Standard C POSIX */ + "aio.h" => , ; + "arpa/inet.h" => , ; + "cpio.h" => , ; + "dirent.h" => , ; + "dlfcn.h" => , ; + "fcntl.h" => , ; + "fmtmsg.h" => , ; + "fnmatch.h" => , ; + "ftw.h" => , ; + "glob.h" => , ; + "grp.h" => , ; + "iconv.h" => , ; + "langinfo.h" => , ; + "libgen.h" => , ; + "monetary.h" => , ; + "mqueue.h" => , ; + "ndbm.h" => , ; + "net/if.h" => , ; + "netdb.h" => , ; + "netinet/in.h" => , ; + "netinet/tcp.h" => , ; + "nl_types.h" => , ; + "poll.h" => , ; + "pthread.h" => , ; + "pwd.h" => , ; + "regex.h" => , ; + "sched.h" => , ; + "search.h" => , ; + "semaphore.h" => , ; + "spawn.h" => , ; + "strings.h" => , ; + "stropts.h" => , ; + "sys/ipc.h" => , ; + "sys/mman.h" => , ; + "sys/msg.h" => , ; + "sys/resource.h" => , ; + "sys/select.h" => , ; + "sys/sem.h" => , ; + "sys/shm.h" => , ; + "sys/socket.h" => , ; + "sys/stat.h" => , ; + "sys/statvfs.h" => , ; + "sys/time.h" => , ; + "sys/times.h" => , ; + "sys/types.h" => , ; + "sys/uio.h" => , ; + "sys/un.h" => , ; + "sys/utsname.h" => , ; + "sys/wait.h" => , ; + "syslog.h" => , ; + "tar.h" => , ; + "termios.h" => , ; + "trace.h" => , ; + "ulimit.h" => , ; + "unistd.h" => , ; + "utime.h" => , ; + "utmpx.h" => , ; + "wordexp.h" => , ; + "windows.h" => , ; /* OS (win) */ + "winspool.h" => , ; + "shellapi.h" => , ; + "ole2.h" => , ; + "dos.h" => , ; /* OS (dos) */ + "os2.h" => } /* OS (os2) */ ENDIF IF StrTran( Lower( cHeader ), "\", "/" ) $ t_hExclStd @@ -12016,29 +12014,29 @@ STATIC PROCEDURE rtlnk_libtrans( aLibList ) STATIC s_hTrans := { ; "CT" => "hbct", ; "CTP" => "hbct", ; - "CLASSY" => NIL, ; - "CSYINSP" => NIL, ; - "SIX3" => NIL, ; - "NOMACH6" => NIL, ; - "BLXRATEX" => NIL, ; - "BLXCLP50" => NIL, ; - "BLXCLP52" => NIL, ; - "BLXCLP53" => NIL, ; - "EXOSPACE" => NIL, ; - "CLIPPER" => NIL, ; - "EXTEND" => NIL, ; - "TERMINAL" => NIL, ; - "PCBIOS" => NIL, ; - "ANSITERM" => NIL, ; - "DBFBLOB" => NIL, ; - "DBFMEMO" => NIL, ; - "DBFNTX" => NIL, ; - "DBFCDX" => NIL, ; - "_DBFCDX" => NIL, ; - "CLD" => NIL, ; - "CLDR" => NIL, ; - "LLIBCE" => NIL, ; - "LLIBCA" => NIL } + "CLASSY" => , ; + "CSYINSP" => , ; + "SIX3" => , ; + "NOMACH6" => , ; + "BLXRATEX" => , ; + "BLXCLP50" => , ; + "BLXCLP52" => , ; + "BLXCLP53" => , ; + "EXOSPACE" => , ; + "CLIPPER" => , ; + "EXTEND" => , ; + "TERMINAL" => , ; + "PCBIOS" => , ; + "ANSITERM" => , ; + "DBFBLOB" => , ; + "DBFMEMO" => , ; + "DBFNTX" => , ; + "DBFCDX" => , ; + "_DBFCDX" => , ; + "CLD" => , ; + "CLDR" => , ; + "LLIBCE" => , ; + "LLIBCA" => } LOCAL cLib FOR EACH cLib IN aLibList DESCEND @@ -12058,27 +12056,27 @@ STATIC PROCEDURE rtlnk_libtrans( aLibList ) STATIC PROCEDURE rtlnk_filetrans( aFileList ) STATIC s_hTrans := { ; - "CTUS" => NIL, ; - "CTUSP" => NIL, ; - "CTINT" => NIL, ; - "CTINTP" => NIL, ; - "__WAIT" => NIL, ; - "__WAIT_4" => NIL, ; - "__WAIT_B" => NIL, ; - "BLXCLP50" => NIL, ; - "BLXCLP52" => NIL, ; - "BLXCLP53" => NIL, ; - "BLDCLP50" => NIL, ; - "BLDCLP52" => NIL, ; - "BLDCLP53" => NIL, ; - "SIXCDX" => NIL, ; - "SIXNSX" => NIL, ; - "SIXNTX" => NIL, ; - "DBT" => NIL, ; - "FPT" => NIL, ; - "SMT" => NIL, ; - "NOMEMO" => NIL, ; - "CLD.LIB" => NIL } + "CTUS" => , ; + "CTUSP" => , ; + "CTINT" => , ; + "CTINTP" => , ; + "__WAIT" => , ; + "__WAIT_4" => , ; + "__WAIT_B" => , ; + "BLXCLP50" => , ; + "BLXCLP52" => , ; + "BLXCLP53" => , ; + "BLDCLP50" => , ; + "BLDCLP52" => , ; + "BLDCLP53" => , ; + "SIXCDX" => , ; + "SIXNSX" => , ; + "SIXNTX" => , ; + "DBT" => , ; + "FPT" => , ; + "SMT" => , ; + "NOMEMO" => , ; + "CLD.LIB" => } LOCAL cFile FOR EACH cFile IN aFileList DESCEND @@ -12953,7 +12951,7 @@ STATIC FUNCTION hbmk_CPU( hbmk ) ( hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] == "icc" ) RETURN "x86" CASE HBMK_ISCOMP( "gcc|icc|clang|sunpro|diab|pcc|tcc" ) - /* TOFIX: This is not necessarily correct, since these inherit the + /* FIXME: This is not necessarily correct, since these inherit the default CPU architecture from OS default, by and large, and targets can be overridden using user options. */ RETURN "x86" @@ -13343,7 +13341,7 @@ STATIC FUNCTION GetListOfFunctionsKnown( hbmk, lIncludeCore ) hb_HCaseMatch( hAll, .F. ) FOR EACH aFile IN Directory( hb_DirBase() + "*.hbr" ) - /* TOFIX: To handle function names present in multiple containers */ + /* FIXME: To handle function names present in multiple containers */ hb_HMerge( hAll, hb_Deserialize( hb_ZUncompress( hb_MemoRead( hb_DirBase() + aFile[ F_NAME ] ) ) ) ) NEXT @@ -14120,7 +14118,7 @@ STATIC PROCEDURE __hbshell_ext_init( aExtension ) RETURN /* NOTE: Requires -shared mode build */ -/* TOFIX: Load components from detected Harbour dir layout */ +/* FIXME: Load components from detected Harbour dir layout */ /* TODO: Load .hbc file (handle -stop command in it) and extend header search path accordingly */ FUNCTION hbshell_ext_load( cName ) @@ -14213,11 +14211,7 @@ FUNCTION hbshell_ext_get_list() STATIC FUNCTION __plugin_ext() #pragma __cstream | RETURN %s -/* - * extension manager plugin - * - * Copyright 2012-2013 Viktor Szakats (vszakats.net/harbour) - */ +/* Extension manager plugin */ FUNCTION __hbshell_plugin() RETURN { ; @@ -14874,59 +14868,59 @@ STATIC FUNCTION __hbshell_win_reg_app( lRegister, lAllUser, cAppPath ) a full-screen CUI ("interactive") app */ STATIC FUNCTION __hbshell_detect_CUI_extern_positive() RETURN { ; - "COL" => NIL, ; - "DISPBEGIN" => NIL, ; - "DISPBOX" => NIL, ; - "DISPCOUNT" => NIL, ; - "DISPEND" => NIL, ; - "DISPOUT" => NIL, ; - "DISPOUTAT" => NIL, ; - "HB_CLRAREA" => NIL, ; - "HB_DISPBOX" => NIL, ; - "HB_DISPOUTAT" => NIL, ; - "HB_DISPOUTATBOX" => NIL, ; - "HB_KEYCLEAR" => NIL, ; - "HB_KEYINS" => NIL, ; - "HB_KEYLAST" => NIL, ; - "HB_KEYNEXT" => NIL, ; - "HB_KEYPUT" => NIL, ; - "HB_KEYSETLAST" => NIL, ; - "HB_KEYSTD" => NIL, ; - "HB_MGETBOUNDS" => NIL, ; - "HB_MMIDDLEDOWN" => NIL, ; - "HB_SCRMAXCOL" => NIL, ; - "HB_SCRMAXROW" => NIL, ; - "HB_SCROLL" => NIL, ; - "HB_SHADOW" => NIL, ; - "INKEY" => NIL, ; - "LASTKEY" => NIL, ; - "MAXCOL" => NIL, ; - "MAXROW" => NIL, ; - "MCOL" => NIL, ; - "MDBLCLK" => NIL, ; - "MHIDE" => NIL, ; - "MLEFTDOWN" => NIL, ; - "MPRESENT" => NIL, ; - "MRESTSTATE" => NIL, ; - "MRIGHTDOWN" => NIL, ; - "MROW" => NIL, ; - "MSAVESTATE" => NIL, ; - "MSETBOUNDS" => NIL, ; - "MSETCURSOR" => NIL, ; - "MSETPOS" => NIL, ; - "MSHOW" => NIL, ; - "NEXTKEY" => NIL, ; - "RESTSCREEN" => NIL, ; - "ROW" => NIL, ; - "SAVESCREEN" => NIL, ; - "SCROLL" => NIL, ; - "SETCOLOR" => NIL, ; - "SETCURSOR" => NIL, ; - "SETMODE" => NIL, ; - "SETPOS" => NIL, ; - "SETPOSBS" => NIL, ; - "__ACCEPT" => NIL, ; - "__WAIT" => NIL } + "COL" => , ; + "DISPBEGIN" => , ; + "DISPBOX" => , ; + "DISPCOUNT" => , ; + "DISPEND" => , ; + "DISPOUT" => , ; + "DISPOUTAT" => , ; + "HB_CLRAREA" => , ; + "HB_DISPBOX" => , ; + "HB_DISPOUTAT" => , ; + "HB_DISPOUTATBOX" => , ; + "HB_KEYCLEAR" => , ; + "HB_KEYINS" => , ; + "HB_KEYLAST" => , ; + "HB_KEYNEXT" => , ; + "HB_KEYPUT" => , ; + "HB_KEYSETLAST" => , ; + "HB_KEYSTD" => , ; + "HB_MGETBOUNDS" => , ; + "HB_MMIDDLEDOWN" => , ; + "HB_SCRMAXCOL" => , ; + "HB_SCRMAXROW" => , ; + "HB_SCROLL" => , ; + "HB_SHADOW" => , ; + "INKEY" => , ; + "LASTKEY" => , ; + "MAXCOL" => , ; + "MAXROW" => , ; + "MCOL" => , ; + "MDBLCLK" => , ; + "MHIDE" => , ; + "MLEFTDOWN" => , ; + "MPRESENT" => , ; + "MRESTSTATE" => , ; + "MRIGHTDOWN" => , ; + "MROW" => , ; + "MSAVESTATE" => , ; + "MSETBOUNDS" => , ; + "MSETCURSOR" => , ; + "MSETPOS" => , ; + "MSHOW" => , ; + "NEXTKEY" => , ; + "RESTSCREEN" => , ; + "ROW" => , ; + "SAVESCREEN" => , ; + "SCROLL" => , ; + "SETCOLOR" => , ; + "SETCURSOR" => , ; + "SETMODE" => , ; + "SETPOS" => , ; + "SETPOSBS" => , ; + "__ACCEPT" => , ; + "__WAIT" => } STATIC FUNCTION __hbshell_detect_CUI_extern_negative() RETURN { ; @@ -15644,15 +15638,21 @@ STATIC PROCEDURE ShowHeader( hbmk ) LOCAL cTrsText LOCAL cTrsTextI + LOCAL cToYear := I_( "present" ) + IF hbmk[ _HBMK_lShellMode ] cText := ; "Harbour Shell / Script Runner " + HBRawVersion() + e"\n" + ; - "Copyright (c) 2007-2016, Viktor Szakats" + e"\n" + ; + "Copyright (c) 2007-" + ; + cToYear + ", " + ; + "Viktor Szakats" + e"\n" + ; "Copyright (c) 2003-2007, Przemysław Czerpak" + e"\n" ELSE cText := ; "Harbour Make (" + _SELF_NAME_ + ") " + HBRawVersion() + e"\n" + ; - "Copyright (c) 1999-2016, Viktor Szakats" + e"\n" + "Copyright (c) 1999-" + ; + cToYear + ", " + ; + "Viktor Szakats" + e"\n" ENDIF IF hbmk[ _HBMK_lMarkdown ] @@ -15666,7 +15666,7 @@ STATIC PROCEDURE ShowHeader( hbmk ) ENDIF Eval( hbmk[ _HBMK_bOut ], cText ) - cText := "http://harbour-project.org/" + cText := hb_Version( HB_VERSION_URL_BASE ) IF hbmk[ _HBMK_lMarkdown ] cText := ToMarkdown( cText, "url" ) + ToMarkdown( e"\n" ) ELSE @@ -15677,7 +15677,7 @@ STATIC PROCEDURE ShowHeader( hbmk ) IF !( Lower( Left( hbmk[ _HBMK_cUILNG ], 2 ) ) == "en" ) cTrsText := hb_i18n_gettext_noop( "Translation (%1$s): (add your name here)" /*, _SELF_NAME_ */ ) cTrsTextI := hb_UTF8ToStr( hb_i18n_gettext( cTrsText ) ) - IF !( cTrsText == cTrsTextI ) .AND. ! Empty( cTrsTextI ) + IF ! cTrsText == cTrsTextI .AND. ! Empty( cTrsTextI ) cText := hb_StrFormat( cTrsTextI, hbmk[ _HBMK_cUILNG ] ) + e"\n" IF hbmk[ _HBMK_lMarkdown ] cText := ToMarkdown( cText ) @@ -15709,9 +15709,9 @@ STATIC FUNCTION ExitCodeStr( nResult ) SWITCH nResult CASE _EXIT_OK ; RETURN I_( "no error" ) - CASE _EXIT_UNKNPLAT ; RETURN I_( "unknown platform" ) - CASE _EXIT_UNKNCOMP ; RETURN I_( "unknown compiler" ) - CASE _EXIT_FAILHBDETECT ; RETURN I_( "failed Harbour detection" ) + CASE _EXIT_UNKNPLAT ; RETURN I_( "unrecognized platform" ) + CASE _EXIT_UNKNCOMP ; RETURN I_( "unrecognized compiler" ) + CASE _EXIT_FAILHBDETECT ; RETURN H_( "failed Harbour detection" ) CASE _EXIT_STUBCREATE ; RETURN I_( "failed stub creation" ) CASE _EXIT_PHASE_COMP ; RETURN I_( "failed in compilation (Harbour, C compiler, Resource compiler)" ) CASE _EXIT_PHASE_ASSEMBLY ; RETURN I_( "failed in final assembly (linker or library manager)" ) @@ -15724,7 +15724,7 @@ STATIC FUNCTION ExitCodeStr( nResult ) CASE _EXIT_STOP ; RETURN I_( "stop requested" ) ENDSWITCH - RETURN hb_StrFormat( I_( "unknown: %1$d" ), nResult ) + RETURN hb_StrFormat( I_( "unrecognized: %1$d" ), nResult ) STATIC PROCEDURE ShowHelp( hbmk, lMore, lLong ) @@ -15741,11 +15741,11 @@ STATIC PROCEDURE ShowHelp( hbmk, lMore, lLong ) " " + hb_StrFormat( I_( "%1$s |