* include/harbour.hbx
* include/hbchksum.h
* src/harbour.def
* src/rtl/hbmd5.c
+ added new C function
void hb_hmac_md5( const void * key, HB_SIZE nKeyLen,
const void * message, HB_SIZE nMsgLen,
char * digest );
+ added new PRG function
HB_HMAC_MD5( <cMessage>, <cKey> ) -> <cMAC>
; HMAC MD5 is used in some authentication methods i.e. CRAM-MD5
authentication in SMTP protocol
* src/rtl/gttrm/gttrm.c
+ enable extended XTERM colors automatically when xterm-16color,
xterm-256color, xterm+256color, xterm-88color, rxvt-16color,
rxvt-256color, rxvt-98color or putty terminal is detected
+ added support for HB_GTI_SCREENDEPTH
* contrib/gtqtc/gtqtc1.cpp
+ set clipboard data also into selection buffer on platforms which
support it
+ when main clipboard buffer is empty retrieve clipboard data from
selection buffer and if it's empty too from find buffer
* include/harbour.hbx
* src/harbour.def
* src/vm/memvars.c
+ added new PRG function
__mvGetDef( <cMemvar> [, <xDefault> ] ) -> <xValue>
it works in similar way to __mvGet() but if <cMemvar> does
not exist then it returns <xDefault> or NIL instead of RTE
* contrib/hbwin/hbwin.hbx
+ added missing declarations for win_osIs10() and win_osIs81()
* contrib/hbssl/ssl.c
! fixed compilation with OpenSSL < 0.9.8k
* contrib/sddodbc/core.c
* pacified warning
* contrib/xhb/hbxml.c
* contrib/xhb/hbxml.h
! fixed CDATA terminator, it should be "]]>" instead of " ]]>"
+ added support for HBXML_STYLE_NONEWLINE flag
* src/3rd/pcre/Makefile
! typo wince -> wce
* src/main/Makefile
* use harbour.rc only in MS-Windows builds - it fixes OS2 OpenWatcom
builds
* config/global.mk
! in DOS builds check if the 'uname' exists before running it
* include/hbapigt.h
* include/hbgtcore.h
* src/rtl/hbgtcore.c
* src/rtl/inkey.c
* src/rtl/inkeyapi.c
* contrib/xhb/xhbfunc.c
+ added 3-rd parameter to hb_inkeySetText() function. When this parameter
is true then ';' is not translated to Chr( 13 ) but DOS and UNIX EOLs
are translated to Chr( 13 )
+ added logical parameter to HB_GTI_CLIPBOARDPASTE which allows to set
text without ';' translation but with platform independent EOLs
* src/rtl/memoedit.prg
* utils/hbmk2/hbmk2.prg
* contrib/hbnetio/utils/hbnetio/_console.prg
* extras/dbu/dbu52.patch
* extras/dbu/dbu53.patch
* use hb_gtInfo( HB_GTI_CLIPBOARDPASTE, .T. ) instead of
hb_gtInfo( HB_GTI_CLIPBOARDPASTE ) for pasting data from clipboard
with platform independent EOLs and ';' characters
726 lines
23 KiB
Diff
726 lines
23 KiB
Diff
diff -u dbu53ori/dbu.prg dbu53pat/dbu.prg
|
||
--- dbu53ori/dbu.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbu.prg 2013-03-02 02:00:36.000000000 +0100
|
||
@@ -9,8 +9,10 @@
|
||
*
|
||
***/
|
||
|
||
-#include "Inkey.Ch"
|
||
-#include "Set.Ch"
|
||
+#include "hbgtinfo.ch"
|
||
+#include "hbextcdp.ch"
|
||
+#include "inkey.ch"
|
||
+#include "set.ch"
|
||
|
||
// Uncomment to update the obsolete declaration:
|
||
#xtranslate DECLARE => PRIVATE
|
||
@@ -71,6 +73,14 @@
|
||
SET SCOREBOARD OFF // who's keeping score, anyhow
|
||
SET KEY 28 TO // some folks need help
|
||
|
||
+ Set( _SET_DATEFORMAT, "yyyy-mm-dd" )
|
||
+
|
||
+ IF "-utf" $ Lower( hb_cmdLine() )
|
||
+ hb_cdpSelect( "UTF8EX" )
|
||
+ hb_gtInfo( HB_GTI_BOXCP, "UTF8EX" )
|
||
+ ENDIF
|
||
+ SetKey( K_ALT_V, {|| hb_gtInfo( HB_GTI_CLIPBOARDPASTE, .T. ) } )
|
||
+
|
||
IF (ISCOLOR() .OR. "/C" $ UPPER(param2)) .AND. .NOT. "/M" $ UPPER(param2)
|
||
// make it pretty
|
||
color1 := "W+/B,N/W,B" // normal
|
||
@@ -110,10 +120,10 @@
|
||
// system constants
|
||
more_up := CHR(24) // visual up arrow
|
||
more_down := CHR(25) // visual down arrow
|
||
- frame := "Õ͸³¾ÍÔ³" // box characters
|
||
- lframe := "Ñ͸³¾Íϳ"
|
||
- mframe := "ÂijÙÄÀ³"
|
||
- sframe := "ÚÄ¿³ÙÄÀ³"
|
||
+ frame := hb_UTF8ToStr( "â•’â•<C3A2>╕│╛â•<C3A2>╘│" ) // box characters
|
||
+ lframe := hb_UTF8ToStr( "╤â•<C3A2>╕│╛â•<C3A2>╧│" )
|
||
+ mframe := hb_UTF8ToStr( "┬─┬│┘─└│" )
|
||
+ sframe := hb_UTF8ToStr( "┌─â”<C3A2>│┘─└│" )
|
||
|
||
// global variables
|
||
STORE .F. TO need_field,need_ntx,need_relat,need_filtr,box_open
|
||
@@ -264,7 +274,7 @@
|
||
@ 0,0 SAY " F1 F2 F3 F4 F5 F6 " +;
|
||
"F7 F8 "
|
||
show_keys()
|
||
- @ 2,0 SAY REPLICATE("Ä", 80)
|
||
+ @ 2,0 SAY REPLICATE(hb_UTF8ToStr( "─" ), 80)
|
||
error_msg(view_err)
|
||
|
||
// when to bubble up
|
||
@@ -360,14 +370,14 @@
|
||
help_title[22] := "REPLACE"
|
||
|
||
// arrays for file names in default directory
|
||
- DECLARE dbf_list[adir("*.DBF") + 20] // directory of data files
|
||
+ DECLARE dbf_list[adir("*.dbf") + 20] // directory of data files
|
||
DECLARE ntx_list[adir("*" + INDEXEXT()) + 20] // directory of index files
|
||
- DECLARE vew_list[adir("*.VEW") + 20] // directory of view files
|
||
+ DECLARE vew_list[adir("*.vew") + 20] // directory of view files
|
||
|
||
// fill the arrays with filenames
|
||
- array_dir("*.DBF",dbf_list)
|
||
+ array_dir("*.dbf",dbf_list)
|
||
array_dir("*" + INDEXEXT(),ntx_list)
|
||
- array_dir("*.VEW",vew_list)
|
||
+ array_dir("*.vew",vew_list)
|
||
|
||
// default to set view
|
||
local_func := 0 // local menu
|
||
@@ -384,7 +394,7 @@
|
||
|
||
DO CASE
|
||
|
||
- CASE RAT(".", com_line) > RAT("\", com_line)
|
||
+ CASE RAT(".", com_line) > RAT(hb_ps(), com_line)
|
||
// file extension entered
|
||
IF !( FILE( com_line ) )
|
||
// file must exist
|
||
@@ -392,13 +402,13 @@
|
||
|
||
ENDIF
|
||
|
||
- CASE FILE(com_line + ".VEW")
|
||
+ CASE FILE(com_line + ".vew")
|
||
// look for file name with .VEW extension
|
||
- com_line := com_line + ".VEW"
|
||
+ com_line := com_line + ".vew"
|
||
|
||
- CASE FILE(com_line + ".DBF")
|
||
+ CASE FILE(com_line + ".dbf")
|
||
// look for file name with .DBF extension
|
||
- com_line := com_line + ".DBF"
|
||
+ com_line := com_line + ".dbf"
|
||
|
||
OTHERWISE
|
||
// file not found..ignore command line
|
||
@@ -409,7 +419,7 @@
|
||
IF .NOT. EMPTY(com_line)
|
||
// command line file exists
|
||
|
||
- IF RAT(".VEW", com_line) = LEN(com_line) - 3
|
||
+ IF RAT(".vew", Lower(com_line)) = LEN(com_line) - 3
|
||
// assume a valid .VEW file
|
||
view_file := com_line
|
||
set_from(.F.) // restore view
|
||
@@ -678,8 +688,8 @@
|
||
@ 0,0 SAY " F1 F2 F3 F4 " +;
|
||
"F5 F6 F7 F8 "
|
||
show_keys()
|
||
- @ 2,0 SAY REPLICATE("Ä", 80)
|
||
- @ 24,0 SAY "Run Í" + CHR(16) + " "
|
||
+ @ 2,0 SAY REPLICATE(hb_UTF8ToStr( "─" ), 80)
|
||
+ @ 24,0 SAY "Run " + hb_UTF8ToStr( "â•<C3A2>â–º" ) + " "
|
||
|
||
// accept command entry
|
||
run_com := enter_rc(M->com_line,24,7,127,"@KS73",M->color1)
|
||
@@ -708,18 +718,18 @@
|
||
@ 3,0 CLEAR
|
||
|
||
// rebuild directory arrays..must keep current
|
||
- DECLARE dbf_list[adir("*.DBF") + 20]
|
||
+ DECLARE dbf_list[adir("*.dbf") + 20]
|
||
DECLARE ntx_list[adir("*" + INDEXEXT()) + 20]
|
||
- DECLARE vew_list[adir("*.VEW") + 20]
|
||
+ DECLARE vew_list[adir("*.vew") + 20]
|
||
|
||
// fill the arrays with filenames..data files
|
||
- array_dir("*.DBF",dbf_list)
|
||
+ array_dir("*.dbf",dbf_list)
|
||
|
||
// index files
|
||
array_dir("*" + INDEXEXT(),ntx_list)
|
||
|
||
// view files
|
||
- array_dir("*.VEW",vew_list)
|
||
+ array_dir("*.vew",vew_list)
|
||
cur_area := 0 // re-draw view screen
|
||
sysfunc := 0 // back to the main view screen
|
||
|
||
@@ -796,12 +806,12 @@
|
||
nPos := AT( ";", cPath )
|
||
|
||
// Account for backslash in path
|
||
- IF ( SUBSTR( cPath, nPos - 1, 1 ) == "\" )
|
||
+ IF ( SUBSTR( cPath, nPos - 1, 1 ) == hb_ps() )
|
||
cFile := SUBSTR( cPath, 1, ;
|
||
IIF( nPos == 0, LEN( cPath ), nPos - 1 ) ) + "dbu.hlp"
|
||
ELSE
|
||
cFile := SUBSTR( cPath, 1, ;
|
||
- IIF( nPos == 0, LEN( cPath ), nPos - 1 ) ) + "\dbu.hlp"
|
||
+ IIF( nPos == 0, LEN( cPath ), nPos - 1 ) ) + hb_ps() + "dbu.hlp"
|
||
ENDIF
|
||
|
||
IF FILE( cFile )
|
||
diff -u dbu53ori/dbucopy.prg dbu53pat/dbucopy.prg
|
||
--- dbu53ori/dbucopy.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbucopy.prg 2012-05-02 17:23:13.000000000 +0200
|
||
@@ -62,8 +62,8 @@
|
||
filename = ""
|
||
|
||
* only copy and append use a list of text files
|
||
- DECLARE txt_list[adir("*.TXT") + 20] && directory of text files
|
||
- array_dir("*.TXT",txt_list) && fill array with filenames
|
||
+ DECLARE txt_list[adir("*.txt") + 20] && directory of text files
|
||
+ array_dir("*.txt",txt_list) && fill array with filenames
|
||
|
||
* set up for multi-box
|
||
DECLARE boxarray[10]
|
||
@@ -104,7 +104,7 @@
|
||
|
||
* DBF for normal mode
|
||
files = "dbf_list"
|
||
- def_ext = ".DBF"
|
||
+ def_ext = ".dbf"
|
||
|
||
* when is a filename acceptable?
|
||
fi_done = "not_empty('filename')"
|
||
@@ -138,7 +138,7 @@
|
||
PARAMETERS sysparam
|
||
|
||
RETURN box_title(M->sysparam, "Copy " +;
|
||
- SUBSTR(M->cur_dbf, RAT("\", M->cur_dbf) + 1) +;
|
||
+ SUBSTR(M->cur_dbf, RAT(hb_ps(), M->cur_dbf) + 1) +;
|
||
" to...")
|
||
|
||
|
||
@@ -208,7 +208,7 @@
|
||
|
||
SELECT (M->cur_area)
|
||
|
||
- IF RAT(M->def_ext, M->filename) = LEN(M->filename) - 3
|
||
+ IF RAT(Lower( M->def_ext ), Lower( M->filename )) = LEN(M->filename) - 3
|
||
* target has default extension..does it exists in current dir?
|
||
add_name = .NOT. FILE(name(M->filename) + M->def_ext)
|
||
|
||
@@ -301,7 +301,7 @@
|
||
PARAMETERS sysparam
|
||
|
||
RETURN box_title(M->sysparam, "Append to " +;
|
||
- SUBSTR(M->cur_dbf, RAT("\", M->cur_dbf) + 1) +;
|
||
+ SUBSTR(M->cur_dbf, RAT(hb_ps(), M->cur_dbf) + 1) +;
|
||
" from")
|
||
|
||
|
||
@@ -433,7 +433,7 @@
|
||
PARAMETERS sysparam
|
||
|
||
RETURN box_title(M->sysparam, "Replace in " +;
|
||
- SUBSTR(M->cur_dbf, RAT("\", M->cur_dbf) + 1) +;
|
||
+ SUBSTR(M->cur_dbf, RAT(hb_ps(), M->cur_dbf) + 1) +;
|
||
"...")
|
||
|
||
|
||
@@ -742,7 +742,7 @@
|
||
cur_el = 1
|
||
rel_row = 0
|
||
files = "dbf_list"
|
||
- def_ext = ".DBF"
|
||
+ def_ext = ".dbf"
|
||
filelist(1) && display new list
|
||
|
||
ELSE
|
||
@@ -757,7 +757,7 @@
|
||
cur_el = 1
|
||
rel_row = 0
|
||
files = "txt_list"
|
||
- def_ext = ".TXT"
|
||
+ def_ext = ".txt"
|
||
filelist(1) && display new list
|
||
|
||
ENDIF
|
||
@@ -820,7 +820,7 @@
|
||
cur_el = 1
|
||
rel_row = 0
|
||
files = "dbf_list"
|
||
- def_ext = ".DBF"
|
||
+ def_ext = ".dbf"
|
||
filelist(1) && display new list
|
||
|
||
ELSE
|
||
@@ -835,7 +835,7 @@
|
||
cur_el = 1
|
||
rel_row = 0
|
||
files = "txt_list"
|
||
- def_ext = ".TXT"
|
||
+ def_ext = ".txt"
|
||
filelist(1) && display new list
|
||
|
||
ENDIF
|
||
diff -u dbu53ori/dbuedit.prg dbu53pat/dbuedit.prg
|
||
--- dbu53ori/dbuedit.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbuedit.prg 2012-05-02 17:23:18.000000000 +0200
|
||
@@ -47,7 +47,7 @@
|
||
nHelpSave := help_code
|
||
|
||
/* save, clear, and frame the window */
|
||
- cBrowseBuf := SaveScreen(8, 0, 23, 79)
|
||
+ cBrowseBuf := SaveScreen(8, 0, MaxRow()-1, MaxCol())
|
||
|
||
/* array to save move_ptr expressions */
|
||
aMoveExp := Array(4)
|
||
@@ -63,14 +63,14 @@
|
||
cFieldArray := "field_n" + Substr("123456", cur_area, 1)
|
||
cNtx := "ntx" + Substr("123456", cur_area, 1)
|
||
cur_ntx := &cNtx[1]
|
||
- cPrimeDbf := Substr(cur_dbf, Rat("\", cur_dbf) + 1)
|
||
+ cPrimeDbf := Substr(cur_dbf, Rat(hb_ps(), cur_dbf) + 1)
|
||
lCanAppend := .T.
|
||
else
|
||
/* browse the entire view */
|
||
nPrimeArea := 1
|
||
cFieldArray := "field_list"
|
||
cur_ntx := ntx1[1]
|
||
- cPrimeDbf := Substr(dbf[1], Rat("\", dbf[1]) + 1)
|
||
+ cPrimeDbf := Substr(dbf[1], Rat(hb_ps(), dbf[1]) + 1)
|
||
lCanAppend := .F.
|
||
|
||
if ( "->" $ field_list[afull(field_list)] )
|
||
@@ -95,11 +95,11 @@
|
||
|
||
/* create TBrowse object */
|
||
nColorSave := SetColor(color7)
|
||
- oB := TBrowseDB(10, 1, 23, 78)
|
||
+ oB := TBrowseDB(10, 1, MaxRow()-1, MaxCol()-1)
|
||
|
||
- oB:headSep := "ÍÑÍ"
|
||
- oB:colSep := " ³ "
|
||
- oB:footSep := "ÍÏÍ"
|
||
+ oB:headSep := hb_UTF8ToStr( "â•<C3A2>╤â•<C3A2>" )
|
||
+ oB:colSep := hb_UTF8ToStr( " │ " )
|
||
+ oB:footSep := hb_UTF8ToStr( "â•<C3A2>â•§â•<C3A2>" )
|
||
oB:skipBlock := {|x| Skipped(x, lAppend)}
|
||
|
||
/* put columns into browse */
|
||
@@ -139,10 +139,10 @@
|
||
|
||
/* initialize parts of screen not handled by TBrowse */
|
||
stat_msg("")
|
||
- scroll(8, 0, 23, 79, 0)
|
||
- @ 8, 0, 23, 79 BOX frame
|
||
- @ nHsepRow, 0 SAY "Æ"
|
||
- @ nHsepRow, 79 SAY "µ"
|
||
+ scroll(8, 0, MaxRow()-1, MaxCol(), 0)
|
||
+ @ 8, 0, MaxRow()-1, MaxCol() BOX frame
|
||
+ @ nHsepRow, 0 SAY hb_UTF8ToStr( "╞" )
|
||
+ @ nHsepRow, MaxCol() SAY hb_UTF8ToStr( "â•¡" )
|
||
|
||
/* init rest of locals */
|
||
cAlias := ""
|
||
@@ -353,11 +353,11 @@
|
||
box_open := .t.
|
||
|
||
/* save, clear, and frame window for memoedit */
|
||
- cMemoBuff := SaveScreen(10, 10, 22, 69)
|
||
+ cMemoBuff := SaveScreen(10, 10, MaxRow()-2, 69)
|
||
|
||
SetColor(color8)
|
||
- Scroll(10, 10, 22, 69, 0)
|
||
- @ 10, 10, 22, 69 BOX frame
|
||
+ Scroll(10, 10, MaxRow()-2, 69, 0)
|
||
+ @ 10, 10, MaxRow()-2, 69 BOX frame
|
||
|
||
/* use fieldspec for title */
|
||
SetColor(color9)
|
||
@@ -365,7 +365,7 @@
|
||
|
||
/* edit the memo field */
|
||
SetColor(color8)
|
||
- cMemo := MemoEdit(&cEditField, 11, 11, 21, 68,.T.,"xmemo")
|
||
+ cMemo := MemoEdit(&cEditField, 11, 11, MaxRow()-3, 68,.T.,"xmemo")
|
||
|
||
if Lastkey() == K_CTRL_END
|
||
/* ^W..new memo confirmed */
|
||
@@ -397,7 +397,7 @@
|
||
end
|
||
|
||
/* restore the window */
|
||
- RestScreen(10, 10, 22, 69, cMemoBuff)
|
||
+ RestScreen(10, 10, MaxRow()-2, 69, cMemoBuff)
|
||
box_open := .F.
|
||
else
|
||
/* regular data entry */
|
||
@@ -467,7 +467,7 @@
|
||
end
|
||
|
||
/* restore the screen */
|
||
- RestScreen(8, 0, 23, 79, cBrowseBuf)
|
||
+ RestScreen(8, 0, MaxRow()-1, MaxCol(), cBrowseBuf)
|
||
SetColor(nColorSave)
|
||
SetCursor(nCType)
|
||
curs_on := (nCType != 0)
|
||
@@ -930,8 +930,8 @@
|
||
"mGetVar")
|
||
|
||
/* setup a scrolling GET if it's too long to fit on the screen */
|
||
- if oGet:type == "C" .AND. LEN( oGet:varGet() ) > 78
|
||
- oGet:picture := "@S78"
|
||
+ if oGet:type == "C" .AND. LEN( oGet:varGet() ) > MaxCol()-1
|
||
+ oGet:picture := "@S" + hb_ntos( MaxCol()-1 )
|
||
endif
|
||
|
||
/* refresh flag */
|
||
diff -u dbu53ori/dbuhelp.prg dbu53pat/dbuhelp.prg
|
||
--- dbu53ori/dbuhelp.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbuhelp.prg 2012-05-02 17:22:05.000000000 +0200
|
||
@@ -113,11 +113,11 @@
|
||
FREAD(M->hhandle, @htbuf, 512)
|
||
|
||
* isolate the correct 4 byte table entry
|
||
- htbuf = SUBSTR(M->htbuf, (4 * (M->hnum - 1)) + 1, 4)
|
||
+ htbuf = HB_BSUBSTR(M->htbuf, (4 * (M->hnum - 1)) + 1, 4)
|
||
|
||
* convert binary numbers (LSB, MSB) to Clipper numerics
|
||
- hoff = ASC(M->htbuf) + (256 * ASC(SUBSTR(M->htbuf, 2)))
|
||
- hlen = ASC(SUBSTR(M->htbuf, 3)) + (256 * ASC(SUBSTR(M->htbuf, 4)))
|
||
+ hoff = HB_BPEEK(M->htbuf, 1) + (256 * HB_BPEEK(M->htbuf, 2))
|
||
+ hlen = HB_BPEEK(M->htbuf, 3) + (256 * HB_BPEEK(M->htbuf, 4))
|
||
|
||
* allocate buffer
|
||
htbuf = SPACE(M->hlen)
|
||
diff -u dbu53ori/dbuindx.prg dbu53pat/dbuindx.prg
|
||
--- dbu53ori/dbuindx.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbuindx.prg 2012-05-02 17:23:26.000000000 +0200
|
||
@@ -117,7 +117,7 @@
|
||
PARAMETERS sysparam
|
||
|
||
RETURN box_title(M->sysparam, "Index " +;
|
||
- SUBSTR(M->cur_dbf, RAT("\", M->cur_dbf) + 1) +;
|
||
+ SUBSTR(M->cur_dbf, RAT(hb_ps(), M->cur_dbf) + 1) +;
|
||
" to...")
|
||
|
||
|
||
@@ -240,7 +240,7 @@
|
||
INDEX ON &k_exp TO &filename
|
||
CLOSE INDEX
|
||
|
||
- IF AT(INDEXEXT(), M->filename) = LEN(M->filename) - 3 .AND.;
|
||
+ IF AT(Lower( INDEXEXT() ), Lower( M->filename )) = LEN(M->filename) - 3 .AND.;
|
||
FILE(name(M->filename) + INDEXEXT()) .AND. M->add_name
|
||
* add only .ntx files in the current directory
|
||
|
||
diff -u dbu53ori/dbunet.prg dbu53pat/dbunet.prg
|
||
--- dbu53ori/dbunet.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbunet.prg 2012-05-02 17:23:31.000000000 +0200
|
||
@@ -333,7 +333,7 @@
|
||
LOCAL nPos // Used to locate position of search characters in string
|
||
|
||
// Strip out the drive and path information, if any
|
||
- IF (( nPos := MAX( MAX( 0, RAT( "\", cString )), RAT( ":", cString ))) != 0 )
|
||
+ IF (( nPos := MAX( MAX( 0, RAT( hb_ps(), cString )), RAT( ":", cString ))) != 0 )
|
||
cString := SUBSTR( cString, ++nPos )
|
||
ENDIF
|
||
|
||
diff -u dbu53ori/dbustru.prg dbu53pat/dbustru.prg
|
||
--- dbu53ori/dbustru.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbustru.prg 2012-05-02 17:23:38.000000000 +0200
|
||
@@ -74,8 +74,8 @@
|
||
filename = "" && variable for "filebox" function
|
||
|
||
* sigle row templates
|
||
-empty_row = " ³ ³ ³ "
|
||
-not_empty = " ³ Character ³ 10 ³ "
|
||
+empty_row = hb_UTF8ToStr( " │ │ │ " )
|
||
+not_empty = hb_UTF8ToStr( " │ Character │ 10 │ " )
|
||
|
||
IF .NOT. EMPTY(M->cur_dbf)
|
||
* modify structure
|
||
@@ -133,11 +133,11 @@
|
||
* establish window heading
|
||
@ 9,field_col[1];
|
||
SAY "Structure of " + pad(IF(EMPTY(stru_name), "<new file>",;
|
||
- SUBSTR(stru_name, RAT("\", stru_name) + 1)), 13)
|
||
+ SUBSTR(stru_name, RAT(hb_ps(), stru_name) + 1)), 13)
|
||
|
||
@ 11,22 SAY "Field Name Type Width Dec"
|
||
-@ 12,20 SAY "ÆÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍ͵"
|
||
-@ 23,33 SAY "ÏÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏ"
|
||
+@ 12,20 SAY hb_UTF8ToStr( "╞â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>╤â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>╤â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>╤â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•¡" )
|
||
+@ 23,33 SAY hb_UTF8ToStr( "â•§â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•§â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•§" )
|
||
|
||
DO WHILE .NOT. q_check()
|
||
* the big switch
|
||
@@ -811,7 +811,7 @@
|
||
is_insert = .F.
|
||
filename = stru_name
|
||
|
||
- IF filebox(".DBF", "dbf_list", "stru_title",;
|
||
+ IF filebox(".dbf", "dbf_list", "stru_title",;
|
||
"do_modstru", .T., 13) <> 0
|
||
* structure created or altered
|
||
stru_name = filename
|
||
@@ -819,7 +819,7 @@
|
||
* re-write name at top of window
|
||
@ 9,field_col[1] + 13;
|
||
SAY pad(IF(EMPTY(stru_name), "<new file>",;
|
||
- SUBSTR(stru_name, RAT("\", stru_name) + 1)), 13)
|
||
+ SUBSTR(stru_name, RAT(hb_ps(), stru_name) + 1)), 13)
|
||
|
||
IF aseek(dbf, filename) = 0
|
||
* bring new file into view
|
||
@@ -904,16 +904,16 @@
|
||
PARAMETERS fill_row
|
||
|
||
@ fill_row,field_col[1];
|
||
-SAY field_name + " ³ " + data_type[AT(field_type, "CNDLM")] + " ³ "
|
||
+SAY field_name + hb_UTF8ToStr( " │ " ) + data_type[AT(field_type, "CNDLM")] + hb_UTF8ToStr( " │ " )
|
||
|
||
IF field_type = "C"
|
||
* display Clipper extended field length
|
||
@ fill_row,field_col[3] SAY STR(((256 * field_dec) + field_len), 4) +;
|
||
- " ³ "
|
||
+ hb_UTF8ToStr( " │ " )
|
||
|
||
ELSE
|
||
* normal field length
|
||
- @ fill_row,field_col[3] SAY STR(field_len, 4) + " ³ "
|
||
+ @ fill_row,field_col[3] SAY STR(field_len, 4) + hb_UTF8ToStr( " │ " )
|
||
|
||
IF field_type = "N"
|
||
* display decimals for numeric field
|
||
@@ -1215,7 +1215,7 @@
|
||
USE
|
||
|
||
* remember if file existed in current directory before
|
||
- add_name = .NOT. FILE(name(filename) + ".DBF")
|
||
+ add_name = .NOT. FILE(name(filename) + ".dbf")
|
||
|
||
IF FILE(filename)
|
||
* file exists..modify structure and save old data
|
||
@@ -1235,12 +1235,12 @@
|
||
ENDIF
|
||
|
||
* establish temp filespec and dbt specs in same directory
|
||
- name_temp = SUBSTR(filename, 1, RAT("\", filename)) +;
|
||
- "DDBBUUUU.TMP"
|
||
+ name_temp = SUBSTR(filename, 1, RAT(hb_ps(), filename)) +;
|
||
+ "ddbbuuuu.tmp"
|
||
dbt_spec = SUBSTR(filename, 1, RAT(".", filename)) +;
|
||
- "DBT"
|
||
+ "dbt"
|
||
dbt_temp = SUBSTR(name_temp, 1, RAT(".", name_temp)) +;
|
||
- "DBT"
|
||
+ "dbt"
|
||
|
||
IF FILE(dbt_spec)
|
||
* data file contains memo fields
|
||
@@ -1320,8 +1320,8 @@
|
||
CREATE &filename FROM ddbbuuuu.ext ALIAS cAlias
|
||
USE
|
||
|
||
- IF AT(".DBF", filename) = LEN(filename) - 3 .AND.;
|
||
- FILE(name(filename) + ".DBF") .AND. add_name
|
||
+ IF AT(".dbf", Lower(filename)) = LEN(filename) - 3 .AND.;
|
||
+ FILE(name(filename) + ".dbf") .AND. add_name
|
||
* add only .dbf files in the current directory
|
||
i = afull(dbf_list) + 1
|
||
|
||
diff -u dbu53ori/dbuutil.prg dbu53pat/dbuutil.prg
|
||
--- dbu53ori/dbuutil.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbuutil.prg 2012-05-02 17:23:45.000000000 +0200
|
||
@@ -716,9 +716,9 @@
|
||
BOX M->lframe
|
||
|
||
* format the list title
|
||
- i_title = REPLICATE("Ä", ((46 - M->l_rel - LEN(M->i_title)) / 2) - 1);
|
||
+ i_title = REPLICATE(hb_UTF8ToStr( "─" ), ((46 - M->l_rel - LEN(M->i_title)) / 2) - 1);
|
||
+ " " + M->i_title + " "
|
||
- i_title = M->i_title + REPLICATE("Ä", (46 - M->l_rel - LEN(M->i_title)))
|
||
+ i_title = M->i_title + REPLICATE(hb_UTF8ToStr( "─" ), (46 - M->l_rel - LEN(M->i_title)))
|
||
|
||
* display the list title
|
||
@ M->wt + 1, M->wl + M->l_rel - 1 SAY M->i_title
|
||
@@ -950,7 +950,7 @@
|
||
SET KEY 24 TO clear_gets
|
||
|
||
* call entry in place function
|
||
- name_temp = enter_rc(M->filename,M->irow,M->wl+9,64,"@K!S20",M->color9)
|
||
+ name_temp = enter_rc(M->filename,M->irow,M->wl+9,64,"@KS20",M->color9)
|
||
|
||
* release down arrow
|
||
SET KEY 24 TO
|
||
@@ -958,7 +958,7 @@
|
||
IF .NOT. EMPTY(M->name_temp)
|
||
* something entered
|
||
|
||
- IF .NOT. (RAT(".", M->name_temp) > RAT("\", M->name_temp))
|
||
+ IF .NOT. (RAT(".", M->name_temp) > RAT(hb_ps(), M->name_temp))
|
||
* extnesion not entered..provide default
|
||
name_temp = M->name_temp + M->def_ext
|
||
|
||
@@ -1963,7 +1963,7 @@
|
||
PRIVATE p
|
||
|
||
* isolate filename and extension from path
|
||
-p = SUBSTR(M->spec, RAT("\", M->spec) + 1)
|
||
+p = SUBSTR(M->spec, RAT(hb_ps(), M->spec) + 1)
|
||
|
||
IF "." $ M->p
|
||
* there is an extension..chop it off
|
||
@@ -2152,7 +2152,7 @@
|
||
IF FILE(M->filename)
|
||
* only if the file exists
|
||
|
||
- IF INDEXEXT() = ".NTX"
|
||
+ IF Lower( INDEXEXT() ) = ".ntx"
|
||
* Clipper index file format
|
||
k_pos = 23
|
||
|
||
@@ -2173,10 +2173,10 @@
|
||
FREAD(M->handle, @buffer, 512)
|
||
|
||
* discard all bytes before the key expression
|
||
- k = SUBSTR(M->buffer, M->k_pos)
|
||
+ k = HB_BSUBSTR(M->buffer, M->k_pos)
|
||
|
||
* the expression is terminated with a zero byte (chr(0))
|
||
- k = TRIM(SUBSTR(M->k, 1, AT(CHR(0), M->k) - 1))
|
||
+ k = TRIM(HB_BSUBSTR(M->k, 1, AT(CHR(0), M->k) - 1))
|
||
|
||
ENDIF
|
||
|
||
diff -u dbu53ori/dbuview.prg dbu53pat/dbuview.prg
|
||
--- dbu53ori/dbuview.prg 1996-05-20 05:31:00.000000000 +0200
|
||
+++ dbu53pat/dbuview.prg 2012-05-02 17:23:53.000000000 +0200
|
||
@@ -906,15 +906,15 @@
|
||
ENDIF
|
||
|
||
* the first slot is diferent than the rest
|
||
-bar_line = "ÍÍÍÍÍÍÍÍÍÍÍÍ"
|
||
+bar_line = hb_UTF8ToStr( "â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>" )
|
||
empty_line = ""
|
||
|
||
k = 1
|
||
|
||
DO WHILE M->k < M->num_slots
|
||
* each new slot separated from previous by a vertical line
|
||
- bar_line = M->bar_line + "ÑÍÍÍÍÍÍÍÍÍÍÍÍ"
|
||
- empty_line = M->empty_line + SPACE(12) + "³"
|
||
+ bar_line = M->bar_line + hb_UTF8ToStr( "╤â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>â•<C3A2>" )
|
||
+ empty_line = M->empty_line + SPACE(12) + hb_UTF8ToStr( "│" )
|
||
|
||
* next
|
||
k = M->k + 1
|
||
@@ -1102,15 +1102,15 @@
|
||
KEYBOARD CHR(M->keystroke)
|
||
|
||
* entry in place
|
||
- filename = enter_rc(dbf[M->cur_area],M->f_row,M->d_col,64,"@K!S8",;
|
||
+ filename = enter_rc(dbf[M->cur_area],M->f_row,M->d_col,64,"@KS8",;
|
||
M->color1)
|
||
|
||
IF .NOT. EMPTY(M->filename)
|
||
* something entered
|
||
|
||
- IF .NOT. (RAT(".", M->filename) > RAT("\", M->filename))
|
||
+ IF .NOT. (RAT(".", M->filename) > RAT(hb_ps(), M->filename))
|
||
* no extension entered..provide default
|
||
- filename = M->filename + ".DBF"
|
||
+ filename = M->filename + ".dbf"
|
||
|
||
ENDIF
|
||
|
||
@@ -1141,7 +1141,7 @@
|
||
|
||
ELSE
|
||
* insert or enter or menu selection..use filebox
|
||
- ret_val = filebox(".DBF", "dbf_list", "dopen_titl",;
|
||
+ ret_val = filebox(".dbf", "dbf_list", "dopen_titl",;
|
||
"do_opendbf", .F., 8) <> 0
|
||
|
||
ENDIF
|
||
@@ -1269,12 +1269,12 @@
|
||
KEYBOARD CHR(M->keystroke)
|
||
|
||
* entry in place
|
||
- filename = enter_rc(M->org_file,M->d_row,M->d_col,64,"@K!S8",M->color1)
|
||
+ filename = enter_rc(M->org_file,M->d_row,M->d_col,64,"@KS8",M->color1)
|
||
|
||
IF .NOT. EMPTY(M->filename)
|
||
* something entered
|
||
|
||
- IF .NOT. (RAT(".", M->filename) > RAT("\", M->filename))
|
||
+ IF .NOT. (RAT(".", M->filename) > RAT(hb_ps(), M->filename))
|
||
* extension not entered..provide default
|
||
filename = filename + INDEXEXT()
|
||
|
||
@@ -2120,7 +2120,7 @@
|
||
|
||
* draw line and arrow pointing to target alias
|
||
@ M->row_n,M->pos_c;
|
||
- SAY REPLICATE("Ä", column[M->j] - M->pos_c + 1) + CHR(16)
|
||
+ SAY REPLICATE(hb_UTF8ToStr( "─" ), column[M->j] - M->pos_c + 1) + CHR(16)
|
||
|
||
* display target alias as intense
|
||
SetColor(M->color12)
|
||
@@ -2225,7 +2225,7 @@
|
||
SetColor(M->cNorm)
|
||
|
||
* display an arrow (always normal color)
|
||
-?? REPLICATE("Ä", column[M->k] - COL() + 1) + CHR(16)
|
||
+?? REPLICATE(hb_UTF8ToStr( "─" ), column[M->k] - COL() + 1) + CHR(16)
|
||
|
||
* display the target alias in the specified color
|
||
SetColor(M->cSpecial)
|
||
@@ -2363,7 +2363,7 @@
|
||
|
||
* title includes filename.ext but no path
|
||
RETURN box_title(M->sysparam, "Set filter for " +;
|
||
- SUBSTR(M->cur_dbf, RAT("\", M->cur_dbf) + 1) +;
|
||
+ SUBSTR(M->cur_dbf, RAT(hb_ps(), M->cur_dbf) + 1) +;
|
||
" to...")
|
||
|
||
|
||
@@ -2789,7 +2789,7 @@
|
||
* get user entered file name..will default to primary + ".VEW"
|
||
IF EMPTY(M->view_file) .AND. .NOT. EMPTY(dbf[1])
|
||
* default to name of primary data file
|
||
- filename = name(dbf[1]) + ".VEW"
|
||
+ filename = name(dbf[1]) + ".vew"
|
||
|
||
ELSE
|
||
* whatever the last view was
|
||
@@ -2798,7 +2798,7 @@
|
||
ENDIF
|
||
|
||
* it's better in a box
|
||
-filebox(".VEW", "vew_list", "vcrea_titl", "do_creavew", .T., 8)
|
||
+filebox(".vew", "vew_list", "vcrea_titl", "do_creavew", .T., 8)
|
||
|
||
* restore help code
|
||
help_code = M->old_help
|
||
@@ -2840,7 +2840,7 @@
|
||
stat_msg("Generating View File")
|
||
|
||
* add new .VEW files to vew_list if created in current directory only
|
||
-add_name = .NOT. FILE(name(filename) + ".VEW")
|
||
+add_name = .NOT. FILE(name(filename) + ".vew")
|
||
|
||
* create structure extended template
|
||
CREATE ddbbuuuu.ext
|
||
@@ -3009,8 +3009,8 @@
|
||
USE
|
||
|
||
* add file name to array of view files
|
||
-IF AT(".VEW", filename) = LEN(filename) - 3 .AND.;
|
||
- FILE(name(filename) + ".VEW") .AND. add_name
|
||
+IF AT(".vew", Lower(filename)) = LEN(filename) - 3 .AND.;
|
||
+ FILE(name(filename) + ".vew") .AND. add_name
|
||
* add only new .VEW files in the current directory
|
||
|
||
* determine number of first empty element
|
||
@@ -3080,7 +3080,7 @@
|
||
IF M->from_view
|
||
* called from set_view
|
||
|
||
- IF filebox(".VEW", "vew_list", "vopen_titl", "do_openvew", .F., 8) <> 0
|
||
+ IF filebox(".vew", "vew_list", "vopen_titl", "do_openvew", .F., 8) <> 0
|
||
* indicate new View has been set
|
||
keystroke = 13
|
||
|