Horror Code: The Matryoshka Functions
Some years ago, when I was a Windows developer, the maintenance of a big project has been assigned to me. My job was to fix a couple of minor bugs and add some new functions. The problem was that the creator (and previous maintainer) have resigned years before, leaving absolutely no documentation.
The only thing I could do was to look the code and read the few comments. At some point, I found a call to the function GetName()
. Changing the string returned by that function was one of the things in my to-do list, so I looked for the implementation. And this is what I found:
CString GetName()
{
return GetValue("Name");
}
Pretty useless, don't you think? OK, let's see the implementation of GetValue()
:
#define MAIN_APP "Main"
CString GetValue(CString szField)
{
return GetField(MAIN_APP, szField);
}
Is this a joke? Well, let's see where the story ended:
#define MAIN_INI "main.ini"
CString GetField(CString szSection, CString szField)
{
char szResult[100];
GetPrivateProfileString(
(LPCTSTR) szSection,
(LPCTSTR) szField,
"App",
szResult,
100,
MAIN_INI
);
return szResult;
}
Surprised? Now I'm sure you are wondering why someone had done this. I'm still wondering too.
Cover image from Wikimedia Commons by Fanghong licensed under CC BY-SA 3.0.
Post last updated on 2022/06/05.