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
This commit is contained in:
@@ -10,6 +10,106 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
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-17 12:43 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* src/codepage/*.c
|
||||
- src/codepage/l_*.c
|
||||
@@ -80,10 +180,10 @@
|
||||
+ 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>
|
||||
hb_StrReplace( <cString>, <hChanges> ) -> <cResult>
|
||||
is also supported, i.e.:
|
||||
cData := hb_strXChg( cSource, { "{LI}" => cLIValue, ;
|
||||
"{FI}" => cFIValue } )
|
||||
cData := hb_StrReplace( 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.
|
||||
@@ -121,7 +221,7 @@
|
||||
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, { ;
|
||||
HB_STRXCHG( str, { ;
|
||||
{ "{LI}", cLIValue }, ;
|
||||
{ "{FI}", cFIValue } } )
|
||||
Though it may be solved with a local wrapper because
|
||||
@@ -151,8 +251,8 @@
|
||||
* harbour/src/rtl/Makefile
|
||||
+ harbour/src/rtl/strxchg.c
|
||||
+ added new PRG function:
|
||||
hb_strXChg( <cString>, <cSource> | <acSource>, ;
|
||||
<cDest> | <acDest> ] ) -> <cResult>
|
||||
hb_StrReplace( <cString>, <cSource> | <acSource> | <hReplace>, ;
|
||||
<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
|
||||
@@ -167,15 +267,15 @@
|
||||
StrTran() calls all regex which can change also substituted values.
|
||||
Examples:
|
||||
// encode XML value
|
||||
cXmlText := hb_strXChg( cText, "<>&", { "<", ">", "&" } )
|
||||
cXmlText := hb_StrReplace( cText, "<>&", { "<", ">", "&" } )
|
||||
// now decode it to raw text
|
||||
cText := hb_strXChg( cXmlText, { "<", ">", "&" }, "<>&" )
|
||||
cText := hb_StrReplace( cXmlText, { "<", ">", "&" }, "<>&" )
|
||||
// strip all digits from string
|
||||
cNoDigit := hb_strXChg( cText, "0123456789" )
|
||||
cNoDigit := hb_StrReplace( cText, "0123456789" )
|
||||
// extract all digits from string
|
||||
cDigits := hb_strXChg( cText, cNoDigit )
|
||||
cDigits := hb_StrReplace( cText, cNoDigit )
|
||||
// convert chosen letters to upper case
|
||||
? hb_strXChg( "hello world, "hlwd", "HLWD" )
|
||||
? hb_StrReplace( "hello world, "hlwd", "HLWD" )
|
||||
|
||||
* harbour/src/common/hbfopen.c
|
||||
* added workaround for missing wsystem() in XCC
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Lists selected functions and their location
|
||||
*
|
||||
* Copyright 2012 Viktor Szakats (harbour syenar.net)
|
||||
* www - http://harbour-project.org
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* 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 http://www.gnu.org/).
|
||||
*
|
||||
*/
|
||||
|
||||
#include "directry.ch"
|
||||
|
||||
PROCEDURE Main( ... )
|
||||
|
||||
LOCAL cRoot := hb_DirBase() + ".." + hb_ps()
|
||||
|
||||
WalkDir( cRoot + "include", { ... }, "core" )
|
||||
WalkDir( cRoot + "contrib", { ... }, "contrib" )
|
||||
WalkDir( cRoot + "addons" , { ... }, "addon" )
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC PROCEDURE WalkDir( cDir, aContains, cComponent )
|
||||
|
||||
LOCAL aFile
|
||||
|
||||
cDir := hb_DirSepAdd( hb_DirSepToOS( cDir ) )
|
||||
|
||||
FOR EACH aFile IN hb_DirScan( cDir, "*.hbx" )
|
||||
ProcessFile( cDir + aFile[ F_NAME ], aContains, cComponent )
|
||||
NEXT
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC PROCEDURE ProcessFile( cFileName, aContains, cComponent )
|
||||
|
||||
LOCAL cDynamic
|
||||
LOCAL lFirst := .T.
|
||||
|
||||
FOR EACH cDynamic IN LoadHBX( cFileName )
|
||||
IF Empty( aContains ) .OR. AScan( aContains, {| tmp | Upper( tmp ) $ Upper( cDynamic ) } ) > 0
|
||||
IF lFirst
|
||||
lFirst := .F.
|
||||
IF cComponent == "core"
|
||||
cFileName := "(" + cComponent + ")"
|
||||
ELSE
|
||||
cFileName := cComponent + " - " + hb_FNameExtSet( hb_FNameName( hb_DirSepToOS( cFileName ) ), ".hbc" )
|
||||
ENDIF
|
||||
OutStd( cFileName + ": " + hb_eol() )
|
||||
ENDIF
|
||||
OutStd( " " + cDynamic + "()" + hb_eol() )
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION LoadHBX( cFileName )
|
||||
|
||||
LOCAL cFile
|
||||
LOCAL pRegex
|
||||
LOCAL tmp
|
||||
LOCAL aDynamic := {}
|
||||
LOCAL cFilter
|
||||
|
||||
IF ! Empty( cFile := hb_MemoRead( cFileName ) )
|
||||
|
||||
FOR EACH cFilter IN { ;
|
||||
"^DYNAMIC ([a-zA-Z0-9_]*)$", ;
|
||||
"ANNOUNCE ([a-zA-Z0-9_]*)$" }
|
||||
|
||||
IF ! Empty( pRegex := hb_regexComp( cFilter, .T., .T. ) )
|
||||
FOR EACH tmp IN hb_regexAll( pRegex, StrTran( cFile, Chr( 13 ) ),,,,, .T. )
|
||||
AAdd( aDynamic, tmp[ 2 ] )
|
||||
NEXT
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
RETURN aDynamic
|
||||
@@ -84,7 +84,6 @@ PROCEDURE Main( ... )
|
||||
/* public Harbour scripts */
|
||||
FOR EACH tmp IN { ;
|
||||
"bin/3rdpatch.hb", ;
|
||||
"bin/find.hb", ;
|
||||
"bin/harbour.ucf" }
|
||||
mk_hb_FCopy( tmp, GetEnvC( "HB_INSTALL_BIN" ) + hb_ps() )
|
||||
NEXT
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
FUNCTION hb_HPDF_GetErrorString( nStatus )
|
||||
|
||||
IF ! HB_ISNUMERIC( nStatus )
|
||||
RETURN "HB_HPDF_INVALID"
|
||||
RETURN "HB_HPDF_INVALID"
|
||||
ENDIF
|
||||
|
||||
SWITCH nStatus
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
FUNCTION hb_zipErrorStr( nStatus )
|
||||
|
||||
IF ! HB_ISNUMERIC( nStatus )
|
||||
RETURN "ZIP_INVALID"
|
||||
RETURN "ZIP_INVALID"
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
@@ -80,7 +80,7 @@ FUNCTION hb_zipErrorStr( nStatus )
|
||||
FUNCTION hb_unzipErrorStr( nStatus )
|
||||
|
||||
IF ! HB_ISNUMERIC( nStatus )
|
||||
RETURN "UNZ_INVALID"
|
||||
RETURN "UNZ_INVALID"
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
{HB_BUILD_VERBOSE}-quiet-
|
||||
{HB_BUILD_VERBOSE}-info
|
||||
{HB_BUILD_VERBOSE}-trace
|
||||
-exitstr
|
||||
|
||||
{!HB_BUILD_DEBUG}-l
|
||||
|
||||
|
||||
94
harbour/contrib/hbsqlit3/errstr.prg
Normal file
94
harbour/contrib/hbsqlit3/errstr.prg
Normal file
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Supplementary functions (error strings)
|
||||
*
|
||||
* Copyright 2013 Viktor Szakats (harbour syenar.net)
|
||||
* Copyright 2009 P.Chornyj <myorg63@mail.ru>
|
||||
* www - http://harbour-project.org
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING.txt. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hbsqlit3.ch"
|
||||
|
||||
FUNCTION hb_sqlite3_errstr_short( nError )
|
||||
|
||||
IF ! HB_ISNUMERIC( nError )
|
||||
RETURN "HB_SQLITE_INVALID"
|
||||
ENDIF
|
||||
|
||||
SWITCH nError
|
||||
CASE SQLITE_OK ; RETURN "SQLITE_OK"
|
||||
CASE SQLITE_ERROR ; RETURN "SQLITE_ERROR"
|
||||
CASE SQLITE_INTERNAL ; RETURN "SQLITE_INTERNAL"
|
||||
CASE SQLITE_PERM ; RETURN "SQLITE_PERM"
|
||||
CASE SQLITE_ABORT ; RETURN "SQLITE_ABORT"
|
||||
CASE SQLITE_BUSY ; RETURN "SQLITE_BUSY"
|
||||
CASE SQLITE_LOCKED ; RETURN "SQLITE_LOCKED"
|
||||
CASE SQLITE_NOMEM ; RETURN "SQLITE_NOMEM"
|
||||
CASE SQLITE_READONLY ; RETURN "SQLITE_READONLY"
|
||||
CASE SQLITE_INTERRUPT ; RETURN "SQLITE_INTERRUPT"
|
||||
CASE SQLITE_IOERR ; RETURN "SQLITE_IOERR"
|
||||
CASE SQLITE_CORRUPT ; RETURN "SQLITE_CORRUPT"
|
||||
CASE SQLITE_NOTFOUND ; RETURN "SQLITE_NOTFOUND"
|
||||
CASE SQLITE_FULL ; RETURN "SQLITE_FULL"
|
||||
CASE SQLITE_CANTOPEN ; RETURN "SQLITE_CANTOPEN"
|
||||
CASE SQLITE_PROTOCOL ; RETURN "SQLITE_PROTOCOL"
|
||||
CASE SQLITE_EMPTY ; RETURN "SQLITE_EMPTY"
|
||||
CASE SQLITE_SCHEMA ; RETURN "SQLITE_SCHEMA"
|
||||
CASE SQLITE_TOOBIG ; RETURN "SQLITE_TOOBIG"
|
||||
CASE SQLITE_CONSTRAINT ; RETURN "SQLITE_CONSTRAINT"
|
||||
CASE SQLITE_MISMATCH ; RETURN "SQLITE_MISMATCH"
|
||||
CASE SQLITE_MISUSE ; RETURN "SQLITE_MISUSE"
|
||||
CASE SQLITE_NOLFS ; RETURN "SQLITE_NOLFS"
|
||||
CASE SQLITE_AUTH ; RETURN "SQLITE_AUTH"
|
||||
CASE SQLITE_FORMAT ; RETURN "SQLITE_FORMAT"
|
||||
CASE SQLITE_RANGE ; RETURN "SQLITE_RANGE"
|
||||
CASE SQLITE_NOTADB ; RETURN "SQLITE_NOTADB"
|
||||
CASE SQLITE_ROW ; RETURN "SQLITE_ROW"
|
||||
CASE SQLITE_DONE ; RETURN "SQLITE_DONE"
|
||||
ENDSWITCH
|
||||
|
||||
RETURN "HB_SQLITE_UNKNOWN_" + hb_ntos( nError )
|
||||
@@ -20,6 +20,7 @@
|
||||
${hb_name}.hbx
|
||||
|
||||
core.c
|
||||
hdbcsqlt.prg
|
||||
errstr.prg
|
||||
hdbc.prg
|
||||
|
||||
../3rd/sqlite3/sqlite3.hbc{HBMK_HAS_SQLITE3_LOCAL}
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#command DYNAMIC <fncs,...> => EXTERNAL <fncs>
|
||||
#endif
|
||||
|
||||
DYNAMIC hb_sqlite3_errstr_short
|
||||
DYNAMIC hdbcSQLTConnection
|
||||
DYNAMIC hdbcSQLTDatabaseMetaData
|
||||
DYNAMIC hdbcSQLTPreparedStatement
|
||||
|
||||
@@ -82,6 +82,8 @@ PROCEDURE Main()
|
||||
LOCAL cSQLTEXT
|
||||
LOCAL pDb, cb
|
||||
|
||||
CLS
|
||||
|
||||
IF Empty( pDb := PrepareDB( cFile ) )
|
||||
ErrorLevel( 1 )
|
||||
RETURN
|
||||
@@ -172,56 +174,16 @@ FUNCTION CallBack( nColCount, aValue, aColName )
|
||||
|
||||
STATIC FUNCTION cErrorMsg( nError, lShortMsg )
|
||||
|
||||
LOCAL aErrorCodes := { ;
|
||||
{ SQLITE_ERROR, "SQLITE_ERROR", "SQL error or missing database" }, ;
|
||||
{ SQLITE_INTERNAL, "SQLITE_INTERNAL", "NOT USED. Internal logic error in SQLite" }, ;
|
||||
{ SQLITE_PERM, "SQLITE_PERM", "Access permission denied" }, ;
|
||||
{ SQLITE_ABORT, "SQLITE_ABORT", "Callback routine requested an abort" }, ;
|
||||
{ SQLITE_BUSY, "SQLITE_BUSY", "The database file is locked" }, ;
|
||||
{ SQLITE_LOCKED, "SQLITE_LOCKED", "A table in the database is locked" }, ;
|
||||
{ SQLITE_NOMEM, "SQLITE_NOMEM", "A malloc() failed" }, ;
|
||||
{ SQLITE_READONLY, "SQLITE_READONLY", "Attempt to write a readonly database" }, ;
|
||||
{ SQLITE_INTERRUPT, "SQLITE_INTERRUPT", "Operation terminated by sqlite3_interrupt()" }, ;
|
||||
{ SQLITE_IOERR, "SQLITE_IOERR", "Some kind of disk I/O error occurred" }, ;
|
||||
{ SQLITE_CORRUPT, "SQLITE_CORRUPT", "The database disk image is malformed" }, ;
|
||||
{ SQLITE_NOTFOUND, "SQLITE_NOTFOUND", "NOT USED. Table or record not found" }, ;
|
||||
{ SQLITE_FULL, "SQLITE_FULL", "Insertion failed because database is full" }, ;
|
||||
{ SQLITE_CANTOPEN, "SQLITE_CANTOPEN", "Unable to open the database file" }, ;
|
||||
{ SQLITE_PROTOCOL, "SQLITE_PROTOCOL", "NOT USED. Database lock protocol error" }, ;
|
||||
{ SQLITE_EMPTY, "SQLITE_EMPTY", "Database is empty" }, ;
|
||||
{ SQLITE_SCHEMA, "SQLITE_SCHEMA", "The database schema changed" }, ;
|
||||
{ SQLITE_TOOBIG, "SQLITE_TOOBIG", "String or BLOB exceeds size limit" }, ;
|
||||
{ SQLITE_CONSTRAINT, "SQLITE_CONSTRAINT", "Abort due to constraint violation" }, ;
|
||||
{ SQLITE_MISMATCH, "SQLITE_MISMATCH", "Data type mismatch" }, ;
|
||||
{ SQLITE_MISUSE, "SQLITE_MISUSE", "Library used incorrectly" }, ;
|
||||
{ SQLITE_NOLFS, "SQLITE_NOLFS", "Uses OS features not supported on host" }, ;
|
||||
{ SQLITE_AUTH, "SQLITE_AUTH", "Authorization denied" }, ;
|
||||
{ SQLITE_FORMAT, "SQLITE_FORMAT", "Auxiliary database format error" }, ;
|
||||
{ SQLITE_RANGE, "SQLITE_RANGE", "2nd parameter to sqlite3_bind out of range" }, ;
|
||||
{ SQLITE_NOTADB, "SQLITE_NOTADB", "File opened that is not a database file" }, ;
|
||||
{ SQLITE_ROW, "SQLITE_ROW", "sqlite3_step() has another row ready" }, ;
|
||||
{ SQLITE_DONE, "SQLITE_DONE", "sqlite3_step() has finished executing" } ;
|
||||
}, nIndex, cErrorMsg := "UNKNOWN"
|
||||
|
||||
hb_default( @lShortMsg, .T. )
|
||||
|
||||
IF HB_ISNUMERIC( nError )
|
||||
IF nError == 0
|
||||
cErrorMsg := "SQLITE_OK"
|
||||
ELSE
|
||||
nIndex := AScan( aErrorCodes, {| x | x[ 1 ] == nError } )
|
||||
cErrorMsg := iif( nIndex > 0, aErrorCodes[ nIndex ][ iif( lShortMsg, 2, 3 ) ], cErrorMsg )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN cErrorMsg
|
||||
RETURN iif( lShortMsg, hb_sqlite3_errstr_short( nError ), sqlite3_errstr( nError ) )
|
||||
|
||||
/**
|
||||
*/
|
||||
|
||||
STATIC FUNCTION PrepareDB( cFile )
|
||||
|
||||
LOCAL cSQLTEXT, cMsg
|
||||
LOCAL cSQLTEXT
|
||||
LOCAL pDb, pStmt
|
||||
LOCAL hPerson := { ;
|
||||
"Bob" => 52, ;
|
||||
@@ -239,9 +201,7 @@ STATIC FUNCTION PrepareDB( cFile )
|
||||
ENDIF
|
||||
|
||||
cSQLTEXT := "CREATE TABLE person( name TEXT, age INTEGER, pasw TEXT(32) )"
|
||||
cMsg := cErrorMsg( sqlite3_exec( pDb, cSQLTEXT ) )
|
||||
|
||||
IF !( cMsg == "SQLITE_OK" )
|
||||
IF sqlite3_exec( pDb, cSQLTEXT ) != SQLITE_OK
|
||||
? "Can't create table : person"
|
||||
pDb := NIL // close database
|
||||
|
||||
|
||||
@@ -141,56 +141,16 @@ FUNCTION CallBack( nColCount, aValue, aColName )
|
||||
|
||||
STATIC FUNCTION cErrorMsg( nError, lShortMsg )
|
||||
|
||||
LOCAL aErrorCodes := { ;
|
||||
{ SQLITE_ERROR, "SQLITE_ERROR", "SQL error or missing database" }, ;
|
||||
{ SQLITE_INTERNAL, "SQLITE_INTERNAL", "NOT USED. Internal logic error in SQLite" }, ;
|
||||
{ SQLITE_PERM, "SQLITE_PERM", "Access permission denied" }, ;
|
||||
{ SQLITE_ABORT, "SQLITE_ABORT", "Callback routine requested an abort" }, ;
|
||||
{ SQLITE_BUSY, "SQLITE_BUSY", "The database file is locked" }, ;
|
||||
{ SQLITE_LOCKED, "SQLITE_LOCKED", "A table in the database is locked" }, ;
|
||||
{ SQLITE_NOMEM, "SQLITE_NOMEM", "A malloc() failed" }, ;
|
||||
{ SQLITE_READONLY, "SQLITE_READONLY", "Attempt to write a readonly database" }, ;
|
||||
{ SQLITE_INTERRUPT, "SQLITE_INTERRUPT", "Operation terminated by sqlite3_interrupt()" }, ;
|
||||
{ SQLITE_IOERR, "SQLITE_IOERR", "Some kind of disk I/O error occurred" }, ;
|
||||
{ SQLITE_CORRUPT, "SQLITE_CORRUPT", "The database disk image is malformed" }, ;
|
||||
{ SQLITE_NOTFOUND, "SQLITE_NOTFOUND", "NOT USED. Table or record not found" }, ;
|
||||
{ SQLITE_FULL, "SQLITE_FULL", "Insertion failed because database is full" }, ;
|
||||
{ SQLITE_CANTOPEN, "SQLITE_CANTOPEN", "Unable to open the database file" }, ;
|
||||
{ SQLITE_PROTOCOL, "SQLITE_PROTOCOL", "NOT USED. Database lock protocol error" }, ;
|
||||
{ SQLITE_EMPTY, "SQLITE_EMPTY", "Database is empty" }, ;
|
||||
{ SQLITE_SCHEMA, "SQLITE_SCHEMA", "The database schema changed" }, ;
|
||||
{ SQLITE_TOOBIG, "SQLITE_TOOBIG", "String or BLOB exceeds size limit" }, ;
|
||||
{ SQLITE_CONSTRAINT, "SQLITE_CONSTRAINT", "Abort due to constraint violation" }, ;
|
||||
{ SQLITE_MISMATCH, "SQLITE_MISMATCH", "Data type mismatch" }, ;
|
||||
{ SQLITE_MISUSE, "SQLITE_MISUSE", "Library used incorrectly" }, ;
|
||||
{ SQLITE_NOLFS, "SQLITE_NOLFS", "Uses OS features not supported on host" }, ;
|
||||
{ SQLITE_AUTH, "SQLITE_AUTH", "Authorization denied" }, ;
|
||||
{ SQLITE_FORMAT, "SQLITE_FORMAT", "Auxiliary database format error" }, ;
|
||||
{ SQLITE_RANGE, "SQLITE_RANGE", "2nd parameter to sqlite3_bind out of range" }, ;
|
||||
{ SQLITE_NOTADB, "SQLITE_NOTADB", "File opened that is not a database file" }, ;
|
||||
{ SQLITE_ROW, "SQLITE_ROW", "sqlite3_step() has another row ready" }, ;
|
||||
{ SQLITE_DONE, "SQLITE_DONE", "sqlite3_step() has finished executing" } ;
|
||||
}, nIndex, cErrorMsg := "UNKNOWN"
|
||||
|
||||
hb_default( @lShortMsg, .T. )
|
||||
|
||||
IF HB_ISNUMERIC( nError )
|
||||
IF nError == 0
|
||||
cErrorMsg := "SQLITE_OK"
|
||||
ELSE
|
||||
nIndex := AScan( aErrorCodes, {| x | x[ 1 ] == nError } )
|
||||
cErrorMsg := iif( nIndex > 0, aErrorCodes[ nIndex ][ iif( lShortMsg, 2, 3 ) ], cErrorMsg )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN cErrorMsg
|
||||
RETURN iif( lShortMsg, hb_sqlite3_errstr_short( nError ), sqlite3_errstr( nError ) )
|
||||
|
||||
/**
|
||||
*/
|
||||
|
||||
STATIC FUNCTION PrepareDB( cFile )
|
||||
|
||||
LOCAL cSQLTEXT, cMsg
|
||||
LOCAL cSQLTEXT
|
||||
LOCAL pDb, pStmt
|
||||
LOCAL hPerson := { ;
|
||||
"Bob" => 52, ;
|
||||
@@ -210,9 +170,7 @@ STATIC FUNCTION PrepareDB( cFile )
|
||||
sqlite3_trace( pDb, .T., "backup.log" )
|
||||
|
||||
cSQLTEXT := "CREATE TABLE person( name TEXT, age INTEGER )"
|
||||
cMsg := cErrorMsg( sqlite3_exec( pDb, cSQLTEXT ) )
|
||||
|
||||
IF !( cMsg == "SQLITE_OK" )
|
||||
IF sqlite3_exec( pDb, cSQLTEXT ) != SQLITE_OK
|
||||
? "Can't create table : person"
|
||||
pDb := NIL // close database
|
||||
|
||||
|
||||
@@ -156,52 +156,11 @@ FUNCTION HookRollback()
|
||||
|
||||
/**
|
||||
*/
|
||||
|
||||
STATIC FUNCTION cErrorMsg( nError, lShortMsg )
|
||||
|
||||
LOCAL aErrorCodes := { ;
|
||||
{ SQLITE_ERROR, "SQLITE_ERROR", "SQL error or missing database" }, ;
|
||||
{ SQLITE_INTERNAL, "SQLITE_INTERNAL", "NOT USED. Internal logic error in SQLite" }, ;
|
||||
{ SQLITE_PERM, "SQLITE_PERM", "Access permission denied" }, ;
|
||||
{ SQLITE_ABORT, "SQLITE_ABORT", "Callback routine requested an abort" }, ;
|
||||
{ SQLITE_BUSY, "SQLITE_BUSY", "The database file is locked" }, ;
|
||||
{ SQLITE_LOCKED, "SQLITE_LOCKED", "A table in the database is locked" }, ;
|
||||
{ SQLITE_NOMEM, "SQLITE_NOMEM", "A malloc() failed" }, ;
|
||||
{ SQLITE_READONLY, "SQLITE_READONLY", "Attempt to write a readonly database" }, ;
|
||||
{ SQLITE_INTERRUPT, "SQLITE_INTERRUPT", "Operation terminated by sqlite3_interrupt()" }, ;
|
||||
{ SQLITE_IOERR, "SQLITE_IOERR", "Some kind of disk I/O error occurred" }, ;
|
||||
{ SQLITE_CORRUPT, "SQLITE_CORRUPT", "The database disk image is malformed" }, ;
|
||||
{ SQLITE_NOTFOUND, "SQLITE_NOTFOUND", "NOT USED. Table or record not found" }, ;
|
||||
{ SQLITE_FULL, "SQLITE_FULL", "Insertion failed because database is full" }, ;
|
||||
{ SQLITE_CANTOPEN, "SQLITE_CANTOPEN", "Unable to open the database file" }, ;
|
||||
{ SQLITE_PROTOCOL, "SQLITE_PROTOCOL", "NOT USED. Database lock protocol error" }, ;
|
||||
{ SQLITE_EMPTY, "SQLITE_EMPTY", "Database is empty" }, ;
|
||||
{ SQLITE_SCHEMA, "SQLITE_SCHEMA", "The database schema changed" }, ;
|
||||
{ SQLITE_TOOBIG, "SQLITE_TOOBIG", "String or BLOB exceeds size limit" }, ;
|
||||
{ SQLITE_CONSTRAINT, "SQLITE_CONSTRAINT", "Abort due to constraint violation" }, ;
|
||||
{ SQLITE_MISMATCH, "SQLITE_MISMATCH", "Data type mismatch" }, ;
|
||||
{ SQLITE_MISUSE, "SQLITE_MISUSE", "Library used incorrectly" }, ;
|
||||
{ SQLITE_NOLFS, "SQLITE_NOLFS", "Uses OS features not supported on host" }, ;
|
||||
{ SQLITE_AUTH, "SQLITE_AUTH", "Authorization denied" }, ;
|
||||
{ SQLITE_FORMAT, "SQLITE_FORMAT", "Auxiliary database format error" }, ;
|
||||
{ SQLITE_RANGE, "SQLITE_RANGE", "2nd parameter to sqlite3_bind out of range" }, ;
|
||||
{ SQLITE_NOTADB, "SQLITE_NOTADB", "File opened that is not a database file" }, ;
|
||||
{ SQLITE_ROW, "SQLITE_ROW", "sqlite3_step() has another row ready" }, ;
|
||||
{ SQLITE_DONE, "SQLITE_DONE", "sqlite3_step() has finished executing" } ;
|
||||
}, nIndex, cErrorMsg := "UNKNOWN"
|
||||
|
||||
hb_default( @lShortMsg, .T. )
|
||||
|
||||
IF HB_ISNUMERIC( nError )
|
||||
IF nError == 0
|
||||
cErrorMsg := "SQLITE_OK"
|
||||
ELSE
|
||||
nIndex := AScan( aErrorCodes, {| x | x[ 1 ] == nError } )
|
||||
cErrorMsg := iif( nIndex > 0, aErrorCodes[ nIndex ][ iif( lShortMsg, 2, 3 ) ], cErrorMsg )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN cErrorMsg
|
||||
RETURN iif( lShortMsg, hb_sqlite3_errstr_short( nError ), sqlite3_errstr( nError ) )
|
||||
|
||||
/**
|
||||
*/
|
||||
|
||||
@@ -57,11 +57,9 @@ PROCEDURE Main( cUrl, cFile )
|
||||
LOCAL oUrl, oClient
|
||||
LOCAL cData
|
||||
|
||||
SetColor( "w+/b" )
|
||||
CLS
|
||||
@ 1, 6 SAY "X H A R B O U R - TIP (class based internet client protocol) test"
|
||||
|
||||
|
||||
IF Empty( cUrl )
|
||||
@ 4, 5 SAY "USAGE: tipTest <URI> [dumpToOrFromFileName]"
|
||||
Terminate()
|
||||
|
||||
@@ -568,33 +568,8 @@ STATIC FUNCTION call_hbmk2( cProjectPath, cOptionsPre, cDynSuffix, cStdErr, cStd
|
||||
nErrorLevel := mk_hb_processRun( cCommand )
|
||||
ENDIF
|
||||
|
||||
IF nErrorLevel != 0
|
||||
OutStd( hb_StrFormat( "! '%1$s' returned status: %2$d '%3$s'", cProjectPath, nErrorLevel, hbmk2_errorstr( nErrorLevel ) ) + hb_eol() )
|
||||
ENDIF
|
||||
|
||||
RETURN nErrorLevel
|
||||
|
||||
STATIC FUNCTION hbmk2_errorstr( nErrorLevel )
|
||||
|
||||
SWITCH nErrorLevel
|
||||
CASE 0 ; RETURN "no error"
|
||||
CASE 1 ; RETURN "unknown platform"
|
||||
CASE 2 ; RETURN "unknown compiler"
|
||||
CASE 3 ; RETURN "failed Harbour detection"
|
||||
CASE 5 ; RETURN "failed stub creation"
|
||||
CASE 6 ; RETURN "failed in compilation"
|
||||
CASE 7 ; RETURN "failed in final assembly"
|
||||
CASE 8 ; RETURN "unsupported"
|
||||
CASE 9 ; RETURN "failed to create working directory"
|
||||
CASE 19 ; RETURN "help"
|
||||
CASE 10 ; RETURN "dependency missing or disabled"
|
||||
CASE 20 ; RETURN "plugin initialization"
|
||||
CASE 30 ; RETURN "too deep nesting"
|
||||
CASE 50 ; RETURN "stop requested"
|
||||
ENDSWITCH
|
||||
|
||||
RETURN "unknown"
|
||||
|
||||
STATIC FUNCTION mk_hb_processRun( cCommand, ... )
|
||||
|
||||
OutStd( cCommand + hb_eol() )
|
||||
|
||||
@@ -810,7 +810,7 @@ DYNAMIC hb_StrToExp
|
||||
DYNAMIC hb_StrToHex
|
||||
DYNAMIC hb_StrToTS
|
||||
DYNAMIC hb_StrToUTF8
|
||||
DYNAMIC hb_StrXChg
|
||||
DYNAMIC hb_StrReplace
|
||||
DYNAMIC hb_StrXor
|
||||
DYNAMIC hb_threadDetach
|
||||
DYNAMIC hb_threadID
|
||||
|
||||
@@ -447,7 +447,6 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_bindir}/hbi18n
|
||||
%{_bindir}/hbmk2
|
||||
%{_bindir}/hbmk2.*.hbl
|
||||
%{_bindir}/find.hb
|
||||
%{_bindir}/contrib.hbr
|
||||
%{_mandir}/man1/*.1*
|
||||
%dir %{_includedir}/%{name}
|
||||
|
||||
@@ -1629,6 +1629,15 @@ static int hb_pp_tokenStr( PHB_PP_TOKEN pToken, PHB_MEM_BUFFER pBuffer,
|
||||
case '\b':
|
||||
iq = ch = 'b';
|
||||
break;
|
||||
case '\f':
|
||||
iq = ch = 'f';
|
||||
break;
|
||||
case '\v':
|
||||
iq = ch = 'v';
|
||||
break;
|
||||
case '\a':
|
||||
iq = ch = 'a';
|
||||
break;
|
||||
case '\0':
|
||||
iq = ch = '0';
|
||||
break;
|
||||
|
||||
@@ -182,9 +182,9 @@ C_SOURCES := \
|
||||
strcase.c \
|
||||
strclear.c \
|
||||
strmatch.c \
|
||||
strrepl.c \
|
||||
strtoexp.c \
|
||||
strtran.c \
|
||||
strxchg.c \
|
||||
strxor.c \
|
||||
strzero.c \
|
||||
stuff.c \
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* HB_STRXCHG()
|
||||
* HB_STRREPLACE()
|
||||
*
|
||||
* Copyright 2013 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
* www - http://harbour-project.org
|
||||
@@ -54,10 +54,10 @@
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapierr.h"
|
||||
|
||||
/* hb_strXChg( <cString>, <cSource> | <acSource>, [ <cDest> | <acDest> ] )
|
||||
/* hb_StrReplace( <cString>, [ <cSource> | <acSource> | <hReplace> ], [ <cDest> | <acDest> ] )
|
||||
* -> <cResult>
|
||||
*/
|
||||
HB_FUNC( HB_STRXCHG )
|
||||
HB_FUNC( HB_STRREPLACE )
|
||||
{
|
||||
PHB_ITEM pText = hb_param( 1, HB_IT_STRING );
|
||||
PHB_ITEM pSrc = hb_param( 2, HB_IT_STRING | HB_IT_ARRAY |
|
||||
@@ -1326,7 +1326,7 @@ METHOD unTransform() CLASS Get
|
||||
|
||||
cBuffer := StrTran( cBuffer, Chr( 1 ) )
|
||||
|
||||
cBuffer := hb_StrXChg( cBuffer, ;
|
||||
cBuffer := hb_StrReplace( cBuffer, ;
|
||||
"$*-()", ;
|
||||
" " )
|
||||
|
||||
|
||||
@@ -293,7 +293,7 @@ msgstr "Advertencia: No se puede eliminar destino existente '%1$s'."
|
||||
|
||||
#: hbmk2.prg:7960 hbmk2.prg:11650 hbmk2.prg:13120
|
||||
#, c-format
|
||||
msgid "Certain .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_dir}, ${hb_dirname}, ${hb_name}, ${hb_self}, ${hb_curdir}, ${hb_tempdir}, ${hb_targetname}, ${hb_targettype}, ${hb_plat}, ${hb_comp}, ${hb_comp_ver}, ${hb_build}, ${hb_cpu}, ${hb_work}, ${hb_workdynsub}, ${hb_dynprefix}, ${hb_dynsuffix}, ${hb_dynext}, ${hb_ver}, ${hb_verstr}, ${hb_major}, ${hb_minor}, ${hb_release}, ${hb_status}, ${hb_revision}, ${hb_host_plat}, ${hb_host_plat_unix}, ${hb_bin}, ${hb_lib}, ${hb_lib3rd}, ${hb_dyn}, ${hb_inc}, ${hb_first}, ${hb_outputdir}, ${hb_outputname}, ${hb_level}, ${<envvar>}. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search."
|
||||
msgid "Most .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_dir}, ${hb_dirname}, ${hb_name}, ${hb_self}, ${hb_curdir}, ${hb_tempdir}, ${hb_targetname}, ${hb_targettype}, ${hb_plat}, ${hb_comp}, ${hb_comp_ver}, ${hb_build}, ${hb_cpu}, ${hb_work}, ${hb_workdynsub}, ${hb_dynprefix}, ${hb_dynsuffix}, ${hb_dynext}, ${hb_ver}, ${hb_verstr}, ${hb_major}, ${hb_minor}, ${hb_release}, ${hb_status}, ${hb_revision}, ${hb_host_plat}, ${hb_host_plat_unix}, ${hb_bin}, ${hb_lib}, ${hb_lib3rd}, ${hb_dyn}, ${hb_inc}, ${hb_first}, ${hb_outputdir}, ${hb_outputname}, ${hb_level}, ${<envvar>}. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search."
|
||||
msgstr "Algunas opciones del archivo .hbc (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) y sus correspondientes parámetros de línea de comando aceptan las siguientes macros: ${hb_root}, ${hb_dir}, ${hb_dirname}, ${hb_name}, ${hb_self}, ${hb_curdir}, ${hb_tempdir}, ${hb_targetname}, ${hb_targettype}, ${hb_plat}, ${hb_comp}, ${hb_comp_ver}, ${hb_build}, ${hb_cpu}, ${hb_work}, ${hb_workdynsub}, ${hb_dynprefix}, ${hb_dynsuffix}, ${hb_dynext}, ${hb_ver}, ${hb_verstr}, ${hb_major}, ${hb_minor}, ${hb_release}, ${hb_status}, ${hb_revision}, ${hb_host_plat}, ${hb_host_plat_unix}, ${hb_bin}, ${hb_lib}, ${hb_lib3rd}, ${hb_dyn}, ${hb_inc}, ${hb_first}, ${hb_outputdir}, ${hb_outputname}, ${hb_level}, ${<envvar>}. libpaths= tambien acepta %{hb_name} que se traduce en el nombre del archivo. hbc bajo búsqueda."
|
||||
|
||||
#: hbmk2.prg:4258 hbmk2.prg:5785 hbmk2.prg:6364
|
||||
@@ -458,7 +458,7 @@ msgstr "directorio de trabajo para el modo de compilación incremental\n(default
|
||||
|
||||
#: hbmk2.prg:7942 hbmk2.prg:11633 hbmk2.prg:13102
|
||||
#, c-format
|
||||
msgid "compress executable/dynamic lib (needs UPX)\n<lev> can be: yes, no, min, max"
|
||||
msgid "compress executable/dynamic lib (needs UPX tool)\n<lev> can be: yes, no, min, max"
|
||||
msgstr "comprime executable/librería dinamica (necesita UPX)\n<lev> puede ser: yes, no, min, max"
|
||||
|
||||
#: hbmk2.prg:7960 hbmk2.prg:11650 hbmk2.prg:13120
|
||||
|
||||
@@ -109,7 +109,7 @@ msgstr "Figyelem: C/C++ fordító parancsállománya ne hozható létre, folytat
|
||||
|
||||
#: hbmk2.prg:7941 hbmk2.prg:11633 hbmk2.prg:13102
|
||||
#, c-format
|
||||
msgid "compress executable/dynamic lib (needs UPX)\n<lev> can be: yes, no, min, max"
|
||||
msgid "compress executable/dynamic lib (needs UPX tool)\n<lev> can be: yes, no, min, max"
|
||||
msgstr "tömörítse a végeredményt (UPX szükséges)\n<lev> lehet: yes, no, min, max"
|
||||
|
||||
#: hbmk2.prg:7941 hbmk2.prg:11633 hbmk2.prg:13102
|
||||
@@ -984,8 +984,8 @@ msgstr "GUI/konzol alkalmazás létrehozása"
|
||||
|
||||
#: hbmk2.prg:7959 hbmk2.prg:11650 hbmk2.prg:13120
|
||||
#, c-format
|
||||
msgid "Certain .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) and corresponding command line parameters will accept macro variables. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search."
|
||||
msgstr "Számos .hbc opcióban és parancssori megfelelőikben (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) használhatók makró változókat. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search."
|
||||
msgid "Most .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) and corresponding command line parameters will accept macro variables. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search."
|
||||
msgstr "A legtöbb .hbc opcióban és parancssori megfelelőikben (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) használhatók makró változókat. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search."
|
||||
|
||||
#: hbmk2.prg:7941 hbmk2.prg:11633 hbmk2.prg:13102
|
||||
#, c-format
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -293,7 +293,7 @@ msgstr "Atenção: Não foi possível excluir o alvo '%1$s'."
|
||||
|
||||
#: hbmk2.prg:7960 hbmk2.prg:11650 hbmk2.prg:13120
|
||||
#, c-format
|
||||
msgid "Certain .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_dir}, ${hb_dirname}, ${hb_name}, ${hb_self}, ${hb_curdir}, ${hb_tempdir}, ${hb_targetname}, ${hb_targettype}, ${hb_plat}, ${hb_comp}, ${hb_comp_ver}, ${hb_build}, ${hb_cpu}, ${hb_work}, ${hb_workdynsub}, ${hb_dynprefix}, ${hb_dynsuffix}, ${hb_dynext}, ${hb_ver}, ${hb_verstr}, ${hb_major}, ${hb_minor}, ${hb_release}, ${hb_status}, ${hb_revision}, ${hb_host_plat}, ${hb_host_plat_unix}, ${hb_bin}, ${hb_lib}, ${hb_lib3rd}, ${hb_dyn}, ${hb_inc}, ${hb_first}, ${hb_outputdir}, ${hb_outputname}, ${hb_level}, ${<envvar>}. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search."
|
||||
msgid "Most .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_dir}, ${hb_dirname}, ${hb_name}, ${hb_self}, ${hb_curdir}, ${hb_tempdir}, ${hb_targetname}, ${hb_targettype}, ${hb_plat}, ${hb_comp}, ${hb_comp_ver}, ${hb_build}, ${hb_cpu}, ${hb_work}, ${hb_workdynsub}, ${hb_dynprefix}, ${hb_dynsuffix}, ${hb_dynext}, ${hb_ver}, ${hb_verstr}, ${hb_major}, ${hb_minor}, ${hb_release}, ${hb_status}, ${hb_revision}, ${hb_host_plat}, ${hb_host_plat_unix}, ${hb_bin}, ${hb_lib}, ${hb_lib3rd}, ${hb_dyn}, ${hb_inc}, ${hb_first}, ${hb_outputdir}, ${hb_outputname}, ${hb_level}, ${<envvar>}. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search."
|
||||
msgstr "Algumas opções do .hbc (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) e seus correspondentes parâmetros de linha-de-comando aceitam as seguintes macros: ${hb_root}, ${hb_dir}, ${hb_dirname}, ${hb_name}, ${hb_self}, ${hb_curdir}, ${hb_tempdir}, ${hb_targetname}, ${hb_targettype}, ${hb_plat}, ${hb_comp}, ${hb_comp_ver}, ${hb_build}, ${hb_cpu}, ${hb_work}, ${hb_workdynsub}, ${hb_dynprefix}, ${hb_dynsuffix}, ${hb_dynext}, ${hb_ver}, ${hb_verstr}, ${hb_major}, ${hb_minor}, ${hb_release}, ${hb_status}, ${hb_revision}, ${hb_host_plat}, ${hb_host_plat_unix}, ${hb_bin}, ${hb_lib}, ${hb_lib3rd}, ${hb_dyn}, ${hb_inc}, ${hb_first}, ${hb_outputdir}, ${hb_outputname}, ${hb_level}, ${<envvar>}. libpaths= também aceitam %{hb_name} que se traduz como o nome do arquivo .hbc sob pesquisa."
|
||||
|
||||
#: hbmk2.prg:4258 hbmk2.prg:5785 hbmk2.prg:6364
|
||||
@@ -458,7 +458,7 @@ msgstr "diretório de trabalho para o modo de compilação incremental\n(default
|
||||
|
||||
#: hbmk2.prg:7942 hbmk2.prg:11633 hbmk2.prg:13102
|
||||
#, c-format
|
||||
msgid "compress executable/dynamic lib (needs UPX)\n<lev> can be: yes, no, min, max"
|
||||
msgid "compress executable/dynamic lib (needs UPX tool)\n<lev> can be: yes, no, min, max"
|
||||
msgstr "comprime o executável/biblioteca dinânica (necessita de UPX)\n<lev> pode ser: yes, no, min, max"
|
||||
|
||||
#: hbmk2.prg:7960 hbmk2.prg:11650 hbmk2.prg:13120
|
||||
|
||||
Reference in New Issue
Block a user