diff options
Diffstat (limited to 'ACE/ace/Argv_Type_Converter.cpp')
-rw-r--r-- | ACE/ace/Argv_Type_Converter.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/ACE/ace/Argv_Type_Converter.cpp b/ACE/ace/Argv_Type_Converter.cpp index 178d25d9156..e16076818a4 100644 --- a/ACE/ace/Argv_Type_Converter.cpp +++ b/ACE/ace/Argv_Type_Converter.cpp @@ -108,10 +108,11 @@ ACE_Argv_Type_Converter::initialize (void) void ACE_Argv_Type_Converter::align_char_with_wchar (void) { - for (int wchar_argv_index = 0; wchar_argv_index < this->saved_argc_; - ++wchar_argv_index) + int wchar_argv_index = 0; + wchar_t* match_argv = this->wchar_argv_[0]; // pick the initial entry + + while (wchar_argv_index < this->saved_argc_) { - wchar_t *match_argv = this->wchar_argv_[wchar_argv_index]; // if n'th entries of both argv lists are different if (ACE_OS::strcmp (this->char_argv_[wchar_argv_index], ACE_TEXT_ALWAYS_CHAR (match_argv)) != 0) @@ -131,6 +132,9 @@ ACE_Argv_Type_Converter::align_char_with_wchar (void) } } } + + // move to the next wchar argv list entry + match_argv = this->wchar_argv_[++wchar_argv_index]; } this->cleanup (); @@ -139,10 +143,11 @@ ACE_Argv_Type_Converter::align_char_with_wchar (void) void ACE_Argv_Type_Converter::align_wchar_with_char (void) { - for (int char_argv_index = 0; char_argv_index < saved_argc_; - ++char_argv_index) + int char_argv_index = 0; + char* match_argv = this->char_argv_[0]; // pick the initial entry + + while (char_argv_index < saved_argc_) { - char* match_argv = this->char_argv_[char_argv_index]; // if n'th entries of both argv lists are different if (ACE_OS::strcmp ( ACE_TEXT_ALWAYS_CHAR (this->wchar_argv_[char_argv_index]), @@ -163,6 +168,9 @@ ACE_Argv_Type_Converter::align_wchar_with_char (void) } } } + + // move to the next wchar argv list entry + match_argv = this->char_argv_[++char_argv_index]; } this->cleanup(); |