116 Commits

Author SHA1 Message Date
harti
6fc3b6df1c modifier_M: instead of going through the string twice to compute the
size of the buffer we need, just allocate the possible maximum.

Patch:		7.117

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-15 15:05:14 +00:00
harti
7bd6f53de6 Style: Move a variable from a local scope up to the begin of the function.
Rename result variable so common code becomes more visible.
Rename freePtr to freeResult to make clear what pointer must be freed.

Patch:		7.116, 7.116a

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-15 14:52:10 +00:00
harti
84812666f6 VarParseLong: move the detection of the modifier separator ':' into
the loop. Add a comment why the 'consumed' variable is updated.
Rename lengthPtr to consumed.

Patch:		7.115

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-15 14:27:29 +00:00
harti
e46b6260f7 ParseModifier(): rename rw_str to value and reindent cleanup section.
ParseRestModifier() and ParseRestEnd(): move advancement of ptr to remove
a confusing calculation.
VarParseLong(): cleanup calculation of consumed.

Patch:		7.114

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-14 17:03:34 +00:00
harti
65a16da8cc Split off two function from VarParseLong to handle modifiers and the
actual variable lookup. Consistently rename lengthPtr to consumed.
Update a number of comments to match the code.

Patch:		7.111-113

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-14 12:03:30 +00:00
harti
751b56b164 Constify Var_Dump and simplify it by inlining VarPrintVar. 2005-03-10 15:38:01 +00:00
harti
6bf66a2080 Finish constification of Var_Parse() and Var_Subst().
Patch:		0.18, 0.8, 7.110

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-08 07:43:57 +00:00
harti
1cdb32f8eb Constify the callers of brk_string in this file.
Patch:		7.108

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-07 16:23:53 +00:00
harti
559a7bb274 Style: fix indendation of VarModify().
Patch:		7.107

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-07 16:14:50 +00:00
harti
7a2e27092a Factor out the 'S' modifier into its own function. Move a variable
that is now used for both the 'M'/'N' branch and the 'S' branch of
the switch statement into a common scope.

Patch:		7.102-105
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-07 16:08:39 +00:00
harti
360a1da14d Move the 'M' and 'N' modifiers into their own function.
Patch:		7.101

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-07 12:43:59 +00:00
harti
ee1efc8131 Constify the code paths for the 'M' and 'N' modifiers.
Patch:		7.100

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-03 11:26:28 +00:00
harti
68bf1b2765 Transform VarParseLong() so that the lifetime and the constness of
variables gets clearer. Transform if() conditions to make the flow
clearer.

Patch:		7.93-99

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-03 07:25:04 +00:00
harti
0724297b39 Move the check for the error case (variable ends without a closing
paranthesis or brace) into the loop and don't leak the buffer in this
case. Remove the check for Var_Parse returning NULL - it can't.

Patch:		7.92

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-02 15:52:04 +00:00
harti
70c2a8abb1 Fix indentation on a block of code.
Patch:		7.91

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-02 14:43:40 +00:00
harti
b1816b2629 Push the length computation down into VarParseShort().
Return always malloc()-ed strings from VarParseShort() to get
rid of warnings when returning string constants from a non-const char *
function.

Patch:		7.90

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-02 14:30:36 +00:00
harti
cacd7f8171 Make sure the length variable is initialized to 0 before passing
it to Var_Parse().

Patch:		7.85

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-01 17:52:18 +00:00
harti
ba225fbbb5 Split out ParseModifiers from VarParseLong.
Patch:		7.84
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-01 12:26:32 +00:00
harti
24ff2a5626 VarParseLong: Create new else block for haveModifier. Move the call
to VarExpand down into the branches of the if as well as cleanup code.
Eliminate code that is now obviously dead.

Patch:		7.83

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-01 12:22:07 +00:00
harti
6db6af010a Reverse a condition so that the else clause can be changed
to a fallthrough.

Patch:		7.82

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-03-01 07:58:18 +00:00
harti
c177bb55fb VarParseLong: Move the initialisation of dynamic up which saves
an else clause. Move the assignment to the lengthPtr down to
just before the return statements.

Patch:		7.81

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-28 17:23:17 +00:00
harti
b62f7499ab Don't modify the input string in VarParseLong(). It is not
necessary to NUL-terminated it, because we know the lengths
from the pointers.

Patch:		7.80

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-28 15:01:37 +00:00
harti
6829935329 Major clean up and split the Var_Parse monster function into three
functions: one for the single letter variables, one for the others
and one that does the recursive expansion.

Patches:	7.68-7.79

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-26 08:54:40 +00:00
harti
d1abcd79ac Change the return value of Var_Subst to return a Buffer instead
of a char *.

Patch:		7.49

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-25 13:16:56 +00:00
harti
1d7e5b95d3 Var_Parse: Separate different error states by introducing an else block
after a return. Move assignments to {freePtr, dynamic, start} closer to the
return statements to clarify which variables are actually used for
communication between the losely coupled blocks of the code. Clear up
an if-expression to make common structures of the conditions clearer.
Use strchr instead of switch statements to check for a character beeing
a member of a set.

Patches:	7-62.2, 7-62.3, 7-64, 7-65.1, 7-65.2
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-24 16:05:45 +00:00
harti
b7895e139c Push assignments to just before the returns from the function to
get it clearer what variables are actually needed.

Patches:	7.62.2, 7.62.3
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-24 10:35:39 +00:00
harti
0cc9f8934c Fix wording of a comment.
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-24 10:30:23 +00:00
harti
ba26f6388f Forgot to set *freePtr to FALSE in another place.
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-21 08:10:21 +00:00
harti
16ce0eb32d Push the assignments of some variables down into the sub-blocks where
it is actually needed. This makes clear in which subblocks the variables
are not needed and which can easier be split out.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-18 15:32:06 +00:00
harti
1da3314647 Push down variables into local scope in Var_Parse to make their
liveness clear for splitting up this monster function.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-18 07:33:43 +00:00
harti
cd4209c59e Whitespace cleanup: substitute mixed tabs and spaces by canonical
whitespace and line up some variable definitions.
2005-02-17 12:35:32 +00:00
harti
fd36b19bc9 Move error case to begin of if-else chain. Do not needless initialize
startc, but only at the place where the initialisation is needed. Remove
a needless else.

Submitted by:	Max Okumoto <okumoto@ucsd.edu> (partly)
2005-02-17 12:31:53 +00:00
harti
a83cbf6327 Sort out the error case that a single '$' was passed a little bit
earlier instead of mixing its handling with other cases.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-17 09:01:19 +00:00
harti
e6315e1667 Convert several instances of negative logic to positive logic.
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-11 10:49:01 +00:00
harti
5ac91dfb2b Buffers are already NUL-terminated so there is no need to explicitely add
a NULL.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-10 17:01:46 +00:00
harti
be46f93f56 Mostly stylistic nits in preparation for splitting up Var_Parse:
use a more consistent style with regard to *str and str[0];
simplify code by introducing a temporary variable;
shift a break around and add braces where appropriate.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-10 17:00:16 +00:00
harti
d1c5c1813a Let the buffer just use the default size by specifying 0 as the size
instead of specifying the default size explicitely.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-10 14:53:29 +00:00
harti
f247b32ef0 Mark the modification of the input string (which should really be const)
with a comment.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-10 14:52:14 +00:00
harti
9c56ede2b6 Style nits:
Move some assignments nearer to where they actually used. Convert a loop
from a for() to a while() to make it clearer and add braces to the long
body of it. Split assignment from variable declaration.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-10 14:50:34 +00:00
harti
374fae4a38 Describe a pre-condition of Var_Parse().
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-10 14:43:22 +00:00
harti
41f26b3bb5 Remove a comment that's not actual anymore.
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-10 14:41:22 +00:00
harti
1735ff6669 Fix spacing by converting mixes of space and tab to tab. Also add a number
of empty lines in appropriate places.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-10 14:39:05 +00:00
harti
c299702086 Use defines for character constants for open and closing braces and
parantheses. This helps editors to find its way through the horrible
mess of Var_Parse. Rewrite a for() loop into a while() to make it clearer.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-09 18:44:09 +00:00
harti
bfa90db5b7 Untangle VarFind and, while rewriting most of the function, fix the
intendation. (A large part of the function was already at intendation 8).
2005-02-09 13:13:59 +00:00
harti
0fce40c381 Introduce VarCreate and VarDestroy functions and used them where
appropriate.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-09 09:53:28 +00:00
harti
3d0eb6600e Remove an unneeded check. 2005-02-07 16:33:57 +00:00
harti
15f29409ba Introduce a typedef for variable value modifation functions and use it
where appropriate.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-07 16:27:19 +00:00
harti
c300f77198 Make the intention of a loop clearer.
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-07 15:51:51 +00:00
harti
4dd5217a47 Introduce Buf_StripNewLines() and use it where appropriate.
Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-07 11:27:47 +00:00
harti
92a5e4fdd6 Invent a Buf_AppendRange function that appends a non-NUL-terminated string
given by a pointer to the start of the string and a pointer one behind
the end.

Submitted by:	Max Okumoto <okumoto@ucsd.edu>
2005-02-07 07:54:23 +00:00