Fixes#2611 which was a regression from 692216b86a.
The bogus behaviour considered that if there were more than one arguments left to parse,
they would be a pair of arguments (switch and its parameter), and thus skipped the next
argument in all cases (thus potentially skipping a "-editor", which triggered #2611).
This is fixed by checking first for arguments that don't expect a parameter, and only
afterwards for arguments that expect a parameter. And if a "pair" of arguments is not
valid, we no longer increment the counter.
The original, uncommited fix simply changed compiler flag /MT to /MD. This
would link the C runtime dynamically instead of statically. This is bad,
because some users would have to install the c runtime before starting the
editor.
You can find alot of info about this error, which can happen after
upgrading to VS 2015, and there are workarounds. But I realized, that the
only place, where iob_func is used, is in e_os.h of the openssl library.
The latest version already contains a workaround. I simply updated the
part in e_os.h.
Reference: https://github.com/openssl/openssl/blob/master/e_os.h#L268
Reference: https://software.intel.com/en-us/forums/intel-parallel-studio-beta-archived/topic/266345
Reference: https://connect.microsoft.com/VisualStudio/feedback/details/1144980/error-lnk2001-unresolved-external-symbol-imp-iob-func
Reference: http://stackoverflow.com/questions/757418/should-i-compile-with-md-or-mt
Here's the original error message:
Creating library bin\godot.windows.tools.lib and object bin\godot.windows.tools.exp
drivers1.windows.tools.lib(t1_enc.windows.tools.obj) : error LNK2001: unresolved external symbol ___iob_func
drivers1.windows.tools.lib(txt_db.windows.tools.obj) : error LNK2001: unresolved external symbol ___iob_func
drivers1.windows.tools.lib(d1_enc.windows.tools.obj) : error LNK2001: unresolved external symbol ___iob_func
drivers1.windows.tools.lib(ui_openssl.windows.tools.obj) : error LNK2001: unresolved external symbol ___iob_func
drivers1.windows.tools.lib(cryptlib.windows.tools.obj) : error LNK2001: unresolved external symbol ___iob_func
drivers1.windows.tools.lib(pem_lib.windows.tools.obj) : error LNK2001: unresolved external symbol ___iob_func
drivers1.windows.tools.lib(d1_both.windows.tools.obj) : error LNK2001: unresolved external symbol ___iob_func
drivers1.windows.tools.lib(rsa_sign.windows.tools.obj) : error LNK2001: unresolved external symbol ___iob_func
bin\godot.windows.tools.exe : fatal error LNK1120: 1 unresolved externals
scons: *** [bin\godot.windows.tools.exe] Error 1120