Hartmut Brandt
ba467ce430
Make the structure for handling the input stack local to the parse
...
module. The only module accessing it (the current line number) was the
condition module, so pass the current line number as a function argument.
Centralize the pushing of new input sources into one function
ParsePushInput() and rename the function handling the popping from ParseEOF()
to ParsePopInput(). Make the entire thing a little bit clearer, by holding
the current input source in the top element of the stack instead of
using extra variables for this. Use a type-safe intrusive list for the
input stack.
2005-03-30 15:18:58 +00:00
Hartmut Brandt
f43eb6f83b
Fix a bug introduced in a previous commit: ParseModifier() consumes
...
characters so it is not safe to move around code from
before it to after it. This should fix problems with building the
documentation.
Patch: 7.170
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-30 15:14:22 +00:00
Hartmut Brandt
fe504834f3
Style: de-lispify by removing extra parantheses in conditional expressions.
2005-03-23 16:28:57 +00:00
Hartmut Brandt
1b0d28102e
Style: make indentation 8 characters.
2005-03-23 16:14:41 +00:00
Hartmut Brandt
fb1dac11b4
Make paths an explicite datatype instead of using the generic Lst.
...
A Path is now a TAILQ of PathElements each of which just points to
a reference counted directory. Rename all functions dealing with Paths
from the Dir_ prefix to a Path_ prefix.
2005-03-23 12:56:15 +00:00
Hartmut Brandt
76a6d2363f
Style: <space><tab> -> <tab>
2005-03-22 12:59:02 +00:00
Hartmut Brandt
cbb7c3931c
Rename struct Path to struct Dir and move it into the C-file. It
...
is not used outside.
2005-03-22 12:54:46 +00:00
Hartmut Brandt
35167ece76
Remove debugging code that crept in in the last commit.
2005-03-22 12:52:00 +00:00
Hartmut Brandt
ad6ba6872a
Remove Lst_Find() and Lst_FindFrom() now that they aren't needed anymore.
2005-03-22 12:40:24 +00:00
Hartmut Brandt
e4a90d00b4
Remove the last two instances of Lst_Find() calls.
2005-03-22 12:38:55 +00:00
Hartmut Brandt
144b68a7ef
Use VarParse() inside var.c instead of Var_Parse().
...
Patch: 7.163
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:20:08 +00:00
Hartmut Brandt
6fd71d7a66
Unify callers to Var_Parse() with regard to variable names.
...
Patch: 7.162
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:18:15 +00:00
Hartmut Brandt
a4c193bbe2
Make some callers of VarFind using the same code structure.
...
Patch: 7.161
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:16:09 +00:00
Hartmut Brandt
29b59e2865
De-lispify some if()-expressions by removing extra parantheses.
...
Patch: 7.160
Requested by: harti
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:12:16 +00:00
Hartmut Brandt
b6c44471ba
Return a Buf object from VarGetPattern() instead of a char * and a size_t.
...
Store a Buf object in struct VarPattern instead of a char * and a length.
Patch: 7.158
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:09:43 +00:00
Hartmut Brandt
ce873d22d5
Use the struct VarPattern's lhs field instead of using an extra variable
...
to store the left expression of a C modificator.
Patch: 7.157
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:06:34 +00:00
Hartmut Brandt
6edf648505
Merge struct VarREPattern into struct VarPattern. This will help sorting
...
out common code.
Patch: 7.156
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:03:42 +00:00
Hartmut Brandt
b31a79d77e
Sort prototypes.
...
Patch: 7.155
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:01:04 +00:00
Hartmut Brandt
d344c54aba
Fix indentation.
...
Patch: 7.154 (partly)
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 08:00:02 +00:00
Hartmut Brandt
5af70720f4
Delete an extra empty line.
...
Patch: 7.153
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 07:57:18 +00:00
Hartmut Brandt
1ff3feb03d
An automatic variable in a local scope is (conceptionally) destroyed with
...
the closing brace so it is unwise to keep a pointer to it. Make
the variable static to fix this.
Patch: 7.152
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 07:56:22 +00:00
Hartmut Brandt
4896df6314
Simplify buffer access by using Buf_Data() and Buf_Peel() where
...
appropriate.
Patch: 7.147-7.151
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 07:50:40 +00:00
Hartmut Brandt
9668c011e9
Two new functions: Buf_Data() returns a reference to the data in
...
the buffer and Buf_AppendBuf() appends a copy of one buffer to another
buffer.
Patch: 7.146,7.147
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 07:42:51 +00:00
Hartmut Brandt
cffe7fcdef
Remove a temporary variable. Rename pattern to patt to be consistent.
...
Remove unreachable code for VAR_NOSUBST - it was never set.
Replace redundant code with calls to VarGetPattern().
Patch: 7.143-7.145
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-22 07:38:46 +00:00
Hartmut Brandt
1610cab61d
Remove unneeded temporary variables in modifier_S() and modifier_C().
...
Change the parsing of the C modifier flags so that specifying both
'1' and 'g' gives an error.
Patch: 7.141,7.142
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 12:40:27 +00:00
Hartmut Brandt
090051a931
Remove comment about Var_Parse assuming that the first character
...
is always a '$'. This is not always correct, for example for
conditionals: .if defined(foobar).
Clean up some comments.
Move common code out of if-statements.
Patch: 7.140
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 12:32:41 +00:00
Hartmut Brandt
f244a9fb0a
Split out SysV variable substitution into its own function.
...
Patch: 7.139
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 12:27:53 +00:00
Hartmut Brandt
a33399ac68
Rename freePtr to freeResult to make it more obvious about what
...
pointer we're talking.
Patch: 7.138
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 12:19:23 +00:00
Hartmut Brandt
6cb006aff1
Move some code from ParseModifier() into the calling function to
...
simplify things. Correct a number comments.
Patch: 7.137
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 12:17:44 +00:00
Hartmut Brandt
61cc000336
Cleanup the VAR_JUNK handling.
...
Patch: 7.136
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 12:15:06 +00:00
Hartmut Brandt
8f712e5034
Don't pass 'consumed' through all the parsing routines where it can be computed
...
by the caller. Don't pass 'endc' - it can be computed from 'startc'.
Remove unneccessary temporary variables. Remove constant if-expressions
and remove code before call Fatal() - there is no point to cleanup before
aborting.
Patch: 7.134,7.135
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 12:07:14 +00:00
Hartmut Brandt
b072d12283
Change one occurence of 'delim' to the correct type. Delete another
...
occurence which actually holds always the same constant value.
Shorten the name pattern to patt.
Patch: 7.133
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 11:54:46 +00:00
Hartmut Brandt
13591063f0
Replace calls to Lst_Find with either appropriate LST_FOREACH macros
...
plus predicate inlining or a special purpose function with takes
and returns the correct types.
2005-03-21 11:44:57 +00:00
Hartmut Brandt
0906b0904f
Reduce number of parameters passed between the parsing routines
...
by putting them into struct VarParser or computing them (consumed).
Change the loop termination condition in VarParseLong from endc to \0.
Patch: 7.128-7.132
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 11:43:02 +00:00
Hartmut Brandt
73c5a04dfa
Reduce the number of explicit parameters passed to VarParse()
...
by passing them through struct VarParser.
Patch: 7.127
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-21 07:40:33 +00:00
Hartmut Brandt
cedc4e46c2
Cleanup handling of colons in variable substitutions.
...
Patch: 7.126
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-18 16:52:46 +00:00
Hartmut Brandt
af0b17b173
Unfold parsing of single letter modifiers from multi-letter ones.
...
Patch: 7.125
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-18 15:51:04 +00:00
Hartmut Brandt
2ae8b5b5f6
Style: fix indentation and <space><tab>.
...
Patch: 7.124
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-18 15:44:23 +00:00
Hartmut Brandt
e524dd1162
Split out the 'S' modifier into its own function.
...
Patch: 7.122,7.123
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-18 15:37:31 +00:00
Hartmut Brandt
1753011e3f
Convert Var_Parse to a wrapper function.
...
Reduce the number of arguments passed between these functions by
creating a special-purpose struct.
Patch: 7.120,7.121
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-18 15:34:07 +00:00
Hartmut Brandt
6ea1a0dc21
Replace Lst_Find calls with LST_FOREACH loops. This helps in
...
constification und simplifies the code because the one-liner
predicates can be inlined into the code.
2005-03-18 15:25:23 +00:00
Hartmut Brandt
2559e71404
Replace a bogus use of Lst_Find with explicite LST_FOREACH calls
...
and remove the unneeded second argument to ReadMakefile.
2005-03-18 15:23:49 +00:00
Hartmut Brandt
7ea59d002e
Fix a bug in matching suffixes. Under certain circumstances the code
...
would access memory before the beginning of the string to match (the
suffix match starts at the end of both the string and the suffix and
proceedes to the begin until either the start of the suffix is hit
or the character does not match). This could lead to a memcpy copying
into random memory. Fix this by checking the length of the string to
match too and replacing the Lst_Find calls with LST_FOREACH loops
(last part by me).
Submitted by: Matt Dillon <dillon@apollo.backplane.com> (in principle)
2005-03-18 15:16:09 +00:00
Hartmut Brandt
0ce37001aa
Now that there are no users of Lst_ForEach and Lst_ForEachFrom are left
...
delete these two macros and all the associated stuff.
2005-03-16 16:11:11 +00:00
Hartmut Brandt
0bcbcabd26
Replace Lst_ForEach by LST_FOREACH.
2005-03-16 16:02:09 +00:00
Hartmut Brandt
a238417909
Replace another bunch of Lst_ForEachs by LST_FOREACHs and simplify code.
2005-03-16 12:22:15 +00:00
Hartmut Brandt
363fa56a62
Fix a comment.
2005-03-16 08:06:28 +00:00
Hartmut Brandt
0bcd542606
Get rid of another bunch of Lst_ForEach in favour of LST_FOREACH and
...
simplify code accordingly.
2005-03-16 08:04:45 +00:00
Hartmut Brandt
d2f389f5e4
Ups. Revert the last commits. These have been committed by accident.
2005-03-15 15:10:51 +00:00
Hartmut Brandt
d735bf8813
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
Hartmut Brandt
77f4b22417
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
Hartmut Brandt
49fe6e22fd
Get rid of a number of Lst_ForEach calls in favour of LST_FOREACH
...
and simplify the printing functions.
2005-03-15 14:28:39 +00:00
Hartmut Brandt
ca98b031fd
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
Hartmut Brandt
dd37002304
Yet another version of passing the last line to ParseFinishLine().
...
It turns out that some ports use the obscure feature of spreading
a dependency block across multiple include files. While this seems
bad style, allow it for now and call said function only at end of
all input to process the really last line of everything.
2005-03-15 14:25:24 +00:00
Hartmut Brandt
f321cf01e1
Get rid of another Lst_ForEach in favour of LST_FOREACH. Get rid
...
of the now unused struct LstSrc and collapes two functions into one.
2005-03-14 17:04:58 +00:00
Hartmut Brandt
03ecd4b822
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
Hartmut Brandt
e0da09426f
Move the creation of a Src structure into its own function.
2005-03-14 12:04:20 +00:00
Hartmut Brandt
b33cc19c5f
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
Hartmut Brandt
8cb809ea3f
Convert a couple of other uses of Lst_ForEach to LST_FOREACH and
...
simplify code.
2005-03-14 08:29:58 +00:00
Hartmut Brandt
c2d34cc331
Simplify the print routines by using LST_FOREACH instead of Lst_ForEach
...
and inlining the small printing utility functions.
Create a function that can be used to produce printable representations
of flag words.
2005-03-11 13:24:08 +00:00
Hartmut Brandt
7985e10d29
Remove leading underscores from the pathname defines. All identifiers
...
with leading underscore followed by an uppercase letter are in the
implementation namespace.
2005-03-11 13:02:38 +00:00
Hartmut Brandt
2c9d008998
Remove the leading underscore from structure tags. All identifiers
...
with a leading underscore are in the implementation namespace.
2005-03-11 12:57:25 +00:00
Hartmut Brandt
941266174e
Style: Fix indentation.
2005-03-11 12:40:55 +00:00
Hartmut Brandt
b13ac84d46
Call ParseFinishLine() also for the last line in a file. This
...
patch differs from the previous one in that it calls the function
only when a real file hits EOF. The bodies of .for loops are also
handled as files, but for these we don't want to end a dependency block
on the 'EOF' as in:
foo:
do-this
.for ...
do-something
.endfor
do-more
2005-03-11 11:29:39 +00:00
Hartmut Brandt
520fec816c
Back out the last commit. It turns out that this breaks more than
...
it fixes. This should fix the buildworld breakage.
2005-03-11 07:53:32 +00:00
Hartmut Brandt
da559dbfd0
Constify Var_Dump and simplify it by inlining VarPrintVar.
2005-03-10 15:38:01 +00:00
Hartmut Brandt
248cf569be
Call ParseFinishLine() for the last line of a file too.
2005-03-10 15:30:09 +00:00
Hartmut Brandt
6dfe1d848e
Reorganize Suff_EndTransform to be called only for nodes for
...
which it is needed (transforms).
2005-03-10 14:54:47 +00:00
Hartmut Brandt
8c87f5a0c7
Style: fix function style before working on it (mainly intendation).
2005-03-10 10:16:03 +00:00
Hartmut Brandt
a2e5fa0890
Implement a new macro LST_NEXT which is like Lst_Succ but doesn't check
...
for its argument to be non-NULL.
2005-03-09 16:53:31 +00:00
Hartmut Brandt
0d037244ba
Split SuffExpandChildren into three functions: one that skips
...
variables and expands archive specifications, one that expands
wild cards and a driver that loops over the children list and
expands each child if necessary replacing it with it's expansions.
2005-03-09 16:51:43 +00:00
Hartmut Brandt
4ca8a80cb5
Var_Subst() cannot return NULL so there is no reason to check
...
for it.
2005-03-09 07:53:03 +00:00
Hartmut Brandt
0fdac3eed6
Style: fix indentation of SuffExpandChildren before working on it.
2005-03-08 16:30:32 +00:00
Hartmut Brandt
e390545124
Use Buf_Peel to get rid of a local variable.
2005-03-08 14:37:47 +00:00
Hartmut Brandt
d5247abc18
Use the Buf_Peel function to get to the string contained into a
...
buffer without using an extra local variable.
2005-03-08 14:33:58 +00:00
Hartmut Brandt
1a67f7b6d6
Remove useless local prototypes.
2005-03-08 14:30:18 +00:00
Hartmut Brandt
0c270d9eb0
Style: fix indentation.
2005-03-08 14:29:23 +00:00
Hartmut Brandt
7ca80f1cbc
Use the new Buf_Peel function to simplify things.
...
Remove an unused struct definition.
2005-03-08 13:15:51 +00:00
Hartmut Brandt
3509f4d713
Create a new function Buf_Peel that returns the string from inside
...
a Buffer and frees the Buffer.
2005-03-08 13:15:18 +00:00
Hartmut Brandt
1753d0e6a4
Add a debugging function that prints a message and appends the
...
current strerror.
2005-03-08 07:47:14 +00:00
Hartmut Brandt
a0aea18e18
Mark functions that don't return as dead.
2005-03-08 07:45:50 +00:00
Hartmut Brandt
34d49b885f
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
Hartmut Brandt
b37a89c4d4
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
Hartmut Brandt
f4d3f46b2e
Style: fix indendation of VarModify().
...
Patch: 7.107
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-07 16:14:50 +00:00
Hartmut Brandt
3cc51195c4
Constify the input argument to brk_string.
...
Patch: 7.106
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-07 16:10:39 +00:00
Hartmut Brandt
c4487a484d
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
Hartmut Brandt
ec3074aef1
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
Hartmut Brandt
573d78add6
Style: remove unneeded parantheses in conditionals.
2005-03-03 11:34:04 +00:00
Hartmut Brandt
b6bda8ea9d
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
Hartmut Brandt
179fc89109
Fix parsing of archives: in System V archive format the member names
...
is terminated with a slash. Although we are not System V, ar has
been configured to put that slash in. This format allows filenames
with trailing spaces.
2005-03-03 10:46:23 +00:00
Hartmut Brandt
5c78dee378
Fix parsing of archive specifications on the target side of
...
dependency lines. It seems that nobody is actually is using
the archive-feature of make.
2005-03-03 10:09:39 +00:00
Hartmut Brandt
49f5e8346a
Update the description comment of the function to reflect the
...
previous change.
2005-03-03 10:07:28 +00:00
Hartmut Brandt
d0330ee675
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
Hartmut Brandt
bf7c33df9c
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
Hartmut Brandt
b7beb62744
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
Hartmut Brandt
09394f0073
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
Hartmut Brandt
c21044494f
Convert a function call to Lst_ForEach with a macro call to LST_FOREACH.
2005-03-02 12:00:21 +00:00
Hartmut Brandt
b93324d35e
Use the LST_FOREACH macro instead of the Lst_ForEach function. This
...
saves function calls and reduces void casting.
2005-03-02 08:30:49 +00:00
Hartmut Brandt
41664cddcd
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
Hartmut Brandt
f1c603af79
Split out ParseModifiers from VarParseLong.
...
Patch: 7.84
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-03-01 12:26:32 +00:00
Hartmut Brandt
73058038d5
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
Hartmut Brandt
aeadeefcdf
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
Hartmut Brandt
4866acd4de
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
Hartmut Brandt
09fdd614d4
Buf_GetAll wants a pointer as its second argument, not a boolean -
...
replace FALSE by NULL.
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-28 17:05:26 +00:00
Hartmut Brandt
9944ed62ba
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
Hartmut Brandt
4ce3340f48
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
Hartmut Brandt
179078e76d
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
Hartmut Brandt
d057118357
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
Hartmut Brandt
a65e9283c5
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
Hartmut Brandt
0cb1c98b7a
Fix wording of a comment.
...
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-24 10:30:23 +00:00
Hartmut Brandt
9a2bfd7ef5
Replace the calls to Lst_ForEach with the new LST_FOREACH macro and
...
fix the prototype for Compat_RunCommand to take the actual argument
types instead of void *.
2005-02-24 10:23:31 +00:00
Hartmut Brandt
592dcf0422
Use the LST_FOREACH macro instead of the Lst_ForEach function
...
and so get rid of the ForExec helper function by inlining it
into For_Run.
2005-02-23 14:03:18 +00:00
Hartmut Brandt
7175fefe00
Style: fix indent, use tabs instead of space+tab for aligning things.
...
Add a couple of comments.
2005-02-23 13:58:56 +00:00
Hartmut Brandt
09dd1bb9a1
Fix the indendation of some multi-line comments.
...
Noted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-23 10:20:58 +00:00
Hartmut Brandt
6a1865cdbb
Fix the prototypes by addings some constness. This should have been
...
committed together with the commit to dir.c:1.48.
2005-02-22 08:17:05 +00:00
Hartmut Brandt
e4597ce6ea
Use the new LST_FOREACH macro throughout the file and replace calls to
...
Lst_ForEach and Lst_Find.
2005-02-22 08:00:06 +00:00
Hartmut Brandt
36120d91e5
Invent the LST_FOREACH macro for looping through a list. In contrast
...
to the Lst_ForEach function this macro reduces the number of function
calls per invocation by N + 1 (where N is the number of list elements)
and increases code locality thereby increasing readability and
(maybe) performance.
2005-02-22 07:58:53 +00:00
Hartmut Brandt
1d2a8153d3
Style: fix indendation to be 8 and use tabulators. Fix lines longer than
...
80 characters and slightly reorder functions to get rid of static
prototypes.
2005-02-21 13:36:22 +00:00
Hartmut Brandt
6abaece6ae
Forgot to set *freePtr to FALSE in another place.
...
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-21 08:10:21 +00:00
Hartmut Brandt
436834581b
Fix a bug in handling archive members: when a member was not found
...
when looking into an already hashed archive, the code tried to use
the name shortened to the maximum length allowed for the archive.
Unfortunately it passed a buffer of junk to the hashing routine when
the name actually wasn't too long. Theoretically this could lead to
a false positive.
2005-02-21 08:06:34 +00:00
Hartmut Brandt
7f2e1af188
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
Hartmut Brandt
1aaa4432a5
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
Hartmut Brandt
5fdd47f89b
Whitespace cleanup: substitute mixed tabs and spaces by canonical
...
whitespace and line up some variable definitions.
2005-02-17 12:35:32 +00:00
Hartmut Brandt
b2a8c56e3a
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
Hartmut Brandt
3ff4a47ba0
Fix two typos in comments.
...
Submitted by: ru & Max Okumoto <okumoto@ucsd.edu>
2005-02-17 09:09:34 +00:00
Hartmut Brandt
768820f8c7
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
Hartmut Brandt
46f05faa3a
Mostly stylistic issues: move a variable into local scope, make
...
condition positive and fix long lines.
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-16 17:20:09 +00:00
Hartmut Brandt
5e431bae8f
Better version of the patch in 1.117: bring a variable into local scope
...
to prepare for function splitting and slightly reorganise the code
in anticipation of Var_Subst returning a Buffer.
Submitted by: Max Okumoto <okumoto@ucsd.edu> (with slight changes)
2005-02-16 12:39:32 +00:00
Ruslan Ermilov
0227791b40
Expand *n't contractions.
2005-02-13 22:25:33 +00:00
Hartmut Brandt
0d63385639
Back out the previous commit. There is an obvious bug in it.
...
Pointy hat to: harti
2005-02-13 13:33:56 +00:00
Hartmut Brandt
157e401636
Stylistic fixes: push variable into a local context (this part is going
...
to be split out into a function soon). Also there is no need to write
back the colon that we have NUL-ed - the string is going to be freed
anyway.
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-11 17:03:18 +00:00
Hartmut Brandt
40fe2aa311
Convert several instances of negative logic to positive logic.
...
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-11 10:49:01 +00:00
Hartmut Brandt
26478079f7
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
Hartmut Brandt
ed293d7304
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
Hartmut Brandt
42e4f1252b
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
Hartmut Brandt
c738c9b125
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
Hartmut Brandt
302288aba2
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
Hartmut Brandt
d2bda84a20
Describe a pre-condition of Var_Parse().
...
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-10 14:43:22 +00:00
Hartmut Brandt
f804a7b3b1
Remove a comment that's not actual anymore.
...
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-10 14:41:22 +00:00
Hartmut Brandt
5cb05d7962
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
Hartmut Brandt
96089951e4
Initialise the status variable. W_SETTERMSIG uses its value.
...
Submitted by: stefanf
2005-02-10 14:32:14 +00:00
Hartmut Brandt
51079b278c
Lst_Append returns void, so the other case of the ? statement
...
should also be void.
Submitted by: stefanf
2005-02-10 14:25:12 +00:00
Hartmut Brandt
2890fef88d
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
Hartmut Brandt
83307acd08
While working on constification temporarily disable -Werror. Things are too
...
twisted.
2005-02-09 13:22:02 +00:00
Hartmut Brandt
f2b48f62c6
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
Hartmut Brandt
3f18a493f4
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
Hartmut Brandt
76749b8672
Remove an unneeded check.
2005-02-07 16:33:57 +00:00
Hartmut Brandt
9be6b372de
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
Hartmut Brandt
b3c3341784
Make the intention of a loop clearer.
...
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-07 15:51:51 +00:00
Hartmut Brandt
46ca434737
Introduce Buf_StripNewLines() and use it where appropriate.
...
Submitted by: Max Okumoto <okumoto@ucsd.edu>
2005-02-07 11:27:47 +00:00