diff --git a/ChangeLog.txt b/ChangeLog.txt index 549788442a..41a20a5ce3 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,32 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2014-08-11 13:54 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/debug/dbgbrwsr.prg + ! fixed to not display last column out of browser area + + * src/debug/dbghelp.prg + * src/debug/dbgmenu.prg + * src/debug/debugger.prg + * use strings to to locate help topics instead of hardcoded numeric + offsets + ! added support for topic specification in "HELP" command - Cl*pper + compatibility + ! allow to use FILE DOS (and F D shortcut) to activate OS Shell - Cl*pper + compatibility + + * src/debug/dbgentry.c + ! removed recent pseudo fix with memset() missing the last byte of + allocated memory area since e59993bdb14fab12dcc3e1698c088e18f951d437. + The original code was correct. In Harbour trailing 0 in all strings + is set inside functions creating string items. + + * package/harbour.spec + + added MXML library + + * package/mpkg_rpm.sh + * respect HB_WITH_*=no and HB_WITH_*=local envvars + 2014-08-05 19:56 UTC+0200 Viktor Szakáts (vszakats users.noreply.github.com) * src/debug/* + src/debug/en.txt diff --git a/package/harbour.spec b/package/harbour.spec index 4ee3bbbf5e..90030191b4 100644 --- a/package/harbour.spec +++ b/package/harbour.spec @@ -418,8 +418,7 @@ rm -f $HB_INSTALL_LIB/libbz2.a \ $HB_INSTALL_LIB/libsqlite3.a \ $HB_INSTALL_LIB/libexpat.a \ $HB_INSTALL_LIB/liblzf.a \ - $HB_INSTALL_LIB/libminilzo.a \ - $HB_INSTALL_LIB/libmxml.a + $HB_INSTALL_LIB/libminilzo.a ###################################################################### ## Post install/uninstall scripts @@ -510,6 +509,8 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/%{name}/libhbnf.a %{_libdir}/%{name}/libhbblink.a %{_libdir}/%{name}/libhbmisc.a +%{_libdir}/%{name}/libmxml.a +%{_libdir}/%{name}/libhbmxml.a %{_libdir}/%{name}/libminizip.a %{_libdir}/%{name}/libhbmzip.a %{_libdir}/%{name}/libhbnetio.a diff --git a/package/mpkg_rpm.sh b/package/mpkg_rpm.sh index 464d696a2f..ad6c638c9d 100755 --- a/package/mpkg_rpm.sh +++ b/package/mpkg_rpm.sh @@ -38,52 +38,59 @@ do shift done -if [ -f /usr/local/ads/acesdk/ace.h ] || [ -f ${HOME}/ads/acesdk/ace.h ] +if [ "$HB_WITH_ADS" != "no" ] then - INST_PARAM="${INST_PARAM} --with ads" + if [ -f /usr/local/ads/acesdk/ace.h ] || \ + [ -f ${HOME}/ads/acesdk/ace.h ] || \ + [ -f ${HB_WITH_ADS}/ace.h ] + then + INST_PARAM="${INST_PARAM} --with ads" + fi fi -if test_reqrpm "allegro-devel" +if test_reqrpm "allegro-devel" && [ "$HB_WITH_ALLEGRO" != "no" ] then INST_PARAM="${INST_PARAM} --with allegro" fi -if test_reqrpm "cairo-devel" +if test_reqrpm "cairo-devel" && [ "$HB_WITH_CAIRO" != "no" ] then INST_PARAM="${INST_PARAM} --with cairo" fi -if test_reqrpm "libcups2-devel" +if test_reqrpm "libcups2-devel" && [ "$HB_WITH_CUPS" != "no" ] then INST_PARAM="${INST_PARAM} --with cups" fi -if test_reqrpm "curl-devel" +if test_reqrpm "curl-devel" && [ "$HB_WITH_CURL" != "no" ] then INST_PARAM="${INST_PARAM} --with curl" fi -if test_reqrpm "openssl" +if test_reqrpm "openssl" && [ "$HB_WITH_OPENSSL" != "no" ] then INST_PARAM="${INST_PARAM} --with openssl" fi -if test_reqrpm "firebird-devel" +if test_reqrpm "firebird-devel" && [ "$HB_WITH_FIREBIRD" != "no" ] then INST_PARAM="${INST_PARAM} --with firebird" fi -if test_reqrpm "freeimage-devel" +if test_reqrpm "freeimage-devel" && [ "$HB_WITH_FREEIMAGE" != "no" ] then INST_PARAM="${INST_PARAM} --with freeimage" fi -if test_reqrpm "gd-devel" +if test_reqrpm "gd-devel" && [ "$HB_WITH_GD" != "no" ] then v=`rpm -q --whatprovides gd-devel --qf "%{VERSION}"|sed -e "s/[^0-9]*\([0-9]*\).*/\1/g"` [ "$v" -ge 2 ] && INST_PARAM="${INST_PARAM} --with gd" fi -if test_reqrpm "MySQL-devel" || test_reqrpm "mysql-devel" +if ( test_reqrpm "MySQL-devel" || test_reqrpm "mysql-devel" ) && \ + [ "$HB_WITH_MYSQL" != "no" ] then INST_PARAM="${INST_PARAM} --with mysql" fi -if test_reqrpm "unixodbc-devel" || test_reqrpm "unixODBC-devel" +if ( test_reqrpm "unixodbc-devel" || test_reqrpm "unixODBC-devel" ) && \ + [ "$HB_WITH_ODBC" != "no" ] then INST_PARAM="${INST_PARAM} --with odbc" fi -if test_reqrpm "postgresql-devel" +if test_reqrpm "postgresql-devel" && [ "$HB_WITH_PGSQL" != "no" ] then INST_PARAM="${INST_PARAM} --with pgsql" fi @@ -92,27 +99,32 @@ if [ "${HB_BUILD_NOGPLLIB}" = "yes" ] then INST_PARAM="${INST_PARAM} --without gpllib" fi -if [ "${HB_BUILD_NOGPLLIB}" = "yes" ] || ! test_reqrpm "gpm-devel" +if [ "${HB_BUILD_NOGPLLIB}" = "yes" ] || [ "$HB_WITH_GPM" = "no" ] || \ + ! test_reqrpm "gpm-devel" then INST_PARAM="${INST_PARAM} --without gpm" fi -if ! test_reqrpm "XFree86-devel" +if ! test_reqrpm "XFree86-devel" && [ "$HB_WITH_X11" != "no" ] then INST_PARAM="${INST_PARAM} --without X11" fi -if ! test_reqrpm ncurses || ! test_reqrpm ncurses-devel +if ! test_reqrpm ncurses || ! test_reqrpm ncurses-devel || \ + [ "$HB_WITH_CURSES" != "no" ] then INST_PARAM="${INST_PARAM} --without curses" fi -if ! test_reqrpm slang || ! test_reqrpm slang-devel +if ! test_reqrpm slang || ! test_reqrpm slang-devel || \ + [ "$HB_WITH_SLANG" != "no" ] then INST_PARAM="${INST_PARAM} --without slang" fi -if [ ! -f /usr/include/zlib.h ] && [ ! -f /usr/local/include/zlib.h ] +if ( [ ! -f /usr/include/zlib.h ] && [ ! -f /usr/local/include/zlib.h ] ) || \ + [ "$HB_WITH_ZLIB" = "local" ] then INST_PARAM="${INST_PARAM} --with localzlib" fi -if [ ! -f /usr/include/pcre.h ] && [ ! -f /usr/local/include/pcre.h ] +if ( [ ! -f /usr/include/pcre.h ] && [ ! -f /usr/local/include/pcre.h ] ) || \ + [ "$HB_WITH_PCRE" = "local" ] then INST_PARAM="${INST_PARAM} --with localpcre" fi diff --git a/src/debug/dbgbrwsr.prg b/src/debug/dbgbrwsr.prg index 73e00a782b..db330b0a4c 100644 --- a/src/debug/dbgbrwsr.prg +++ b/src/debug/dbgbrwsr.prg @@ -186,7 +186,9 @@ METHOD DispRow( nRow, lHiLite ) CLASS HBDbBrowser IF nWid == NIL nWid := Len( xData ) ENDIF - hb_DispOutAt( ::nTop + nRow - 1, nColX, PadR( xData, nWid ) + iif( oCol:__enumIsLast(), "", " " ), ::aColorSpec[ nClr ] ) + hb_DispOutAt( ::nTop + nRow - 1, nColX, ; + Left( PadR( xData, nWid ) + iif( oCol:__enumIsLast(), "", " " ), ; + ::nRight - nColX + 1 ), ::aColorSpec[ nClr ] ) nColX += nWid + 1 ENDIF NEXT diff --git a/src/debug/dbgentry.c b/src/debug/dbgentry.c index 7957611923..3505d3b63d 100644 --- a/src/debug/dbgentry.c +++ b/src/debug/dbgentry.c @@ -761,7 +761,7 @@ static void hb_dbgAddStopLines( PHB_ITEM pItem ) HB_ISIZ k; char * pBuffer = ( char * ) hb_xgrab( nLen + 1 ); - hb_xmemset( pBuffer, 0, nLen + 1 ); + hb_xmemset( pBuffer, 0, nLen ); /* the bitfields with line numbers should use * 8bit alignment so it's safe to use byte copy diff --git a/src/debug/dbghelp.prg b/src/debug/dbghelp.prg index 4f5b586a32..b88a949765 100644 --- a/src/debug/dbghelp.prg +++ b/src/debug/dbghelp.prg @@ -59,10 +59,11 @@ #include "box.ch" #include "inkey.ch" -PROCEDURE __dbgHelp( nTopic ) +PROCEDURE __dbgHelp( cTopic ) LOCAL cColor := iif( __dbg():lMonoDisplay, "N/W, W/N, W+/W, W+/N", "N/W, N/BG, R/W, R/BG" ) LOCAL oBrw + LOCAL nTopic LOCAL aTopics := GetTopics() LOCAL oDlg := HBDbWindow():New( 2, 2, MaxRow() - 2, MaxCol() - 2, "Help", cColor ) @@ -77,8 +78,8 @@ PROCEDURE __dbgHelp( nTopic ) oBrw:GoTopBlock := {|| oBrw:Cargo := 1 } oBrw:GoBottomBlock := {|| oBrw:Cargo := Len( aTopics ) } - hb_default( @nTopic, 1 ) - IF nTopic > 1 + IF HB_ISSTRING( cTopic ) .AND. ; + ( nTopic := Ascan( aTopics, {| x | hb_LeftEqI( x[ 1 ], cTopic ) } ) ) > 1 oBrw:nFirstVisible := nTopic ENDIF diff --git a/src/debug/dbgmenu.prg b/src/debug/dbgmenu.prg index c7b1c2a390..c7b908f93e 100644 --- a/src/debug/dbgmenu.prg +++ b/src/debug/dbgmenu.prg @@ -191,12 +191,12 @@ FUNCTION __dbgBuildMenu( oDebugger ) // Builds the debugger pulldown menu MENUITEM " ~Help " MENU - MENUITEM " ~About Help " ACTION oDebugger:ShowHelp( 0 ) + MENUITEM " ~About Help " ACTION oDebugger:ShowHelp() SEPARATOR - MENUITEM " ~Keys" ACTION oDebugger:ShowHelp( 2 ) - MENUITEM " ~Windows" ACTION oDebugger:ShowHelp( 6 ) - MENUITEM " ~Menus" ACTION oDebugger:ShowHelp( 12 ) - MENUITEM " ~Commands" ACTION oDebugger:ShowHelp( 21 ) + MENUITEM " ~Keys" ACTION oDebugger:ShowHelp( "Keys" ) + MENUITEM " ~Windows" ACTION oDebugger:ShowHelp( "Windows" ) + MENUITEM " ~Menus" ACTION oDebugger:ShowHelp( "Menus" ) + MENUITEM " ~Commands" ACTION oDebugger:ShowHelp( "Commands" ) ENDMENU ENDMENU diff --git a/src/debug/debugger.prg b/src/debug/debugger.prg index 0dccc07220..4e173b9c10 100644 --- a/src/debug/debugger.prg +++ b/src/debug/debugger.prg @@ -299,7 +299,7 @@ CREATE CLASS HBDebugger METHOD ShowAppScreen() METHOD ShowCallStack() METHOD ShowCodeLine( nProc ) - METHOD ShowHelp( nTopic ) + METHOD ShowHelp( cTopic ) METHOD ShowVars() METHOD LocatePrgPath( cPrgName ) METHOD Sort() INLINE ASort( ::aVars,,, {| x, y | x[ 1 ] < y[ 1 ] } ), ; @@ -941,7 +941,7 @@ METHOD DoCommand( cCommand ) CLASS HBDebugger ::Open() CASE hb_LeftEq( "RESUME", cParam ) ::Resume() - CASE hb_LeftEq( "OSSHELL", cParam ) + CASE hb_LeftEq( "OS", cParam ) .OR. hb_LeftEq( "DOS", cParam ) ::OSShell() CASE hb_LeftEq( "EXIT", cParam ) ::Quit() @@ -959,7 +959,7 @@ METHOD DoCommand( cCommand ) CLASS HBDebugger ::Go() CASE cCommand == "HELP" - ::ShowHelp() + ::ShowHelp( cParam ) CASE hb_LeftEqN( "INPUT", cCommand, 4 ) IF Empty( cParam ) @@ -2695,9 +2695,9 @@ METHOD PROCEDURE ShowCodeLine( nProc ) CLASS HBDebugger RETURN -METHOD PROCEDURE ShowHelp( nTopic ) CLASS HBDebugger +METHOD PROCEDURE ShowHelp( cTopic ) CLASS HBDebugger - __dbgHelp( nTopic ) + __dbgHelp( cTopic ) RETURN