After the possibility of the syntax check has been determined, a
temporary copy of the current buffer is made so that the most recent
unsaved changes could be seen by the syntax check tool. Making a copy
is quite straightforward in a standalone case (mode
1), as it's
just saving buffer contents to a temporary file.
Things get trickier, however, when master file is involved, as it requires to
Locating a master file is discussed in the following section.
Patching just changes all appropriate lines of the master file so that they
use the new (temporary) name of the current file. For example, suppose current
file name is
file.h, the master file is
it includes current file via
#include "file.h". Current file's copy
is saved to file
file_flymake.h, so the include line must be
#include "file_flymake.h". Finally, patched master file
is saved to
file_flymake_master.cpp, and the last one is passed to
the syntax check tool.