Commit Graph

18402 Commits

Author SHA1 Message Date
Viktor Szakats
175f05df56 2013-02-26 14:41 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    + do not share plugin variables (hbmk[ "vars" ])
      between different plugins. It avoids potentially nasty
      issues with plugins stepping onto each other's toes.
      [INCOMPATIBLE - though it's unlikely anyone is
      affected. If you must communicate between plugins,
      use public function or variable.]
    + clarified in help that -icon might not work on all
      platforms/compilers and detailed Windows implementation
      (in particular it's disabled on bcc/bcc64 and on
      mingw it won't work when a manual .rc is specified,
      also on some (old?) msvc versions. Consult your
      C compiler's Windows resource handling limitations.)
    + clarified in help the syntax of filters
    + clarified in help that .hbp references are handled as
      sub-projects
    + clarification to command substitution macro
    + clarification to filter syntax note
    ! strict parameter checks in all public shell APIs to
      avoid RTEs inside hbmk2 due to faulty API usage by scripts

  * utils/hbmk2/examples/plug_bis.hb
    * updated according to latest plugin changes

  * include/harbour.hbx
  * include/hbapi.h
  * src/vm/debug.c
  * src/vm/hvm.c
    + added internal function hb_vmInternalsEnabled()
      to query whether potentially sensitive internals
      are allowed to be accessed by public Harbour APIs
    + added .prg level function __vmNoInternals()
      to disable potentially sensitive internals
      by default accessible via public APIs.
      Intentionally a one-way function: once disabled,
      it cannot be reenabled from .prg or .c level.
      NOTE: It will break Harbour debug functionality,
      so it'd will be useful for hbrun scripts and
      release (non-debug) builds.
    + modified internal __dbg*() functions to return
      dummy values when internals are disabled via
      __vmNoInternals() functions. While the function
      return types are kept, apps relying on their
      specific values and certain relationships between
      them might break.
    ; NOTE: In the future, some more internals might
      be protected by this setting (f.e. low-level
      object and class functions and some API from
      hbdebug lib)
    ; Please review

  * tests/debugtst.prg
    ! fixed to compile warning-free without lowering
      warning level
    ! fixed to run RTE-free with internals disabled

  * bin/3rdpatch.hb
  * bin/commit.hb
  * config/postinst.hb
  * contrib/make.hb
  * contrib/hbtest/hbtest.ch
  * src/debug/*.prg
  * src/rtl/tclass.prg
  * utils/hbmk2/examples/plug_bis.hb
  * utils/hbmk2/examples/plug_tpl.hb
    * 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)

  * src/rtl/hbi18n2.prg
  * contrib/xhb/tfile.prg
    * use F_ERROR instead of -1 literal

  * contrib/xhb/xhbtedit.prg
    ! replaced dirty xhb extension with std SubStr() call
      Reported by Tony Quick
      [pls report such bugs on Harbour devl list]

  * contrib/hbodbc/todbc.prg
    ! Don't continue ::Open() when SQLExecDir() have error
      Fix from xhb via Vicente Guerra, with cleanups.

  * tests/multifnc/multifnc.hbp
    + added comment
    + support for watcom

  * tests/multifnc/t1.prg
    ! missing file ending EOL

  * tests/*.prg
  * extras/gtwvw/tests/wvwtest9.prg
    * formatting
2013-02-26 13:44:10 +00:00
Viktor Szakats
acbd419e9e 2013-02-25 17:56 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + documented hbmk2 plugin API calls
    + documented hbmk2 plugin variables
    + added license to the end of -longhelp[md] output
    ! fixed to do strict parameter checking in all
      public plugin API calls (where missing) to avoid
      RTEs inside hbmk2 code due to faulty plugin code
    + hbmk_FuncNameEncode() added with same functionality
      as hbmk_FNameToSymbol()
    - hbmk_FNameToSymbol() deprecated. Will disappear
      after HB_LEGACY_LEVEL4.
      INCOMPATIBLE. Change hbmk_FNameToSymbol() to hbmk_FuncNameEncode().
    * changed parameters of hbmk_FNameEscape().
      New calling convention requires the hbmk context to be passed
      as first parameter and it doesn't support the last two
      numeric values anymore. Will accept old calling convention
      till HB_LEGACY_LEVEL4 (untested though).
      INCOMPATIBLE. Change these:
         hbmk_FNameEscape( cFileName, hbmk[ "nCmd_Esc" ], hbmk[ "nCmd_FNF" ] )
      to this:
         hbmk_FNameEscape( hbmk, cFileName )
    * following hbmk2 plugin variables are deprecated and will
      disappear after HB_LEGACY_LEVEL4:
         "nCmd_Esc", "nScr_Esc", "nCmd_FNF", "nScr_FNF"
    + added new hbmk2 plugin variable:
         "apiver"
      it will return an integer with the plugin API
      compatibility level. Currently 2, will change to 3
      after HB_LEGACY_LEVEL4. For compatibility, use this
      to retrieve it in plugins:
         apiver := iif( "apiver" $ hbmk, hbmk[ "apiver" ], 1 )
    ! fixed to split certain long help section headers
2013-02-25 17:11:53 +00:00
Viktor Szakats
19c32d7afe 2013-02-25 12:51 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    + added 'description' section to help (visible in -longhelp[md])
    + moved examples (and one note) from README.txt to hbmk2 help
    ! grammar cleanup and typos in help
    * formatting

  - website/license.html
  * website/*.html
    ! deleted another obsolete copy of the license and replaced
      with links directly to COPYING.txt in repository

  * contrib/hbsqlit3/hbsqlit3.ch
  * contrib/hbsqlit3/hdbc.prg
  * contrib/xhb/cgi.ch
  * contrib/xhb/*.prg
  * extras/gtwvw/docs/gtwvw.txt
  * extras/gtwvw/*.c
    ! fixed obsolete license references

  * tests/inherit.prg
  * tests/stripem.prg
  * contrib/xhb/*.prg
    * use hb_default(), misc cleanups, html closing tags

  * config/aix/libs.mk
  * doc/xhb-diff.txt
  * src/common/hbfsapi.c
  * src/rtl/gtcrs/hb-charmap.def
  * src/rtl/strcase.c
  * website/download.htm
    ! deleted line ending spaces

  * website/download.htm
  * doc/gmake.txt
  * doc/tracing.txt
  * utils/hbmk2/Makefile
    * cleanups
2013-02-25 11:53:39 +00:00
Tamas Tevesz
a02c34a62a 2013-02-25 11:16 UTC+0100 Tamas TEVESZ (ice extreme.hu)
- config/minix/ack.mk
  * config/global.mk
  * config/minix/clang.mk
  * config/minix/gcc.mk
  * src/rtl/filesys.c
  * src/vm/dynlibhb.c
  * utils/hbmk2/hbmk2.prg
  * contrib/hbssl/hbssl.hbm
  * README.txt
    * Update for Minix 3.2.1
    - ack is gone
    + build with shared library support
2013-02-25 11:17:04 +00:00
Viktor Szakats
5f2e6ad585 2013-02-24 13:37 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + documented the way to exclude libraries from linking
      (see '-l' option and 'libs=' directive)
    + documented '-hbcontainer' target type (no longer
      experimental)
    * '-hbimplib' option marked as Windows-only in help
    * '-hbimplib' option moved to long help
    * '-mt/-st' option moved to top of long help (to keep main
      help screen short)

  * doc/tracing.txt
    - deleted obsolete options from examples
2013-02-24 12:42:51 +00:00
Viktor Szakats
946d494e0c 2013-02-23 18:05 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + added HBSHELL_CLIPPER() shell/script API call, which
      configures the environment to be Clipper (non-Unicode)
      compatible. Identical to the default environment of
      compiled .prg apps. It's not recommended for new
      scripts, but it may be useful to run legacy code
      as script.
    + added '-license'/'--license' option to display the
      license of hbmk2
    * formtting made hbformat friendly, minor optimizations

  * README.txt
    ! fixed minor typo in project description

  * website/index.html
    + updated project description with the one on sf.net
      and in README.txt

  * contrib/hbgd/tests/digits/odw.gif
  * contrib/hbgd/tests/imgs_in/gdlogo.png
  * contrib/hbhpdf/tests/files/*.png
  * website/images/*.png
  * website/samples/screenshots/*.png
    % optimized

  - website/samples/screenshots/*_w32.png
  + website/samples/screenshots/*_win.png
  * website/samples/screenshots/*.html
    * w32 -> win
2013-02-23 17:15:08 +00:00
Viktor Szakats
b2e8dbcea6 2013-02-22 11:06 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + support '-version', for local consistency with other
      (regular) double dashed options
    + will now warn if .lib/.a extension is used with -hblib/-hbimplib
      modes or .dll extension with -hbdyn/-hbdynvm modes in -o option value.
      It's unnecessary unless you want to make your .hbp file non-portable.

  * contrib/hbtest/core.prg
    ! fixed to trim line ending spaces in output
    ! fixed to handle RTEs with values containing control chars
    * use hb_StrReplace() instead of repeated StrTran()s
    ! set language to EN while evaluating the test expressions
      so that RTEs come in one common language
    ! fixed to escape more control chars in strings
    ! control char escaping missing for Memo strings
    * hbformatted (with 1 manual correction)

  * utils/hbtest/hbtest.prg
    ! fixed to trim line ending spaces in output
    ! fixed to handle RTEs with values containing control chars
    * made more hbformat friendly

  * contrib/hbtest/tests/test.prg
    + added self-tests

  * contrib/xhb/xhbmemo.prg
    * space
2013-02-22 10:07:05 +00:00
Viktor Szakats
e85a49339b 2013-02-21 23:31 UTC+0100 Viktor Szakats (harbour syenar.net)
* src/compiler/ppcomp.c
    + '#pragma nostartproc=' / '#pragma -n' will now return
      a permanent error. The compiler doesn't support (for
      longer than I can remember) on the fly modifying this
      option. Reading the option continues to be supported.
      [INCOMPATIBLE] in that t now will generate an error
      instead of being silently ignored.

  * doc/pragma.txt
    * marked 'nostartproc' #pragma as read-only
    * example to feature another pragma instead of 'nostartproc'

  * utils/hbmk2/hbmk2.prg
    * FuncNameEncode(): minor code cleanup

  * doc/gtapi.txt
  * doc/pragma.txt
    * date formatting

  * ChangeLog
    * closed two recent TOFIXes
2013-02-21 22:32:03 +00:00
Viktor Szakats
4aff1d147d 2013-02-21 17:52 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.hbp
  * utils/hbmk2/hbmk2.prg
  * utils/hbmk2/Makefile
    ! fixed to not run shell in corner case of:
        hbmk2 -plugin=my.hb [...]
    + documented one missing script/shell API
    + refactored hbmk2/hbshell code to not utilize file wide
      STATIC variables. It allows to _compile_ hbmk2.prg
      regardless of -n option usage
    + added some black magic to be able to _run_ hbmk2.prg
      with or without using -n option
    + additional tricks to avoid defining any unnecessary
      or potentially colliding public functions. It means
      hbmk2/hbrun can now run _itself_ as a script.
      both as .hrb and .prg flavor and regardless of
      -n option usage.

  * contrib/hbcurl/hbcurl.ch
    + added HB_CURLFTP_CREATE_DIR* constants

  * contrib/hbcurl/tests/ftp_uldl.prg
    ! updated FTP test URL
    * cleaned configuration parameters to be strictly
      in sync with libcurl docs
    + do not disable SSL host/peer verifications

  * tests/testhrb.prg
  * src/vm/runner.c
    * misc comment cleanup

  * tests/testhtml.prg
    * code cleanup

  * contrib/gtwvg/gtwgud.c
  * contrib/gtwvg/gtwvgd.c
  * contrib/hbgt/bitflags.c
  * contrib/hbmysql/readme.txt
  * contrib/hbmysql/tests/dbf2mysq.prg
  * contrib/hbmysql/tsqlbrw.prg
  * contrib/hbtip/mail.prg
  * contrib/rddads/ads1.c
  * contrib/xhb/dumpvar.prg
  * contrib/xhb/xhbmemo.prg
  * contrib/xhb/xhbtedit.prg
  * doc/gtapi.txt
  * extras/gtwvw/gtwvwd.c
  * extras/hbxlsxml/tests/example.prg
  * extras/httpsrv/uhttpd.prg
  * src/debug/dbgtarr.prg
  * src/debug/dbgthsh.prg
  * src/lang/l_sk.c
  * src/rdd/dbfcdx/dbfcdx1.c
  * src/rdd/usrrdd/rdds/arrayrdd.prg
  * src/rtl/filesys.c
  * src/rtl/gtos2/gtos2.c
  * src/rtl/gtwvt/gtwvt.c
  * src/rtl/net.c
  * src/rtl/teditor.prg
  * src/vm/thread.c
  * website/news1.html
    * cleaned all remaining national/misc dates
      to be in ANSI format (YYYY.MM.DD)
2013-02-21 16:55:35 +00:00
Viktor Szakats
823451df02 2013-02-19 10:34 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! accept -n1 for compilation
2013-02-19 09:36:52 +00:00
Viktor Szakats
4df8b28fc6 2013-02-19 02:06 UTC+0100 Viktor Szakats (harbour syenar.net)
* ChangeLog.txt
  * src/codepage/l_sr_cyr.h
    * typos/cleanups in comment
2013-02-19 01:07:21 +00:00
Viktor Szakats
8e57711e1d 2013-02-19 02:01 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! fixed -find to continue search for substrings
      after a full match (f.e. hbmk2 -find str)
    + documented shell script API calls
    + new help section format for above
    + ensure -n2 build and enable warning settings to
      help building into an .hrb
      (quite fun to run hbmk2/hbrun as a hbrun script!)
    ! 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
             the first character of a function if it's a digit.

  * doc/pragma.txt
  * src/pp/ppcore.c
    ! fixed '#pragma nostartproc'. Only 'off' worked, 'on'
      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. Not does existing '#pragma -n2'
             Pbly it's too late to set this while compiling,
             or it needs deeper modifications.
             Or delete if unfixable.
             --- test_n2.prg
             #pragma tracepragmas=on
             #pragma -n2

             #pragma -w3
             STATIC stat := "stat"
             PROCEDURE Main()
                ? stat /* ISSUE: warning appears without cmdline -n2 option */
                RETURN
             ---
             $ harbour test_n2
             $ harbour test_n2 -n2

  * README.txt
    * minor sync with hbmk2 help
2013-02-19 01:02:32 +00:00
Przemyslaw Czerpak
391573a2b9 2013-02-19 01:48 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/src/codepage/l_sr_cyr.h
    ! restored original Serbian collation by Srdjan Dragojlovic - thanks.

  * harbour/src/codepage/cpsr646c.c
    ! use special collation version for Serbian ISO-646C (Cyrillic YUSCII).
      AFAIK it should be the same order as in Serbian ISO-646 (Latin YUSCII)
      so user can dynamically switch between both encodings and still use
      the same binary indexes. If I'm wrong then Serbian users will have to
      fix me.
2013-02-19 00:49:01 +00:00
Pritpal Bedi
491f4f5cad 2013-12-18 15:40 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/gtwvg/gtwgud.c
  * contrib/gtwvg/gtwvgd.c
    + Allied: Rolf supplied patch but with changes. Now GTWVG is 
       equal to GTWVT in many respects.
2013-02-18 23:44:04 +00:00
Przemyslaw Czerpak
812f901e0a 2013-02-18 17:32 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/src/rtl/strrepl.c
    * minor cleanup
2013-02-18 16:33:09 +00:00
Viktor Szakats
63e13d3591 2013-02-18 15:32 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! yuck
2013-02-18 14:33:21 +00:00
Viktor Szakats
b1f94dfe51 2013-02-18 15:29 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! weird editing typo in a recent HB_STRREPLACE() related
      commit, causing messed custom linker options
2013-02-18 14:31:18 +00:00
Viktor Szakats
3fb65e7924 2013-02-18 14:48 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    + added '-hb30' option and '{hb30}' filter macro to allow
      reverting back to Harbour 3.0.0
    + added provisions for merging 'hblang' and 'hbcpage'
      core libs into new 'hbnat' lib
    + SETCURSOR() and SETCOLOR() references will now also
      trigger full screen CUI mode in hbrun scripts
    + documented the fact that GTCGI is default GT for scripts
      and that it's switched to another one (and which) when
      CUI mode script is detected
    + marked all information in help with '[*]' which shows
      host platform dependent, dynamic data (f.e. systems paths)
    + hbmk.hbc will now be searched for under user's home
      directory on non-*nix, too
    + added '-find' special hbmk2 option for finding Harbour functions.
      It will lookup any strings passed as command line arguments
      and display in which library they can be found. It will
      also do the lookup in packages not currently installed.
      Replaces similar 'hbrun bin/find' functionality, but now
      uses existing code inside hbmk2. The new implementation
      also supports wildcards.
      Example:
         hbmk2 -find wapi_*string ntos wild
    ! documented that hbstart.hb is first searched for in
      current working directory
    ! ${hb_ver} and ${hb_verstr} macros now change their value
      in compatibility modes (-hb10, -hb20, -hb30, -xhb)
    + -longhelpmd output will now not contain installation
      specific (and potentially sensitive) data: home directory,
      hbmk2 directory, only generic replacement terms
    + version= directive help text got a mention of its default
      value (it was so far only mentioned next to HBMK_HAS_<hbcname>
      envvar)
    + documented exit codes in help text
    * minor tweaks to some help lines
    * cleanup for Markdown formatting internals
    * plugin callback variable "nErrorLevel" renamed to "nExitCode"
      [INCOMPATIBLE]
    * exit code changed to value 6 from 1 when hbrun script has
      a compile error [INCOMPATIBLE]
    + use core hb_DirSepToOS() where possible
    - deleted hbmk2 plugin API function hbmk_PathSepToSelf()
      Use core hb_DirSepToOS() instead. [INCOMPATIBLE]
    + added '-exitstr' hbmk2 option which will display the exit result
      in textual format

  * contrib/hbpre.hbm
  * contrib/make.hb
    % use -exitstr hbmk2 option instead of rolling a local copy
      of possible result strings

  * src/pp/ppcore.c
    + generate '\a' '\f' '\v' escape chars

  - bin/find.hb
  * config/postinst.hb
  * package/harbour.spec
    - deleted find.hb for 'hbrun bin/find' functionality.
      Replaced by 'hbmk2 -find' option.

  * src/rtl/Makefile
  - src/rtl/strxchg.c
  + src/rtl/strrepl.c
  * src/rtl/tget.prg
  * utils/hbmk2/hbmk2.prg
  * include/harbour.hbx
  * ChangeLog.txt
    * renamed HB_STRXCHG() to HB_STRREPLACE(), according to:
         https://groups.google.com/d/topic/harbour-devel/vSzlAkv6h9Y/discussion
    * updated function skeleton in ChangeLog and C source
      (also with new hash parameter)

  * contrib/hbsqlit3/hbsqlit3.hbp
  * contrib/hbsqlit3/hbsqlit3.hbx
  + contrib/hbsqlit3/errstr.prg
    + hb_sqlite3_errstr_short( <nError> ) -> <cError>

  * contrib/hbsqlit3/tests/authoriz.prg
  * contrib/hbsqlit3/tests/backup.prg
  * contrib/hbsqlit3/tests/hooks.prg
    % use hb_sqlite3_errstr_short() instead of implementing
      it locally in each example
    % use sqlite3_errstr() API to get long error strings instead
      of reimplementing it locally
    % minor opt

  * contrib/hbsqlit3/hbsqlit3.hbp
  - contrib/hbsqlit3/hdbcsqlt.prg
  + contrib/hbsqlit3/hdbc.prg
    * renamed

  * contrib/hbhpdf/errstr.prg
  * contrib/hbmzip/mziperr.prg
    ! indenting

  * contrib/hbtip/tests/tiptest.prg
    * leave color
2013-02-18 13:50:13 +00:00
Viktor Szakats
c72e900a2d 2013-02-17 12:43 UTC+0100 Viktor Szakats (harbour syenar.net)
* src/codepage/*.c
  - src/codepage/l_*.c
  + src/codepage/l_*.h
  * src/lang/Makefile
  - src/lang/*.c
  + src/lang/l_*.c
    + renamed collation modules and language modules, so they
      now can be merged into a single directory (and sorted 
      by extension to overview country coverage).

  * src/common/hbstr.c
    + added missing some C escaped chars: \a, \f, \v
      INCOMPATIBLE: thus far they had been converted to
      char 'a', 'f', 'v' respectively.
      e"" string literals, HB_STRCDECODE(), HB_STRDECODESCAPE()
      are affected.

  * utils/hbmk2/hbmk2.prg
    ! avoided one ASCII code dependent comparison
    ! added missing value value validation for -incpath= option
    * minor internal cleanups
2013-02-17 11:51:14 +00:00
Viktor Szakats
87517c52ae 2013-02-16 15:09 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! RTE regression in one last change
2013-02-16 14:11:01 +00:00
Viktor Szakats
8be9918691 2013-02-15 19:21 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + reminaing STRTRAN() to HB_STRXCHG() update.
    * converted few NOTEs to TODOs to eliminate few
      cases of recursive macros (which exploited side-effect
      of repeated STRTRAN() calls)
    ; Any sort of regression is possible now.
2013-02-15 18:22:44 +00:00
Viktor Szakats
48f5c83103 2013-02-15 18:49 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + further STRTRAN() to HB_STRXCHG() updates.
      (one group left)
2013-02-15 17:50:30 +00:00
Viktor Szakats
f5a35d2577 2013-02-15 16:19 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! fixed casing of hb_StrXChg() to match harbour.hbx
    ! fixed to not include and invalid header directory
      in a rare case (hbmk2 -head=native t.c -hbc -inc)
      on header detection. It seemed a duplicate value
      in valid cases anyway.
    + using HB_STRXCHG() with the new hash option almost
      everywhere
    + use HB_STRXCHG() in some more places when forming
      command (no everywhere yet, and the recursive
      replacement was localized but not sorted out yet)
    + use HB_STRXCHG() to replace macros in an internal
      template
    ; HB_STRXCHG() can resolve unlikely case where
      options/filenames contained macro names used inside
      the source. It also makes for a less ambiguous code.
    + added warnings if invalid value is used in certain
      options. (after HB_LEGACY_LEVEL4, until then, the
      replacement option is displayed)

  * src/rtl/tget.prg
  * utils/hbmk2/hbmk2.prg
    ! fixed casing of hb_StrXChg() to match harbour.hbx
2013-02-15 15:46:23 +00:00
Przemyslaw Czerpak
5035262bdb 2013-02-15 12:14 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/src/rtl/strxchg.c
    + added support for using hash arrays as replace pairs in second
      argument of hb_strXChg() - hash arrays are accepted if 3-rd parameter
      is ommitted or is NIL. Now this alternative syntax:
         hb_strXChg( <cString>, <hChanges> ) -> <cResult>
      is also supported, i.e.:
         cData := hb_strXChg( cSource, { "{LI}" => cLIValue, ;
                                         "{FI}" => cFIValue } )
      Please remember that single hash layer is much lighter data type
      then array of subarrays because it needs only one GC item when
      each subarray is new GC item.

  * harbour/include/hbtypes.h
    * renamed HB_EXTISARRAY to HB_EXTISPARAM, old type is covered by
      HB_LEGACY_LEVEL4 macro.

  * harbour/include/hbapi.h
  * harbour/src/vm/extend.c
    + added new public C function:
         HB_BOOL hb_extIsNil( int iParam );
    % use hb_extIsNil(n) in HB_ISNIL(n) macro. It eliminates double
      function call and also double (n) usage so it improves the
      performance and allows to use complex expressions as HB_ISNIL()
      argument.

  * harbour/src/vm/maindllp/dllext.c
    + added wrappers for hb_extIsNil() abd hb_extIsObject()
2013-02-15 11:15:19 +00:00
Viktor Szakats
cf6c4473b2 2013-02-15 03:09 UTC+0100 Viktor Szakats (harbour syenar.net)
* src/rtl/tget.prg
    % use HB_STRXCHG()

  * utils/hbmk2/hbmk2.prg
    + use HB_STRXCHG() for all Markdown conversion
    ! use HB_STRXCHG() in filter evaluation code. It will
      fix potential problem when macro values contained
      internal placeholder string
    ! fixed Markdown conversion in copyright banner
    % use \t instead of manual solution
    * other minor cleanups
    + added a good bunch of TODOs for remaining places
      where STRTRAN() has to be changed to HB_STRXCHG()
      I'm only wishing for a syntax that keeps search
      and replace values closer together to keep the
      source well readable, f.e.:
         STRXCHG( str, { ;
            { "{LI}", cLIValue }, ;
            { "{FI}", cFIValue } } )
      Though it may be solved with a local wrapper because 
      they are not speed critical. Ideas welcome.
2013-02-15 02:20:42 +00:00
Viktor Szakats
203523f991 2013-02-15 02:11 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    ! fixed most hacks around embedded newlines in hbmk2's
      own output messages. Now they are handled natively,
      which will fix output that contains "\n" as normal
      part of the text, f.e. "C:\name\", and makes the
      newlines in .po files standard.

  * ChangeLog.txt
  * utils/hbmk2/hbmk2.prg
    ! "Markdown" cased correctly

  * src/rtl/strxchg.c
    + SVN props

  * contrib/hbtip/httpcli.prg
    * cleanups
2013-02-15 01:15:58 +00:00
Przemyslaw Czerpak
50d7ec8675 2013-02-15 01:53 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/include/harbour.hbx
  * harbour/src/rtl/Makefile
  + harbour/src/rtl/strxchg.c
    + added new PRG function:
         hb_strXChg( <cString>, <cSource> | <acSource>, ;
                                <cDest> | <acDest> ] ) -> <cResult>
      This function allows to easy replace different substrings in
      given string.
      If 2-nd is string then each character in <cString> which exists
      in <cSource> at <n> position is replaced by corresponding character
      at <n> position in <cDest> or string from <acDest>[ <n> ]
      If 2-nd parameter is array then each <cString> substring which exists
      in <acSource> at <n> position is replaced by corresponding character
      at <n> position in <cDest> or string from <acDest>[ <n> ].
      If <n> is longer then LEN() of <cDest> or <acDest> then given
      character/substring is removed from result.
      This function should help in code which wrongly uses repeated
      StrTran() calls all regex which can change also substituted values.
      Examples:
         // encode XML value
         cXmlText := hb_strXChg( cText, "<>&", { "&lt;", "&gt;", "&amp;" } )
         // now decode it to raw text
         cText := hb_strXChg( cXmlText, { "&lt;", "&gt;", "&amp;" }, "<>&" )
         // strip all digits from string
         cNoDigit := hb_strXChg( cText, "0123456789" )
         // extract all digits from string
         cDigits := hb_strXChg( cText, cNoDigit )
         // convert chosen letters to upper case
         ? hb_strXChg( "hello world, "hlwd", "HLWD" )

  * harbour/src/common/hbfopen.c
    * added workaround for missing wsystem() in XCC
2013-02-15 00:54:04 +00:00
Pritpal Bedi
7d48bb3f46 2013-12-14 14:26 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbtip/httpcli.prg
    + Added: method :Put( xPostData, cQuery ).
       This is identical to :Post() but issues PUT verb instead of POST.
       PUT verb is required for certain RESTful operations.
2013-02-14 22:37:03 +00:00
Viktor Szakats
78e179c85c 2013-02-14 23:09 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/xhb/hbxml.c
    ! several memory leaks fixed in xhb XML support (TXml class)
    ; Patch by Jose F. Gimenez. Thank you very much.

  * utils/hbmk2/hbmk2.prg
    ! fixed -request= to work again for Harbour pcode dynlibs
      regression from: 2010-07-31 13:44 UTC+0200 Viktor Szakats
         8fb774ef80
      (sf.net's SVN web browser is effectively unusable anymore
      for certain parts of Harbour, their server cannot handle
      the history)
    ! fixed missing detection for the proper bcc linker option
      that disables warning for duplicate symbols in executables

  * extras/template/hbtpl.hbp
    + added example to link dynlib against other Harbour (pcode) dynlib
      Disclaimer: There is no "generic support" for this,
      only a set of conventions used throughout Harbour
      contrib .hbc files, contrib/make.hbs and
      $hb_pkg_dynlib.hbm (aka utils/hbmk2/pkg_dynl.hbm)

  * extras/*/*.hbx
    * refreshed
2013-02-14 22:13:42 +00:00
Viktor Szakats
3e433c3a18 2013-02-14 15:08 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    * some internal cleanups
    + invalid libpath detection extended to .hbc files
    + invalid header path detection extended to .hbc files
    + invalid libpath detection extended to an alternate lib directory
    + invalid header/lib path detection now detects some
      relative path formats
    + invalid header/lib path detection now detects values
      pointing to embedded C compiler location (these are
      always invalid and handled by hbmk2 automatically)
    ; amazing what it takes to protect users from themselves!
      I guess users who make above errors won't read the
      warnings anyway.
2013-02-14 14:10:34 +00:00
Viktor Szakats
c171e43230 2013-02-14 11:39 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    * -harbourhelp description detailed
    + documented -build option in help
    + support for -credits option
    ! fixed indentation in two recent functions

  * utils/hbmk2/examples/contrib.hbc
    ! minor correction
2013-02-14 10:48:08 +00:00
Viktor Szakats
d0a94440d9 2013-02-13 23:30 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/hbformat/hbfmtcls.prg
  * contrib/hbformat/utils/hbformat.ini
    + allow control for how many spaces to insert (or leave 
      as is) between comment markers and comment text.
      Thanks to Jose F. Gimenez for the bit-perfect patch.
2013-02-13 22:33:19 +00:00
Viktor Szakats
ceba217b82 2013-02-13 22:53 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! fixed libname suggestion in a very obscure case

  * utils/hbmk2/examples/contrib.hbc
  - utils/hbmk2/examples/contribf.hbc
    - deleted further .hbc examples with heavy contrib specific
      information. For live .hbc example it's best to check any 
      of them in /extras/*/ and /contrib/*/ directories
2013-02-13 21:55:00 +00:00
Viktor Szakats
842b89c24e 2013-02-13 22:22 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + better detection of core libraries specified in user make files
    + hbmk2 will now detect certain common and non-portable/wrong
      library specifications in command line and .hbc file.
      It will also suggest to correct options to use.
      It's now a warning, but such wrong options will be ignored
      after HB_LEGACY_LEVEL4.
      Report if it causes warnings for proper usage scenarios.
      Some examples for wrong options detected:
         my.lib
         libmy.lib
         -lmy.lib
         -llibmy.lib
         -llibmy.a
         -lmy.a
         -lC:\libs\my.lib
         -lC:\libs\libmy.lib
         -lC:\libs\libmy.a
         -lC:\libs\my.a
         -lC:\libs\hbrtl.a
         -lC:\hb30\lib\win\mingw\
         -lC:\hb30\lib\win\mingw\my
         -lC:\hb30\lib\win\mingw\my.a
         -lC:\hb30\lib\win\mingw\hbrtl.a
         -lhbrtl.lib
         -llibhbrtl.a
         -lhbrtl.a
      [ For those who wonder: all of these can be safely
        replaced with '-lmy -LC:\libs' ]
2013-02-13 21:24:10 +00:00
Viktor Szakats
47f1242225 2013-02-13 12:43 UTC+0100 Viktor Szakats (harbour syenar.net)
* README.txt
    * minor additions/tweaks to TROUBLESHOOTING section
f
2013-02-13 11:44:32 +00:00
Viktor Szakats
3693430c2d 2013-02-13 12:30 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
  * utils/hbmk2/examples/contrib.hbc
    * minor internal and help cleanups

  - utils/hbmk2/examples/c4w.hbc
  - utils/hbmk2/examples/fwh.hbc
  - utils/hbmk2/examples/oohg.hbc
  - utils/hbmk2/examples/whoo.hbc
  - utils/hbmk2/examples/xhgtk.hbc
    - deleted example .hbc files for defunct, commercial
      or long time untested against 3rd party libs, that
      held no real example value anymore. It's best if
      these files are shipped by the projects themselves.
2013-02-13 11:34:34 +00:00
Viktor Szakats
83c96e0d45 2013-02-12 20:59 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    ! two typos in help
2013-02-12 20:00:24 +00:00
Viktor Szakats
d3c5072900 2013-02-12 20:01 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    + added all supported filter values/expressions to help.
    ! fixed case insensitiveness in filter comparison 
      expressions (=,>,<) to work on non-ASCII chars as well.
      (I wouldn't recommend using accented chars to control 
      build behavior though)
2013-02-12 19:04:06 +00:00
Viktor Szakats
a64907f845 2013-02-12 16:57 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.*.po
  * utils/hbmk2/hbmk2.prg
    * cleanups using the word "macro" in help
2013-02-12 15:58:58 +00:00
Viktor Szakats
71642f88dd 2013-02-12 12:49 UTC+0100 Viktor Szakats (harbour syenar.net)
* src/rtl/hbstrfmt.c
    * HB_STRFORMAT(): changed to not RTE if there is format
      string reference to a parameter missing at runtime,
      but instead simply ignore that parameter specifier.
      Format strings are primarily meant to help language
      translation of human readable strings. Old behavior
      could result in very difficult to test or predict
      runtime errors caused by typos, mistakes in translation
      (.po) files. It may also be unsafe in some situations,
      allowing DoS attack.
      TODO: To implement parameter checking, Harbour compiler
            should handle HB_STRFORMAT() as intrinsic function
            and test and warn if the number of parameter specifiers
            differs from the actual number of parameters passed,
            at compile time. Similar to GCC/CLANG.

  * contrib/hbhttpd/tests/files/main.css
  * extras/hbdoc/hbdoc.css
  * extras/httpsrv/home/css/base.css
  * website/css/styles.css
    * cleanups and applied http://csscomb.com
2013-02-12 11:59:02 +00:00
Viktor Szakats
d3dddfca09 2013-02-11 21:51 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + ability to output help text in MarkDown format:
        hbmk2 --longhelpmd > man.md
      view it with any MarkDown compatible viewer, or 
      convert to HTML/PDF/MANPAGE/TROFF/etc.
2013-02-11 20:53:30 +00:00
Viktor Szakats
5418c81aa3 2013-02-11 14:51 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! same internal typo in another name
2013-02-11 13:52:13 +00:00
Viktor Szakats
fad87ef70b 2013-02-11 01:47 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    ! typo in an internal macro name
2013-02-11 00:47:50 +00:00
Viktor Szakats
eee1c618df 2013-02-11 01:45 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + documented $*.hbm embedded .hbm include files

  * utils/hbmk2/pkg_inst.hbm
    * avoid explicit "hbmk2"
2013-02-11 00:46:16 +00:00
Viktor Szakats
23347287ae 2013-02-11 01:30 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + documented all predefined source and build file macros

  * extras/gfspell/spell.prg
    ! use ASC() instead of hardcoded numeric repr.
2013-02-11 00:30:54 +00:00
Viktor Szakats
4727b6b098 2013-02-08 12:02 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    * polishing to warning texts committed in prev
2013-02-08 11:04:45 +00:00
Viktor Szakats
79ffe03138 2013-02-08 11:58 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
    + show warning and offer best practice when non-portable 
      ".exe" extension is used in -o option
    + show warning and offer best practice when non-portable 
      "*.lib" library name is passed directly to hbmk2
2013-02-08 11:00:22 +00:00
Viktor Szakats
b033790ef3 2013-02-07 22:53 UTC+0100 Viktor Szakats (harbour syenar.net)
* ChangeLog.txt
    * missed to tag prev entry as needed
2013-02-07 21:54:00 +00:00
Viktor Szakats
6088808505 2013-02-07 22:29 UTC+0100 Viktor Szakats (harbour syenar.net)
* src/codepage/l_sv.c
    + NOTE with Klas's explanation of the extra chars 
      included over the Swedish alphabet
    + 4 new characters add to the Swedish
      collation as per Klas's guidance:
         https://groups.google.com/d/msg/harbour-devel/13ImOaYoq8o/B-mDY708EpcJ
           (and its followup)

  * utils/hbmk2/hbmk2.prg
    ! very minor fix where -hbc= options list value
      items are now trimmed from spaces.

  * config/aix/gcc.mk
  * config/beos/gcc.mk
  * config/bsd/clang.mk
  * config/bsd/gcc.mk
  * config/bsd/pcc.mk
  * config/cygwin/gcc.mk
  * config/darwin/clang.mk
  * config/darwin/gcc.mk
  * config/dos/djgpp.mk
  * config/global.mk
  * config/hpux/gcc.mk
  * config/linux/clang.mk
  * config/linux/gcc.mk
  * config/linux/sunpro.mk
  * config/minix/ack.mk
  * config/minix/clang.mk
  * config/minix/gcc.mk
  * config/os2/gcc.mk
  * config/qnx/gcc.mk
  * config/sunos/gcc.mk
  * config/sunos/sunpro.mk
  * config/symbian/gcc.mk
  * config/vxworks/gcc.mk
  * config/vxworks/global.mk
  * config/wce/mingwarm.mk
  * config/win/clang.mk
  * config/win/mingw.mk
  * utils/hbmk2/hbmk2.prg
  * README.txt
    * envvar renamed HB_CCPOSTFIX -> HB_CCSUFFIX
      INCOMPATIBLE. (I surmise few people need this,
      hence no grace period)

  * contrib/hbmemio/tests/test.prg
    * minor cleanup
2013-02-07 21:34:52 +00:00
Viktor Szakats
01f3972624 2013-02-07 00:16 UTC+0100 Viktor Szakats (harbour syenar.net)
* 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
      messy solution which returns multiple type in different
      cases, which is obviously not accounted for when
      calling it.)

  * include/harbour.hbx
    * updated/cased

  * contrib/hbtip/mail.prg
    * format
2013-02-06 23:18:31 +00:00