1 /*---------------------------------------------------------------------------*
2   Project:  TwlSDK - OS - demos - argument-2
3   File:     main.c
4 
5   Copyright 2007-2008 Nintendo.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Date:: 2008-07-09#$
14   $Rev: 7153 $
15   $Author: yada $
16  *---------------------------------------------------------------------------*/
17 #include <nitro.h>
18 
19 //================================================================================
20 #define ARG_BUFFER_SIZE   0x100
21 char    argBuffer[ARG_BUFFER_SIZE];
22 
23 const char str[] = "dummy -a 123 \"my original string\" 456";
24 
25 static void displayArg();
26 
27 /*---------------------------------------------------------------------------*
28   Name:         NitroMain
29 
30   Description:  main
31 
32   Arguments:    None
33 
34   Returns:      None
35  *---------------------------------------------------------------------------*/
NitroMain(void)36 void NitroMain(void)
37 {
38     const char *originalBuffer;
39 
40     OS_Init();
41 
42     //---- save original argument buffer
43     originalBuffer = OS_GetArgumentBuffer();
44 
45     //================ my arguments
46     //---- convert to my argument buffer
47     OS_ConvertToArguments(str, ' ', argBuffer, ARG_BUFFER_SIZE);
48 
49     //---- set my argument buffer
50     OS_SetArgumentBuffer(argBuffer);
51 
52     //---- display
53     displayArg();
54 
55     //================ original arguments
56     //---- recover to original buffer
57     OS_SetArgumentBuffer(originalBuffer);
58 
59     //---- display
60     displayArg();
61 
62 
63     OS_Printf("==== Finish sample.\n");
64     OS_Terminate();
65 }
66 
67 /*---------------------------------------------------------------------------*
68   Name:         displayArg
69 
70   Description:  display arguments
71 
72   Arguments:    None
73 
74   Returns:      None
75  *---------------------------------------------------------------------------*/
displayArg(void)76 static void displayArg(void)
77 {
78     int     argc;
79     int     n;
80 
81     //---- display argc
82     argc = OS_GetArgc();
83 
84     OS_Printf("argc = %d\n", argc);
85 
86     //---- display argv
87     for (n = 0; n < argc; n++)
88     {
89         const char *argv = OS_GetArgv(n);
90         OS_Printf("[%d] address=%x string=[%s]\n", n, argv, argv);
91     }
92     OS_Printf("\n");
93 }
94 
95 /*====== End of main.c ======*/
96