1 I forgot to talk about qq, which I have made some days ago.
2 qq takes its arguments and outputs them verbatim,
3 interspersing them with the null character.
4 qq does not evaluate its arguments,
5 but it is not a quotation,
6 because minish performs command substitution before calling qq,
7 and qq cannot prevent that.
8 Its behavior is similar to the backquote operator in scheme
9 and to double quotes in sh.
10 This feature is called “quasi-quotation”, or “quasiquotation”,
12 I like the name “qq”, because it is a short form of all three.
14 Today I have made a program called “␀”, which outputs the null character,
15 and a program called “pack”, which is similar to qq,
16 but intersperses its arguments with the string “(␀)”.
17 Assuming the program named ␀ can be found,
18 the output of qq and the output of pack behave the same
19 when they are the arguments of minish-eval,
20 but the output of pack does not contain any null character.
21 pack is thus named because it can be used
22 to pack any command into a single word.
24 After reading non-null character,
25 read_word() treated a null character or an end of file the same,
26 by appending a line terminator to the read characters
27 and returning the read word.
28 I criticized getline() for doing it, and then I did it myself.
29 I fixed this by adding a boolean value to ReadWord,
30 indicating whether the file has ended.
32 minish misses variables yet, in particular $PATH or equivalent.
33 I am going to implement variables in the future,
34 but I want to develop some external commands first,
35 to make sure that the present features behave correctly.
40 https://en.wikipedia.org/wiki/Quasi-quotation