diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-10-28 15:25:00 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-10-28 15:25:00 +0000 |
commit | f6c285bb55b79dd187222c6e3c568210177d127a (patch) | |
tree | 870013af6d21e4768ac9635637536d68decc576c | |
parent | b73261df29da617c51f29e2aadf8cd53493ace6a (diff) |
INTEGRATION: CWS valgrind02 (1.3.340); FILE MERGED
2004/10/20 12:01:57 mhu 1.3.340.4: #i35209# Removed special handling for WinMain() case as standard 'argc' and 'argv' are always provided by msvcrt (as __argc and __argv externals) and can thus be passed to osl_setCommandArgs().
2004/10/18 17:26:36 mhu 1.3.340.3: #i35209# Corrected forward declaration for 'osl_setCommandArgs()' to be visible for all platforms.
2004/10/11 17:20:47 mhu 1.3.340.2: #i35209# Added formal parameters 'argc', 'argv' to 'sal_main()', added SAL_IMPLEMENT_MAIN_WITH_ARGS(_argc_, _argv_) macro to allow for more widespread usage in classical 'main(int argc, char** argv)' functions.
2004/10/08 15:53:23 mhu 1.3.340.1: #i35209# Added function 'osl_setCommandArgs()', adapted 'osl_getExecutableFile()' and 'osl_getCommandArg[Count]()', cleaned up previous 'getCmdLine()' mess, removed unused / obsolete code.
-rw-r--r-- | sal/inc/sal/main.h | 48 |
1 files changed, 31 insertions, 17 deletions
diff --git a/sal/inc/sal/main.h b/sal/inc/sal/main.h index ced19b284f13..452de0211ee0 100644 --- a/sal/inc/sal/main.h +++ b/sal/inc/sal/main.h @@ -2,9 +2,9 @@ * * $RCSfile: main.h,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: hro $ $Date: 2001-02-27 10:44:53 $ + * last change: $Author: rt $ $Date: 2004-10-28 16:25:00 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -72,13 +72,19 @@ extern "C" { /* Prototype of sal main entry */ -int SAL_CALL sal_main(); +int SAL_CALL sal_main (int argc, char ** argv); +void SAL_CALL osl_setCommandArgs(int argc, char ** argv); /* Definition macros for CRT entries */ #ifdef SAL_W32 +#ifndef INCLUDED_STDLIB_H +#include <stdlib.h> +#define INCLUDED_STDLIB_H +#endif + /* Sorry but this is neccessary cause HINSTANCE is a typedef that differs (C++ causes an error) */ #if 0 @@ -107,42 +113,44 @@ DECLARE_HANDLE(HINSTANCE); #endif - #define SAL_DEFINE_CRT_ENTRY() \ -int __cdecl main() \ +int __cdecl main(int argc, char ** argv) \ { \ - return sal_main(); \ + osl_setCommandArgs(argc, argv); \ + return sal_main(argc, argv); \ } \ int WINAPI WinMain( HINSTANCE _hinst, HINSTANCE _dummy, char* _cmdline, int _nshow ) \ { \ - return sal_main(); \ + int argc = __argc; char ** argv = __argv; \ + osl_setCommandArgs(argc, argv); \ + return sal_main(argc, argv); \ } - #else /* ! SAL_W32 */ #define SAL_DEFINE_CRT_ENTRY() \ -int main() \ +int main(int argc, char ** argv) \ { \ - return sal_main(); \ + osl_setCommandArgs(argc, argv); \ + return sal_main(argc, argv); \ } \ -#endif +#endif /* ! SAL_W32 */ /* Implementation macro */ -#define SAL_IMPLEMENT_MAIN() \ +#define SAL_IMPLEMENT_MAIN_WITH_ARGS(_argc_, _argv_) \ SAL_DEFINE_CRT_ENTRY() \ - int SAL_CALL sal_main() + int SAL_CALL sal_main(int _argc_, char ** _argv_) +#define SAL_IMPLEMENT_MAIN() SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) -/* - "How to use" Example: +/* + "How to use" Examples: #include <sal/main.h> - SAL_IMPLEMENT_MAIN() { DoSomething(); @@ -150,8 +158,14 @@ int main() \ return 0; } -*/ + SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) + { + DoSomethingWithArgs(argc, argv); + return 0; + } + +*/ #ifdef __cplusplus } /* extern "C" */ |