I had the same feeling: https://en.wikipedia.org/wiki/Quine_%28computing%29#.22Cheat...
Re:A Quine in Fortran 90
by gliese1337 on Monday December 07, 2015 @12:02PM
(#10690705)
Many years ago, I attempted to cheat this way when writing a JScript quine- but it didn't work because the Windows Scripting Host keeps the source file open while interpreting it, which meant the script couldn't open its own source file because the file was already open in another program!
A proper quine, though, doesn't require input.
A multiquine does require you to give input in order to determine what language to output. Although it will output the current file if no input is giving. More info @ https://en.wikipedia.org/wiki/Quine_(computing)#Multiquines
Re:A Quine in Fortran 90
by gliese1337 on Monday December 07, 2015 @12:36PM
(#10691008)
The definition of a multiquine specifically disallows passing in source code as input, though. The input to a multiquine is strictly for selecting which sub-quine to run, or which output set to calculate, and is not used in any way to influence the calculation of the selected output.
It feels like cheating, but it's also probably the easiest way to get a true quine which'll always work even if you modify parts of the code (while retaining the part of the program which ingests and prints out the file's contents).