Sign in to follow this  
Followers 0

Worst AutoIt Bug Award

10 posts in this topic

#1 ·  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

"If you can post in the forum, that there is an issue with the forum, then the forum is working spectacularly. All else is cosmetics, and can totally suck it."
- boththose, April 2015.

Share this post


Link to post
Share on other sites



#2 ·  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

#3 ·  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:


"If you can post in the forum, that there is an issue with the forum, then the forum is working spectacularly. All else is cosmetics, and can totally suck it."
- boththose, April 2015.

Share this post


Link to post
Share on other sites

#4 ·  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

#5 ·  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

#6 ·  Posted

The modifying bit.


"If you can post in the forum, that there is an issue with the forum, then the forum is working spectacularly. All else is cosmetics, and can totally suck it."
- boththose, April 2015.

Share this post


Link to post
Share on other sites

#7 ·  Posted

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


"If you can post in the forum, that there is an issue with the forum, then the forum is working spectacularly. All else is cosmetics, and can totally suck it."
- boththose, April 2015.

Share this post


Link to post
Share on other sites

#8 ·  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

#9 ·  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

#10 ·  Posted

Funny function Mandar! :huh2:

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

Now it is perfect! ;)


Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs, and the Universe
trying to produce bigger and better idiots.
So far, the Universe is winning.

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