summaryrefslogtreecommitdiff
path: root/ACE/ace/Argv_Type_Converter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/Argv_Type_Converter.cpp')
-rw-r--r--ACE/ace/Argv_Type_Converter.cpp20
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();