*
* This only keeps track of the immutable parameters for the substitution
* task: stuff which changes (flags, filtering state, cursor position) is
- * maintained separately.
+ * maintained separately.
*/
struct subst {
struct config *config; /* configuration state */
/* Scan and resolve a `[SECT:]VAR' specifier at P.
*
- * Return the address of the next character following the specifier. L is a
- * limit on the region of the buffer that we should process; SB is the
+ * Return the address of the next character following the specifier; and set
+ * *VAR_OUT to point to the variable we found, or null if it's not there. L
+ * is a limit on the region of the buffer that we should process; SB is the
* substitution state which provides the home section if none is given
* explicitly; FILE and LINE are the source location to blame for problems.
*/
* to it.
*/
- /* If there's no next charact3er then we should be upset. */
+ /* If there's no next character then we should be upset. */
p++; if (p >= l) lose("%s:%u: unfinished `\\' escape", file, line);
if (!(f&SF_SKIP)) {
* toothpick, so now we need Q + (Q + 1) = 2 Q + 1 toothpicks.
*
* Calculate this here rather than at each point toothpicks
- * needs to be deployed.
+ * need to be deployed.
*/
subqfilt = 2*subqfilt + 1;
else if (t - p == 1 && *p == 'l')
- /* `u' -- convert to uppercase.
+ /* `l' -- convert to lowercase.
*
* If a case conversion is already set, then that will override
* whatever we do here, so don't bother.