/ personal

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 name returned by that function was one of the purpose of my job, so I looked for the implementation. And this is what I have 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];

        (LPCTSTR) szSection,
        (LPCTSTR) szField,

    return szResult;

Surprised? Now I'm sure you are wondering why someone had done this. I'm still wondering too.

Cover image by Fanghong taken from Wikimedia Commons licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.