Sign in to follow this  
Followers 0

Worst AutoIt Bug Award

10 posts in this topic

Posted (edited)

Is this one of the worst bugs ever or what? #1844

It took me a while to see what the bug was saying...eeeeek.

Edit: IIRC SplashTextOn was one of the very early pieces of code. But still....

Edited by Jon

Share this post


Link to post
Share on other sites



Posted

If the variant class still has the operators overloaded, I can see why someone could make an easy mistake like that.

Share this post


Link to post
Share on other sites

Posted

I've not looked at the code yet but it's almost certainly someone casting away a string's const-ness. I'm pretty sure it wasn't me as well so I get to be preachy about it too :unsure:

Share this post


Link to post
Share on other sites

Posted (edited)

If it's casting away const it's doing so using the C cast method:

Find all "const_cast", Subfolders, Find Results 1, "Entire Solution"
  C:\Data\My Programs\C++\Autoit\autoit\src\script_inet.cpp(336):       // const_cast is used here because the function expects LPVOID.  The casts are safe, though.
  C:\Data\My Programs\C++\Autoit\autoit\src\script_inet.cpp(337):       InternetSetOption(hInet, INTERNET_OPTION_PROXY_USERNAME, const_cast<LPTSTR>(sProxyUser.c_str()), static_cast<DWORD>(sProxyUser.length() + 1) );
  C:\Data\My Programs\C++\Autoit\autoit\src\script_inet.cpp(338):       InternetSetOption(hInet, INTERNET_OPTION_PROXY_PASSWORD, const_cast<LPTSTR>(sProxyPass.c_str()), static_cast<DWORD>(sProxyPass.length() + 1));
  C:\Data\My Programs\C++\Autoit\autoit\src\CreateProcessSimple.cpp(206):   ProfileInfo.lpUserName = const_cast<LPWSTR>(lpUsername);
  C:\Data\My Programs\C++\Autoit\autoit\src\script_inet.cpp(336):       // const_cast is used here because the function expects LPVOID.  The casts are safe, though.
  C:\Data\My Programs\C++\Autoit\autoit\src\script_inet.cpp(337):       InternetSetOption(hInet, INTERNET_OPTION_PROXY_USERNAME, const_cast<LPTSTR>(sProxyUser.c_str()), static_cast<DWORD>(sProxyUser.length() + 1) );
  C:\Data\My Programs\C++\Autoit\autoit\src\script_inet.cpp(338):       InternetSetOption(hInet, INTERNET_OPTION_PROXY_PASSWORD, const_cast<LPTSTR>(sProxyPass.c_str()), static_cast<DWORD>(sProxyPass.length() + 1));
  C:\Data\My Programs\C++\Autoit\autoit\src\CreateProcessSimple.cpp(206):   ProfileInfo.lpUserName = const_cast<LPWSTR>(lpUsername);
  Matching lines: 8 Matching files: 4   Total files searched: 294

I wrote all those const_cast and all of them are correct. My code is const-correct, the C API we are using is not, thus I must cast away const.

Edited by Valik

Share this post


Link to post
Share on other sites

Posted

Is that worst as in the bug report being difficult or worst as in "why is the splash modifying the variable"?

Share this post


Link to post
Share on other sites

Posted

The modifying bit.

Share this post


Link to post
Share on other sites

Posted

LPCTSTR szTemp = _tcstok((LPTSTR)szText, _T("\r\n") );

Share this post


Link to post
Share on other sites

Posted

Ugh. _tcstok() modifies the string, that's why it doesn't take a fucking constant. Sigh. Wonder how many more stupid lines like that are in the code?

Share this post


Link to post
Share on other sites

Posted (edited)

$input = "Line one" & @CRLF & "Line two"

$result = StringGetFirstLine($input)

MsgBox(0, "", $result)

Func StringGetFirstLine($str)
    SplashTextOn("", $str, -1, -1, -1, -1, 32 + 1)
    SplashOff()
    Return $str
EndFunc

:huh2:

Amidoingitrite?

Edited by Manadar

Share this post


Link to post
Share on other sites

Posted

Funny function Mandar! :huh2:

Func StringGetFirstLine($str)
    SplashTextOn("", $str, -10, -10, 0, 0, 32 + 1)
    SplashOff()
    Return $str
EndFunc

Now it is perfect! ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.