Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c5564e0 authored by Deepanshu Gupta's avatar Deepanshu Gupta
Browse files

Fix incremental builds for SDK.

Atree used to output files without escaping the filenames. This resulted
in breaks for incremental builds when filenames contained '$' symbol.
The change fixes this by escaping the filename properly.

Change-Id: I957787b1b3536c64ba6fcb5b4bb5fc60e8b04452
parent f6771f63
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -90,6 +90,26 @@ debug_printf(const char* format, ...)
    }
}

// Escape the filename so that it can be added to the makefile properly.
static string
escape_filename(const string name)
{
    ostringstream new_name;
    for (string::const_iterator iter = name.begin(); iter != name.end(); ++iter)
    {
        switch (*iter)
        {
            case '$':
                new_name << "$$";
                break;
            default:
                new_name << *iter;
                break;
        }
    }
    return new_name.str();
}

int
main(int argc, char* const* argv)
{
@@ -324,7 +344,8 @@ main(int argc, char* const* argv)
            for (vector<FileRecord>::iterator it=files.begin();
                                it!=files.end(); it++) {
                if (!it->sourceIsDir) {
                    fprintf(f, "%s \\\n", it->sourcePath.c_str());
                    fprintf(f, "%s \\\n",
                            escape_filename(it->sourcePath).c_str());
                }
            }
            fprintf(f, "\n");