]> git.saurik.com Git - wxWidgets.git/commitdiff
Rewrote ConvertToStandardCommandArgs; resource.h correction; ntwxwin.mak
authorJulian Smart <julian@anthemion.co.uk>
Wed, 14 Oct 1998 08:13:09 +0000 (08:13 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Wed, 14 Oct 1998 08:13:09 +0000 (08:13 +0000)
correction

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@822 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/app.tex
docs/latex/wx/closeevt.tex
include/wx/resource.h
src/msw/app.cpp
src/msw/makefile.nt
src/ntwxwin.mak

index dccfc2856746828d146df2e82457234e434e7f10..9ffe9c7190008f1acd9377e85cfc859cfe25c0af 100644 (file)
@@ -262,7 +262,7 @@ Under Windows, OnEndSession is called in response to the WM\_ENDSESSION message.
 \helpref{wxWindow::Close}{wxwindowclose},\rtfsp
 \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
 \helpref{wxCloseEvent}{wxcloseevent},\rtfsp
 \helpref{wxWindow::Close}{wxwindowclose},\rtfsp
 \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
 \helpref{wxCloseEvent}{wxcloseevent},\rtfsp
-\helpref{wxApp::OnQueryEndSession}{wxappqueryonendsession}
+\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession}
 
 \membersection{wxApp::OnInit}\label{wxapponinit}
 
 
 \membersection{wxApp::OnInit}\label{wxapponinit}
 
index 19576f9e7f8b6a42d485457182d8c284785fb538..58bf4391f06a80d4700eff11a239d86f99e6ea01 100644 (file)
@@ -25,8 +25,8 @@ This event applies to wxApp only.}
 
 \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
 \helpref{wxWindow::Close}{wxwindowclose},\rtfsp
 
 \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
 \helpref{wxWindow::Close}{wxwindowclose},\rtfsp
-\helpref{wxApp::OnQueryEndSession}{wxappqueryendsession},\rtfsp
-\helpref{wxApp::OnEndSession}{wxappendsession},\rtfsp
+\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp
+\helpref{wxApp::OnEndSession}{wxapponendsession},\rtfsp
 \helpref{Window deletion overview}{windowdeletionoverview}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 \helpref{Window deletion overview}{windowdeletionoverview}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
index 2cfbe992ade03e8b56302c0bdcfb7afb1e4a12bf..86e126f8331df4a87cac0bbe0a86da88d128bc1a 100644 (file)
@@ -171,7 +171,7 @@ extern wxMenuBar* WXDLLEXPORT wxResourceCreateMenuBar(const wxString& resource,
 extern wxMenu* WXDLLEXPORT wxResourceCreateMenu(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL);
 extern bool WXDLLEXPORT wxResourceParseData(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL);
 extern bool WXDLLEXPORT wxResourceParseFile(const wxString& filename, wxResourceTable *table = (wxResourceTable *) NULL);
 extern wxMenu* WXDLLEXPORT wxResourceCreateMenu(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL);
 extern bool WXDLLEXPORT wxResourceParseData(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL);
 extern bool WXDLLEXPORT wxResourceParseFile(const wxString& filename, wxResourceTable *table = (wxResourceTable *) NULL);
-extern bool WXDLLEXPORT wxResourceParseString(const wxString& s, wxResourceTable *table = (wxResourceTable *) NULL);
+extern bool WXDLLEXPORT wxResourceParseString(char* s, wxResourceTable *table = (wxResourceTable *) NULL);
 extern void WXDLLEXPORT wxResourceClear(wxResourceTable *table = (wxResourceTable *) NULL);
 // Register XBM/XPM data
 extern bool WXDLLEXPORT wxResourceRegisterBitmapData(const wxString& name, char bits[], int width, int height, wxResourceTable *table = (wxResourceTable *) NULL);
 extern void WXDLLEXPORT wxResourceClear(wxResourceTable *table = (wxResourceTable *) NULL);
 // Register XBM/XPM data
 extern bool WXDLLEXPORT wxResourceRegisterBitmapData(const wxString& name, char bits[], int width, int height, wxResourceTable *table = (wxResourceTable *) NULL);
index 22ced1c679b9676038a975731220874016f56628..0182dcc3a0338caff325dd5d15f03926dcd72ea0 100644 (file)
@@ -344,87 +344,76 @@ bool wxApp::RegisterWindowClasses()
 
 //// Convert Windows to argc, argv style
 
 
 //// Convert Windows to argc, argv style
 
-// FIXME this code should be rewritten (use wxArrayString instead...)
 void wxApp::ConvertToStandardCommandArgs(char* lpCmdLine)
 {
 void wxApp::ConvertToStandardCommandArgs(char* lpCmdLine)
 {
-  // Split command line into tokens, as in usual main(argc, argv)
-  int para,count = 0;
-  char *buf = new char[strlen(lpCmdLine) + 1];
-
-       para=0;
-  /* Model independent strcpy */
-  unsigned int i;
-  for (i = 0; i<strlen(lpCmdLine); i++)
-  {
-               buf[i]=lpCmdLine[i];
-               if (isspace(lpCmdLine[i]))
-                       para++;
-  }
-       buf[i]=0;
-  char **command = new char*[para+2];
+    wxStringList args;
+
+    wxString cmdLine(lpCmdLine);
+    int count = 0;
 
 
-  // Get application name
-  char name[260]; // 260 is MAX_PATH value from windef.h
-  ::GetModuleFileName(wxhInstance, name, WXSIZEOF(name));
+    // Get application name
+    char name[500];
+    ::GetModuleFileName(wxhInstance, name, WXSIZEOF(name));
 
 
-  // Is it only 16-bit Borland that already copies the program name
-  // to the first argv index?
+    // GNUWIN32 already fills in the first arg with the application name.
 #if !defined(__GNUWIN32__)
 #if !defined(__GNUWIN32__)
-// #if ! (defined(__BORLANDC__) && !defined(__WIN32__))
-  command[count++] = copystring(name);
-// #endif
+    args.Add(name);
+    count ++;
 #endif
 
 #endif
 
-  strcpy(name, wxFileNameFromPath(name));
-  wxStripExtension(name);
-  wxTheApp->SetAppName(name);
+    strcpy(name, wxFileNameFromPath(name));
+    wxStripExtension(name);
+    wxTheApp->SetAppName(name);
 
 
-  /* Break up string */
-  // Treat strings enclosed in double-quotes as single arguments
-  char* str = buf;
-  while (*str)
-  {
-/*
-       if ( count == WXSIZEOF(command) )
+    // Break up string
+    // Treat strings enclosed in double-quotes as single arguments
+    int i = 0;
+    int len = cmdLine.Length();
+    while (i < len)
     {
     {
-      wxFAIL_MSG("too many command line args.");
-      break;
-    }
-*/
-    while ( *str && isspace(*str) )  // skip whitespace
-      str++;
+        // Skip whitespace
+        while ((i < len) && isspace(cmdLine.GetChar(i)))
+            i ++;
 
 
-    if (*str == '"')
-    {
-      str++;
-      command[count++] = str;
-      while (*str && *str != '"')
-        str++;
+        if (i < len)
+        {
+            if (cmdLine.GetChar(i) == '"') // We found the start of a string
+            {
+                i ++;
+                int first = i;
+                while ((i < len) && (cmdLine.GetChar(i) != '"'))
+                    i ++;
+
+                wxString arg(cmdLine.Mid(first, (i - first)));
+
+                args.Add(arg);
+                count ++;
+
+                if (i < len)
+                    i ++; // Skip past 2nd quote
+            }
+            else // Unquoted argument
+            {
+                int first = i;
+                while ((i < len) && !isspace(cmdLine.GetChar(i)))
+                    i ++;
+
+                wxString arg(cmdLine.Mid(first, (i - first)));
+
+                args.Add(arg);
+                count ++;
+            }
+        }
     }
     }
-    else if (*str)
+
+    wxTheApp->argv = new char*[count + 1];
+    for (i = 0; i < count; i++)
     {
     {
-      command[count++] = str;
-      while (*str && !isspace(*str))
-        str++;
+        wxString arg(args[i]);
+        wxTheApp->argv[i] = copystring((const char*)arg);
     }
     }
-    if (*str)
-      *str++ = '\0';
-  }
-
-  wxTheApp->argv = new char*[count + 1];
-  wxTheApp->argv[count] = NULL; /* argv[] is NULL terminated list! */
-  wxTheApp->argc = count;
-
-  for (i = 0; i < count; i++)
-    wxTheApp->argv[i] = copystring(command[i]);
-
-#if !defined(__GNUWIN32__)
-// use copystring than delete this pointer 
-       delete [] command[0];
-#endif
-
-  delete [] command;
-  delete [] buf;
+    wxTheApp->argv[count] = NULL; // argv[] is a NULL-terminated list
+    wxTheApp->argc = count;
 }
 
 //// Cleans up any wxWindows internal structures left lying around
 }
 
 //// Cleans up any wxWindows internal structures left lying around
@@ -684,7 +673,7 @@ wxApp::~wxApp()
   {
     delete[] argv[i];
   }
   {
     delete[] argv[i];
   }
-  delete argv;
+  delete[] argv;
 }
 
 bool wxApp::Initialized()
 }
 
 bool wxApp::Initialized()
index 317456ed626bba8e0f5305bb3bd4a7686bddba38..5325dd38433107d39aa258062a718db502cd612a 100644 (file)
@@ -1535,4 +1535,6 @@ $(WXDIR)\docs\ps\faq.ps:  $(WXDIR)\docs\latex\faq\faq.dvi
         move faq.ps $(WXDIR)\docs\ps\faq.ps
         cd $(THISDIR)
 
         move faq.ps $(WXDIR)\docs\ps\faq.ps
         cd $(THISDIR)
 
-
+# In order to force document reprocessing
+touchmanual:
+    -touch $(WXDIR)\docs\latex\wx\manual.tex
index de0ab064ae251a90a27f73120cb1bc6583f26dab..f378ca7a994864e32f382a96b0e8185b0896ba5c 100644 (file)
@@ -29,7 +29,8 @@ CPU=i386
 OBJSUFF=obj
 SRCSUFF=cpp
 
 OBJSUFF=obj
 SRCSUFF=cpp
 
-WINFLAGS=-c -W3 -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1 -DWIN32 -D__WIN32__ $(WINVERSION)
+# If you set wxUSE_IOSTREAMH to 0, remove -Dtry=__try -Dexcept=__except -Dleave=__leave -Dfinally=__finally
+WINFLAGS=-c -W3 -Dtry=__try -Dexcept=__except -Dleave=__leave -Dfinally=__finally -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1 -DWIN32 -D__WIN32__ $(WINVERSION)
 #WINLINKFLAGS=/NODEFAULTLIB /INCREMENTAL:NO /NOLOGO -align:0x1000 -machine:$(CPU) -subsystem:windows,$(APPVER)
 WINLINKFLAGS=/INCREMENTAL:NO /NOLOGO -align:0x1000 -machine:$(CPU) -subsystem:windows,$(APPVER)
 #WINLIBS=kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib libc.lib oldnames.lib\
 #WINLINKFLAGS=/NODEFAULTLIB /INCREMENTAL:NO /NOLOGO -align:0x1000 -machine:$(CPU) -subsystem:windows,$(APPVER)
 WINLINKFLAGS=/INCREMENTAL:NO /NOLOGO -align:0x1000 -machine:$(CPU) -subsystem:windows,$(APPVER)
 #WINLIBS=kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib libc.lib oldnames.lib\