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 := "ΒΔΒ³ΩΔΐ³" - sframe := "ΪΔΏ³ΩΔΐ³" + frame := hb_UTF8ToStr( "β•’β•β••β”‚β•›β•β•˜β”‚" ) // box characters + lframe := hb_UTF8ToStr( "╀═╕│╛═╧│" ) + mframe := hb_UTF8ToStr( "β”¬β”€β”¬β”‚β”˜β”€β””β”‚" ) + sframe := hb_UTF8ToStr( "β”Œβ”€β”β”‚β”˜β”€β””β”‚" ) // 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( "═►" ) + " " // 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( "═╀═" ) + oB:colSep := hb_UTF8ToStr( " β”‚ " ) + oB:footSep := hb_UTF8ToStr( "═╧═" ) 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), "",; - 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( "β•žβ•β•β•β•β•β•β•β•β•β•β•β•β•€β•β•β•β•β•β•β•β•β•β•β•β•€β•β•β•β•β•β•β•β•€β•β•β•β•β•β•‘" ) +@ 23,33 SAY hb_UTF8ToStr( "╧═══════════╧═══════╧" ) 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), "",; - 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( "════════════" ) 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( "╀════════════" ) + 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