Commit Graph

11 Commits

Author SHA1 Message Date
Viktor Szakats
0eea0e3932 2009-02-22 18:33 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hb-func.sh
    ! Fixed stupid typos after testing on Linux.

  * contrib/examples/terminal/terminal.hbp
  * contrib/examples/terminal/trm_appn.hbm
    * Minor change.
2009-02-22 17:34:06 +00:00
Viktor Szakats
0d04b875e1 2009-02-22 18:00 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbbtree/tests/test.hbm
  * contrib/examples/guestbk/guestbk.hbm
  * contrib/examples/pe/pe.hbm
  * contrib/examples/terminal/trm_appn.hbm
  * contrib/examples/hscript/hscript.hbm
  * utils/hbdoc/hbdoc.hbm
  + utils/hbmk2/hbmk2.hbm
    + Added -n switch to .hbm files.

  * contrib/examples/uhttpd/hbmk.bat
  + contrib/examples/uhttpd/uhttpd.hbm
    + Moved most make params to new .hbm file.
2009-02-22 17:06:44 +00:00
Viktor Szakats
455502872b 2009-02-17 09:25 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbapollo/tests/hbapollo.hbp
    + Added filters.
    ; TOFIX: hbapollo test doesn't link with MSVC.

  - contrib/hbapollo/tests/hbmk.bat
  - contrib/gtwvg/tests/hbmk.bat
  - contrib/hbbtree/tests/hbmk.bat
  - contrib/examples/terminal/hbmk.bat
  - contrib/examples/terminal/hbmk_trm_appn.bat
    - Removed batch versions of make files.
      Go to the directory the source are located and
      use the .hbm files where there is one, or just pass
      the .prg name to hbmk.exe.

  * utils/hbmk/hbmk.prg
    ! Fixed handling lib/source files with double extensions.
    ! Fixed to not add empty items to lists in some occasions.
    + Added -q to suppress informational output + header.
2009-02-16 08:25:59 +00:00
Viktor Szakats
862fa6e6e5 2009-02-16 22:28 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
+ contrib/gtwvg/tests/gtwvg.hbp
  + contrib/hbapollo/tests/hbapollo.hbp
  + contrib/hbbtree/tests/hbbtree.hbp
  + contrib/hbbtree/tests/test.hbm
    + Added hbmk files.

  * contrib/hbbtree/tests/hbmk.bat
  * contrib/hbbtree/tests/test.prg
    * Cleaned hbct dependency.

  * contrib/hbbtree/Makefile
  * contrib/hbbtree/common.mak
  - contrib/hbbtree/hb_btree.api
  + contrib/hbbtree/hb_btree.h
  * contrib/hbbtree/hb_btree.c
  * contrib/hbbtree/tests/ctest.c
    * Renamed hb_btree.api -> hb_btree.h

  * contrib/examples/terminal/terminal.hbp
    + Added {win} filter.
2009-02-15 21:26:57 +00:00
Viktor Szakats
50d7dbd784 2009-02-16 20:54 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk/hbmk.prg
    + Added support for '#' comment lines in .hbm files.
    + Added support to automatically convert slashes/backslashes
      in passed libnames and prg options.
    * Cleanup on computing Harbour location. I didn't test all
      situations here. This should fix previous versions not
      honoring explicit HB_*_INSTALL envvars.
    + Added support for POCC (untested).

   + contrib/hbct/tests/hbct.hbp
   + contrib/examples/terminal/terminal.hbp
   + contrib/examples/terminal/trm_appn.hbm
     + Added new hbmk files to show what it takes to replace
       the current system, but this time fully supporting
       all Harbour platforms.
       To use these just run hbmk, either from the path, or
       by directly pointing to it:
       ..\..\..\bin\hbmk.exe <test.prg>
       ..\..\..\bin\hbmk.exe trm_appn.hbm
       .exe can be dropped as soon as we delete out hbmk.bat file.
2009-02-15 20:14:40 +00:00
Viktor Szakats
4bc0533891 2009-02-13 20:10 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* make_b32.bat
  * tests/rddtest/make_c52.bat
  * tests/run_prg.bat
  * tests/hbmk_gnu.bat
  * tests/hbmk_vc.bat
  * tests/hbmk_b32.bat
  * tests/run_prg_all.bat
  * bin/hbmk.bat
  * bin/hbmk_os2.cmd
  * bin/postinst.bat
  * make_vc.bat
  * make_gnu_os2.cmd
  * make_gnu.bat
  * contrib/make_b32_all.bat
  * contrib/mtpl_b32.bat
  * contrib/make_vc_all.bat
  * contrib/mtpl_vc.bat
  * contrib/examples/pp/hbmk.bat
  * contrib/examples/guestbk/hbmk.bat
  * contrib/examples/pe/hbmk.bat
  * contrib/examples/hbsqlit2/tests/hbmk.bat
  * contrib/examples/uhttpd/hbmk.bat
  * contrib/examples/dbu/hbmk.bat
  * contrib/examples/terminal/hbmk.bat
  * contrib/examples/terminal/hbmk_trm_appn.bat
  * contrib/examples/hscript/hbmk.bat
  * contrib/examples/rl/hbmk.bat
  * utils/hbdoc/hbmk.bat
  * utils/hbextern/make_c5x.bat
  * utils/hbmake/hbmk.bat
  * utils/hbtest/make_c5x.bat
  * utils/hbtest/make_xpp.bat
    * Minor formatting.
    * Cleanups to refer to simply 'hbmk'.

  ; TODO: Add support for other than bcc/msvc compiler for
          HB_USER_LIBS. Change HB_USER_LIBS settings to
          contain the raw lib list without extensions.
          This is where batch capabilities end, so this
          might need a .prg rewrite.
2009-02-13 19:24:37 +00:00
Viktor Szakats
24037047eb 2009-02-13 19:00 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hbmk.bat
    % Compiler detection made faster.
    ; TOFIX: MinGW requires different library names than the rest
             of compilers, so it currently won't work for hbmk.bat
             files where HB_USER_LIBS is set.

  + contrib/examples/pp/hbmk.bat
  - contrib/examples/pp/hbmk_b32.bat
  - contrib/examples/pp/hbmk_vc.bat
  + contrib/examples/guestbk/hbmk.bat
  - contrib/examples/guestbk/hbmk_b32.bat
  - contrib/examples/guestbk/hbmk_vc.bat
  + contrib/examples/pe/hbmk.bat
  - contrib/examples/pe/hbmk_b32.bat
  - contrib/examples/pe/hbmk_vc.bat
  + contrib/examples/hbsqlit2/tests/hbmk.bat
  - contrib/examples/hbsqlit2/tests/hbmk_b32.bat
  - contrib/examples/hbsqlit2/tests/hbmk_vc.bat
  + contrib/examples/uhttpd/hbmk.bat
  - contrib/examples/uhttpd/hbmk_b32.bat
  - contrib/examples/uhttpd/hbmk_vc.bat
  + contrib/examples/terminal/hbmk.bat
  - contrib/examples/terminal/hbmk_b32.bat
  - contrib/examples/terminal/hbmk_vc.bat
  + contrib/examples/terminal/hbmk_trm_appn.bat
  - contrib/examples/terminal/hbmk_b32_trm_appn.bat
  - contrib/examples/terminal/hbmk_vc_trm_appn.bat
  + contrib/examples/rl/hbmk.bat
  - contrib/examples/rl/hbmk_b32.bat
  - contrib/examples/rl/hbmk_vc.bat
  + utils/hbdoc/hbmk.bat
  - utils/hbdoc/hbmk_b32.bat
  - utils/hbdoc/hbmk_vc.bat
  + utils/hbmake/hbmk.bat
  - utils/hbmake/hbmk_b32.bat
  - utils/hbmake/hbmk_vc.bat
    % Changed to generic make files.
2009-02-13 18:02:34 +00:00
Viktor Szakats
a09a5fd92c 2009-02-13 17:26 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/hbmk.bat
    + Added support for pure .c projects. (like pp)

  * contrib/examples/pp/hbmk_b32.bat
  * contrib/examples/pp/hbmk_vc.bat
  * contrib/examples/guestbk/hbmk_b32.bat
  * contrib/examples/guestbk/hbmk_vc.bat
  * contrib/examples/pe/hbmk_b32.bat
  * contrib/examples/pe/hbmk_vc.bat
  * contrib/examples/hbsqlit2/tests/hbmk_b32.bat
  * contrib/examples/hbsqlit2/tests/hbmk_vc.bat
  * contrib/examples/uhttpd/hbmk_b32.bat
  * contrib/examples/uhttpd/hbmk_vc.bat
  * contrib/examples/dbu/hbmk_b32.bat
  * contrib/examples/dbu/hbmk_vc.bat
  * contrib/examples/terminal/hbmk_b32.bat
  * contrib/examples/terminal/hbmk_b32_trm_appn.bat
  * contrib/examples/terminal/hbmk_vc.bat
  * contrib/examples/terminal/hbmk_vc_trm_appn.bat
  * contrib/examples/hscript/hbmk_b32.bat
  * contrib/examples/hscript/hbmk_vc.bat
  * contrib/examples/rl/hbmk_b32.bat
  * contrib/examples/rl/hbmk_vc.bat
  * utils/hbdoc/hbmk_b32.bat
  * utils/hbdoc/hbmk_vc.bat
  * utils/hbmake/hbmk_b32.bat
  * utils/hbmake/hbmk_vc.bat
    % Much simplified batch files. Actually the content of vc
      and b32 are fully identical, so you can easily create new
      flavours for GCC and OpenWatcom by simply making a copy by
      the name hbmk_gcc.bat or hbmk_ow.bat. Et voila.
    ; NOTE: As indicated, these won't work with Win9x anymore.

  * contrib/examples/pp/hbppcore.c
    + Added <ctype.h> to make it compile with recent Harbour.
2009-02-13 16:28:30 +00:00
Viktor Szakats
e7ca29fad0 2009-02-13 12:09 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
+ contrib/examples/terminal/hbmk_b32.bat
  + contrib/examples/terminal/hbmk_b32_trm_appn.bat
  + contrib/examples/terminal/hbmk_vc.bat
  + contrib/examples/terminal/hbmk_vc_trm_appn.bat
    + Added build batches, one generic for client and server,
      and one special for trm_appn.
    ; NOTE: Turn off Unicode when building these apps.
2009-02-13 11:10:49 +00:00
Viktor Szakats
b8bd30f542 2009-02-13 10:51 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbdefs.h
  * contrib/gtwvg/gtwvg.h
  * contrib/gtwvg/wvggui.h
  * contrib/examples/terminal/trm_client.prg
    + Added HB_EXTERN_START/END.

  * include/hbdefs.h
    + Added some comments from the original mail from Przemek.
2009-02-13 09:53:13 +00:00
Pritpal Bedi
eab18c603b 2009-02-13 00:29 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* harbour/contrib/gtwvg/wvgcore.c
    ! Fixed hb_wvt_Get|SetStringAttrib()s to respect return errcode.

  + harbour/contrib/examples/terminal
  + harbour/contrib/examples/terminal/terminal.prg
  + harbour/contrib/examples/terminal/terminal.ch
  + harbour/contrib/examples/terminal/trm_server.prg
  + harbour/contrib/examples/terminal/trm_client.prg
  + harbour/contrib/examples/terminal/trm_appn.prg
  + harbour/contrib/examples/terminal/reame.txt
    + Added components for Harbour Terminal Protocol

    Welcome in the world of Harbour Terminal Protocol
    =================================================
    
    Harbour Terminal Protocol is build on three components:
    
    1) Terminal Server
    2) Terminal Client
    3) The Harbour Application
    
    Terminal Server
    ===============
       Source    => trm_server.prg
       Link      => GTWVG
       Run       => trm_server.exe 2011
       Parameter => <TCP/IP Port number - [D] 8085 ]
       Mode      => MT ( Multi Threaded )
    
       Terminal Server will reside on the same machine or network ( as of now )
       where Harbour Application resides. Harbour Application must be able
       to be run by ShellExecute() WINAPI function issued by the Terminal Server.
    
    
    Terminal Client
    ===============
       Source    => trm_client.prg
       Link      => GTWVG
       Run       => trm_client.exe  <IP - 127.0.0.1 | vouch.dynalias.com>
                                    <Port where Terminal Server is Listening - 2011>
                                    <Harbour Application - c:\harbour\contrib\examples\terminal\trm_appn.exe>
                                    [Parameters - Norammly Supplied to Appln - Separated by SPACE ]
                                    [InitDirectory - Harbour Application's Startup Folder ]
       Mode      => ST ( Single Threaded )
    
       Terminal Client can be distributed anywhere there is ACCESS TO designated TCP/IP port,
       be it a network clinet or any computer having internet avalable.
       Parameters supplied TO Harbour Client can be on command line or as an .ini file.
       .Ini file may contain these entries:
    
          ServerIP      =  127.0.0.1 | vouch.dynalias.com
          ServerPort    =  2011
          Application   =  c:\harbour\contrib\examples\terminal\trm_appn.exe
          Parameters    =  any number of parameters separated by a space
          InitDirectory =  Complete Folder path from where Harbour Appln will be invoked.
    
       IF parameters are supplied as .ini file, then .ini filename ( without path ) will be the
       only parameter - note - only one parameter passed on the command line.
    
    
    Harbour Application
    ===================
       Source(s)  => trm_appn.prg | Your program sources +
                     terminal.prg +
                     terminal.ch
       Link       => GTWVG
       Run        => No
       Mode       => ST ( Single Thread )
    
       Main() FUNCTION in Harbour Application will have TO be modified TO accept
       one additional parameter <cServerInfo> at the END of the usual parameters
       your application is accepting as ususal. And make sure that you send the same
       number of parameter either on the command line or through .ini file.
       <cServerInfo> parameter is supplied by Harbour Terminal Server.
    
       At just start of the Harbour Application, immediately after variable definitions
       in main() add these lines:
    
       FUNCTION Main( [p1] [, p2] [, p3], cServerInfo )
          LOCAL x, y
    
          // Required it initialize the GTWVG window
          SetColor( 'N/W,W/B,W+/N' )
          CLS
          ? ' '
    
          #ifdef __REMOTE__
             // cServerInfo will be supplied by the Remote Server
             //
             RmtSvrSetInfo( cServerInfo )
    
             IF ( nServerPort := RmtSvrSetInfo( 1 ) ) <> NIL .and. nServerPort > 0
                IF !RmtSvrInitialize( NTRIM( nServerPort ), 60/*nTimeoutClient*/, 0.5 /*nTimeRefresh*/ )
                   Quit
                ENDIF
             ENDIF
          #endif
    
          ...
          ...
    
          RETURN
    
    
       Must remember to issue - ANNOUNCE HB_NOSTARTUPWINDOW - somewhere in your sources
       Please note that we do not want to show up the Harbour console on the server so
       HB_NOSTARTUPWINDOW symbol must be defined.
    
       And this is the only requirement for your appln to be NET ready.
    
    
    Technical Overview
    ==================
       Client connects to Server.
       Server looks for a free port - 45000+.
       Server invokes Harbour Application with client supplied parameters + <cSerrverInfo==45000+>.
       Harbour Application itself behaves as server on start listening on designated port.
       Server informs back to Client about this port where Harbour Application is listening.
       Client connects to Harbour Application on designated port.
       If connection is successful, Server closes the connection from Client and Application.
       Client and Application then have the direct communication.
       Client transmits the keystrokes and Application reacts TO those events as IF supplied via keyboard.
       Application transmits the screen buffer back TO client IF there have been any changes.
       Application also transmits special commands, call them 'Remote Procedure Calls'.
       Client responds TO received buffer according TO instruction it contains.
       Client retrieves buffer per command basis.
       Events are not serialized.
    
    
    The Bottom Line
    ===============
       The protocol above works as expected but is not as sophisticated as it should be.
       GTNET as Przemek has been talking about will be the perfect solution though this
       can be the basis FOR future enhancements. A lot can be improved, i.e., remote
       printing, etc., which I hope you Gurus can implement in no times.
    
       It is my humble contribution TO the Harbour world.
    
    
    Regards
    Pritpal Bedi <pritpal@vouchcac.com>
    a student of software analysis & design
2009-02-13 08:39:30 +00:00