Files
harbour-core/harbour/doc/en/cmdline.txt
Viktor Szakats 8fc1cbd0c3 2008-08-25 23:30 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* doc/cmdline.txt
   * doc/hrb_faq.txt
   * doc/en/cmdline.txt
   * doc/en/dir.txt
   * doc/en/file.txt
   * doc/en/set.txt
   * doc/es/cmdline.txt
   * doc/es/dir.txt
   * doc/es/file.txt
   * doc/whatsnew.txt
   * contrib/hbct/disk.c
   * contrib/hbodbc/odbc.txt
   * contrib/hbwhat32/whtmapi.c
   * contrib/hbwhat32/whtsys.c
   * contrib/hbwhat32/whtinet.c
   * contrib/hbziparch/hbziparc.c
   * contrib/hbnf/chdir.c
   * contrib/hbnf/tempfile.prg
   * contrib/hbnf/ftisprn.c
   * contrib/hbnf/getenvrn.c
   * contrib/hbnf/mkdir.c
   * contrib/hbnf/rmdir.c
   * contrib/hbpgsql/readme.txt
   * contrib/hbclipsm/environ.c
   * contrib/hbclipsm/tests/testenv.prg
   * contrib/hbgd/tests/gdtest.prg
   * contrib/hbgd/tests/test_out.prg
   * contrib/hbgd/tests/gdtestcl.prg
   * contrib/hbgd/tests/testdpi.prg
   * contrib/hbgd/tests/counter.prg
   * contrib/hbtip/thtml.prg
   * contrib/hbvpdf/hbvpdf.prg
   * contrib/hbvpdf/tests/pdf_demo.prg
   * contrib/hbvpdf/hbvpdft.prg
   * contrib/examples/guestbk/guestbk.prg
   * contrib/examples/pe/editorlo.c
   * utils/hbdoc/genos2.prg
   * utils/hbdoc/hbdoc.prg
   * utils/hbmake/hbmake.prg
     ! Filename casing fixes. (nothing critical)
2008-08-25 21:36:00 +00:00

116 lines
4.0 KiB
Plaintext

/*
* $Id$
*/
/* $DOC$
* $FUNCNAME$
* Command line Utility
* $CATEGORY$
* Document
* $ONELINER$
* Compiler Options
* $DESCRIPTION$
* This spec goes for CLIPPERCMD, HARBOURCMD, Harbour compiler and
* #pragma directives in the source code.
*
* The command line always overrides the envvar.
*
* Note that some switches are not accepted in envvar,some others in
* #pragmas.
*
* First the parser should start to step through all the tokens in the
* string separated by whitespace. (or just walk through all argv[])
*
* 1.) If the token begins with "-", it should be treated as a new style
* switch.
*
* One or more switch characters can follow this. The "-" sign inside
* the token will turn off the switch.
*
* If the switch has an argument all the following characters are
* treated as part of the argument.
*
* The "/" sign has no special meaning here.
*
* <table>
* Switch Result option
*
* -wn ( W N )
* -w-n ( !W N )
* -wi/harbour/include/ ( W I=/harbour/include/ )
* -wi/harbour/include/n ( W I=/harbour/include/n )
* -wes0n ( W ES=0 N )
* -wen ( W [invalid switch: e] N )
* -wesn ( W ES=default(0) N )
* -wses ( W S ES=default(0) )
* -wess ( W ES=default(0) S )
* - ( [invalid switch] )
* -w-n-p ( !W !N P )
* -w-n-p- ( !W !N !P )
* -w- -w -w- ( finally: !W )
* </table>
*
* 2.) If the token begins with "/", it should be treated as a compatibility
* style switch.
*
* The parser scans the token for the next "/" sign or EOS and treats
* the resulting string as one switch.
*
* This means that a switch with an argument containing "/" sign has
* some limitations. This may be solved by allowing the usage of quote
* characters. This is mostly a problem on systems which use "/" as
* path separator.
*
* The "-" sign has no special meaning here, it can't be used to
* disable a switch.
*
* <table>
* Switch Result option
*
* /w/n ( W N )
* /wo/n ( [invalid switch: wo] N )
* /ihello/world/ ( I=hello [invalid switch: world] [invalid switch: /] )
* /i"hello/world/"/w ( I=hello/world/ W )
* /ihello\world\ ( I=hello\world\ )
* </table>
*
* 3.) If the token begins with anything else it should be skipped.
*
* The Harbour switches are always case insensitive.
*
* In the Harbour commandline the two style can be used together: </par>
* harbour -wnes2 /gc0/q0 -iC:\hello
*
* Exceptions:
*
* - Handlig of the /CREDIT undocumented switch on Harbour command line
* is unusual, check the current code for this.
*
* - The CLIPPER, HARBOUR and Harbour application command line parsing
* is a different beast, see cmdarg.c for a NOTE.
*
* Notes:
*
* - All occurences where a path is accepted, Harbour should handle the
* quote char to specify path containing space, negative sign, slash,
* or any other chars with special meaning.
*
* /i"C:/hello/" </par>
* -i"C:/hello-n" </par>
* /i"C:/Program Files/" </par>
* -i"C:/Program Files/" </par>
*
* <fixed>
* Just some examples for the various accepted forms:
* //F20 == /F20 == F20 == F:20 == F20X
* //TMPPATH:C:\hello
* F20//TMPPATH:/temp///F:30000000 NOIDLE
* F0NOIDLEX10
* SQUAWKNOIDLE
* </fixed>
* "//" should always be used on the command line.
* $SEEALSO$
* Compiler Options
* $END$
*/