Now
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/moderrs.exp@1.5
/
diff
/
nxr@1.5
src/usr.bin/make/unit-tests/moderrs.mk@1.4 / diff / nxr@1.4
src/usr.bin/make/unit-tests/moderrs.mk@1.4 / diff / nxr@1.4
make(1): add tests for :!...! parse errors
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/moderrs.exp@1.4
/
diff
/
nxr@1.4
src/usr.bin/make/unit-tests/moderrs.mk@1.3 / diff / nxr@1.3
src/usr.bin/make/unit-tests/moderrs.mk@1.3 / diff / nxr@1.3
make(1): add test for missing input validation in :[123] modifier
MAIN commitmail json YAML
src/usr.bin/make/buf.c@1.27
/
diff
/
nxr@1.27
src/usr.bin/make/buf.h@1.20 / diff / nxr@1.20
src/usr.bin/make/var.c@1.312 / diff / nxr@1.312
src/usr.bin/make/buf.h@1.20 / diff / nxr@1.20
src/usr.bin/make/var.c@1.312 / diff / nxr@1.312
make(1): add Buf_AddInt to make the calling code simpler
MAIN commitmail json YAML
make(1): add basic tests for the :S modifier
MAIN commitmail json YAML
make(1): make code in the :S modifier simpler
This code path is covered by the "sequences of letters" in modmisc.mk.
This code path is covered by the "sequences of letters" in modmisc.mk.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.mk@1.25
/
diff
/
nxr@1.25
src/usr.bin/make/var.c@1.310 / diff / nxr@1.310
src/usr.bin/make/var.c@1.310 / diff / nxr@1.310
make(1): fix bug in :S modifier from 2020-07-19
MAIN commitmail json YAML
make(1): demonstrate bug in the :S modifier with the 1 modifier
The bug has been introduced in var.c r1.268 on 2020-07-19.
The bug has been introduced in var.c r1.268 on 2020-07-19.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.29
/
diff
/
nxr@1.29
src/usr.bin/make/unit-tests/modmisc.mk@1.23 / diff / nxr@1.23
src/usr.bin/make/unit-tests/modmisc.mk@1.23 / diff / nxr@1.23
make(1): use consistent test names in modmisc.mk
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/sysv.exp@1.9
/
diff
/
nxr@1.9
src/usr.bin/make/unit-tests/sysv.mk@1.9 / diff / nxr@1.9
src/usr.bin/make/unit-tests/sysv.mk@1.9 / diff / nxr@1.9
make(1): add test for prefix mismatch in SysV substitution
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/Makefile@1.65
/
diff
/
nxr@1.65
src/usr.bin/make/unit-tests/varmisc.exp@1.10 / diff / nxr@1.10
src/usr.bin/make/unit-tests/varmisc.mk@1.14 / diff / nxr@1.14
src/usr.bin/make/unit-tests/varmisc.exp@1.10 / diff / nxr@1.10
src/usr.bin/make/unit-tests/varmisc.mk@1.14 / diff / nxr@1.14
make(1): add test for appending and exporting a variable
MAIN commitmail json YAML
make(1): add tests for appending to a variable
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/varmisc.exp@1.9
/
diff
/
nxr@1.9
src/usr.bin/make/unit-tests/varmisc.mk@1.12 / diff / nxr@1.12
src/usr.bin/make/unit-tests/varmisc.mk@1.12 / diff / nxr@1.12
make(1): add test for .MAKE.SAVE_DOLLARS
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/moderrs.exp@1.3
/
diff
/
nxr@1.3
src/usr.bin/make/var.c@1.309 / diff / nxr@1.309
src/usr.bin/make/var.c@1.309 / diff / nxr@1.309
make(1): fix missing error message about missing @ delimiter
This had been broken since 2020-07-03, during a "refactoring".
This had been broken since 2020-07-03, during a "refactoring".
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/moderrs.exp@1.2
/
diff
/
nxr@1.2
src/usr.bin/make/unit-tests/moderrs.mk@1.2 / diff / nxr@1.2
src/usr.bin/make/unit-tests/moderrs.mk@1.2 / diff / nxr@1.2
make(1): add test about missing delimiters in :@ modifier
These error conditions have been broken since var.c 1.236 on 2020-07-03.
These error conditions have been broken since var.c 1.236 on 2020-07-03.
MAIN commitmail json YAML
share/mk/bsd.README: fix typo
MAIN commitmail json YAML
style: fix typo about enum constants being capitalized
MAIN commitmail json YAML
make(1): remove references to the removed lst.lib
MAIN commitmail json YAML
make(1): replace macros with functions
MAIN commitmail json YAML
src/usr.bin/make/Makefile@1.74
/
diff
/
nxr@1.74
src/usr.bin/make/lst.c@1.1 / diff / nxr@1.1
src/usr.bin/make/lst.lib/Makefile deleted
src/usr.bin/make/lst.lib/lstAppend.c deleted
src/usr.bin/make/lst.lib/lstAtEnd.c deleted
src/usr.bin/make/lst.lib/lstAtFront.c deleted
src/usr.bin/make/lst.lib/lstClose.c deleted
src/usr.bin/make/lst.lib/lstConcat.c deleted
src/usr.bin/make/lst.lib/lstDatum.c deleted
src/usr.bin/make/lst.lib/lstDeQueue.c deleted
src/usr.bin/make/lst.lib/lstDestroy.c deleted
src/usr.bin/make/lst.lib/lstDupl.c deleted
src/usr.bin/make/lst.lib/lstEnQueue.c deleted
src/usr.bin/make/lst.lib/lstFind.c deleted
src/usr.bin/make/lst.lib/lstFindFrom.c deleted
src/usr.bin/make/lst.lib/lstFirst.c deleted
src/usr.bin/make/lst.lib/lstForEach.c deleted
src/usr.bin/make/lst.lib/lstForEachFrom.c deleted
src/usr.bin/make/lst.lib/lstInit.c deleted
src/usr.bin/make/lst.lib/lstInsert.c deleted
:
(more 11 files)
src/usr.bin/make/lst.c@1.1 / diff / nxr@1.1
src/usr.bin/make/lst.lib/Makefile deleted
src/usr.bin/make/lst.lib/lstAppend.c deleted
src/usr.bin/make/lst.lib/lstAtEnd.c deleted
src/usr.bin/make/lst.lib/lstAtFront.c deleted
src/usr.bin/make/lst.lib/lstClose.c deleted
src/usr.bin/make/lst.lib/lstConcat.c deleted
src/usr.bin/make/lst.lib/lstDatum.c deleted
src/usr.bin/make/lst.lib/lstDeQueue.c deleted
src/usr.bin/make/lst.lib/lstDestroy.c deleted
src/usr.bin/make/lst.lib/lstDupl.c deleted
src/usr.bin/make/lst.lib/lstEnQueue.c deleted
src/usr.bin/make/lst.lib/lstFind.c deleted
src/usr.bin/make/lst.lib/lstFindFrom.c deleted
src/usr.bin/make/lst.lib/lstFirst.c deleted
src/usr.bin/make/lst.lib/lstForEach.c deleted
src/usr.bin/make/lst.lib/lstForEachFrom.c deleted
src/usr.bin/make/lst.lib/lstInit.c deleted
src/usr.bin/make/lst.lib/lstInsert.c deleted
:
(more 11 files)
make(1): condense the list library into a single file
The list library is only used in make(1). Having it spread out over 28
files made it look more complex than it really is. In fact, it's just a
versatile generic data type like in hash.c.
Having all the list functions in a single file reduces the code size,
both by omitting the many RCS Ids and by inlining commonly used code.
The list library is only used in make(1). Having it spread out over 28
files made it look more complex than it really is. In fact, it's just a
versatile generic data type like in hash.c.
Having all the list functions in a single file reduces the code size,
both by omitting the many RCS Ids and by inlining commonly used code.
MAIN commitmail json YAML
make(1): add newly added unit tests
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/Makefile@1.64
/
diff
/
nxr@1.64
src/usr.bin/make/unit-tests/envfirst.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/envfirst.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/vardebug.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/vardebug.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/varfind.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/varfind.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/envfirst.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/envfirst.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/vardebug.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/vardebug.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/varfind.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/varfind.mk@1.1 / diff / nxr@1.1
make(1): add tests for previously uncovered code
MAIN commitmail json YAML
make(1): make it easy to run gcov on the code
There seems to be no gcov support in share/mk yes, but it's still good
to have, especially for a complex program like make(1).
There seems to be no gcov support in share/mk yes, but it's still good
to have, especially for a complex program like make(1).
MAIN commitmail json YAML
make(1): indent Makefile directives like in pkgsrc
This makes it easier to see the corresponding .if/.endif, even without
comments.
This makes it easier to see the corresponding .if/.endif, even without
comments.
MAIN commitmail json YAML
make(1): format Makefile consistently
MAIN commitmail json YAML
make(1): regroup source files
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/cond-late.exp@1.3
/
diff
/
nxr@1.3
src/usr.bin/make/unit-tests/cond-late.mk@1.2 / diff / nxr@1.2
src/usr.bin/make/unit-tests/cond-late.mk@1.2 / diff / nxr@1.2
make(1): add test for undefined (or empty) variable in :? modifier
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.28
/
diff
/
nxr@1.28
src/usr.bin/make/unit-tests/modmisc.mk@1.22 / diff / nxr@1.22
src/usr.bin/make/unit-tests/modmisc.mk@1.22 / diff / nxr@1.22
make(1): add test for brk_string with more than 50 words
MAIN commitmail json YAML
make(1): remove redundant condition
If there are multiple words from brk_string, none of them can be empty.
And if there is oneSingleWord that is empty, it doesn't hurt to add 0
bytes.
If there are multiple words from brk_string, none of them can be empty.
And if there is oneSingleWord that is empty, it doesn't hurt to add 0
bytes.
MAIN commitmail json YAML
make(1): prefer direct jump over indirect variable assignment
MAIN commitmail json YAML
make(1): make condition in ModifyWord_SubstRegex simpler
The generated code is still the same, at least with Clang.
The generated code is still the same, at least with Clang.
MAIN commitmail json YAML
make(1): reduce lifetime of regmatch_t for :C modifier
MAIN commitmail json YAML
make(1): rename local variable
MAIN commitmail json YAML
make(1): allocate capturing groups for :C modifier statically
Since there are at most 10 capturing groups, it's easier to allocate them
on the stack.
To avoid growing the code size on x86_64, the matches have been moved to
the end of the struct, to keep the other offsets small.
Since there are at most 10 capturing groups, it's easier to allocate them
on the stack.
To avoid growing the code size on x86_64, the matches have been moved to
the end of the struct, to keep the other offsets small.
MAIN commitmail json YAML
make(1): clean up Var_Export
MAIN commitmail json YAML
make(1): inline Var_Parse_State into ApplyModifiersState
There was no need to have this as a separate struct. Especially none of
the modifiers used by ModifyWords modify this state, therefore it was
not necessary to pass it by reference. This makes the code easier to
understand since there's less modifiable state.
There was no need to have this as a separate struct. Especially none of
the modifiers used by ModifyWords modify this state, therefore it was
not necessary to pass it by reference. This makes the code easier to
understand since there's less modifiable state.
MAIN commitmail json YAML
make(1): document ApplyModifiersState.cp
MAIN commitmail json YAML
make(1): eliminate ApplyModifiersState.tstr
This field always pointed to the beginning of the current modifier.
Therefore a better name is "mod", and there is no need to store it in the
shared state.
This field always pointed to the beginning of the current modifier.
Therefore a better name is "mod", and there is no need to store it in the
shared state.
MAIN commitmail json YAML
make(1): only set missing_delim if it is actually missing
Just to make it easier to understand the code.
Just to make it easier to understand the code.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.27
/
diff
/
nxr@1.27
src/usr.bin/make/var.c@1.297 / diff / nxr@1.297
src/usr.bin/make/var.c@1.297 / diff / nxr@1.297
make(1): fix wrong warning about missing delimiter
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.26
/
diff
/
nxr@1.26
src/usr.bin/make/unit-tests/modmisc.mk@1.21 / diff / nxr@1.21
src/usr.bin/make/unit-tests/modmisc.mk@1.21 / diff / nxr@1.21
make(1): demonstrate wrong error message about missing delimiter
The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.
The current practice of setting st->delim at the beginning of each
modifier and resetting it again at the end produces too many error
messages. In this case, there is no missing delimiter.
MAIN commitmail json YAML
make(1): reduce code size on x86_64
MAIN commitmail json YAML
make(1): remove parameter from ModifyWordCallback
Most modifiers don't need a variable context, and those that do already
get all their parameters in a custom Args struct.
Most modifiers don't need a variable context, and those that do already
get all their parameters in a custom Args struct.
MAIN commitmail json YAML
make(1): make implementation of the :C modifier simpler
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.25
/
diff
/
nxr@1.25
src/usr.bin/make/unit-tests/modmisc.mk@1.20 / diff / nxr@1.20
src/usr.bin/make/unit-tests/modmisc.mk@1.20 / diff / nxr@1.20
make(1): add test for :S,,sep
The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.
This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.
The empty string does not match anywhere. In other implementations of
string replacement, an empty string matches at every position of the
source string.
This only works for the :S modifier. The :C modifier does not allow an
empty search pattern.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.24
/
diff
/
nxr@1.24
src/usr.bin/make/unit-tests/modmisc.mk@1.19 / diff / nxr@1.19
src/usr.bin/make/unit-tests/modmisc.mk@1.19 / diff / nxr@1.19
make(1): add test for :Q and .newline
MAIN commitmail json YAML
make(1): only ask for newline if :Q actually needs it
This simple change reduces the binary size of var.o by 96 bytes (Clang,
x86_64). Given that the code is still the same, just in a different
order, this is a bit surprising.
This simple change reduces the binary size of var.o by 96 bytes (Clang,
x86_64). Given that the code is still the same, just in a different
order, this is a bit surprising.
MAIN commitmail json YAML
make(1): clean up various things in var.c
MAIN commitmail json YAML
make(1): use consistent and descriptive names for callback functions
MAIN commitmail json YAML
make(1): remove unnecessary VarSelectWords_t struct
MAIN commitmail json YAML
make(1): extract :ts<separator> modifier into separate function
MAIN commitmail json YAML
make(1): clean up implementation of :[...] and other modifiers
MAIN commitmail json YAML
src/usr.bin/make/nonints.h@1.82
/
diff
/
nxr@1.82
src/usr.bin/make/unit-tests/modmisc.exp@1.23 / diff / nxr@1.23
src/usr.bin/make/var.c@1.287 / diff / nxr@1.287
src/usr.bin/make/unit-tests/modmisc.exp@1.23 / diff / nxr@1.23
src/usr.bin/make/var.c@1.287 / diff / nxr@1.287
make(1): fix edge cases with $ at the end of the :@ modifier
In both parts of the :@ modifier, by passing &pflags to
ParseModifierPart, a final $ was interpreted as an anchor, which only
makes sense in the :S and :C modifiers.
This edge case is neither used by src nor by pkgsrc, except for the unit
tests that have been adjusted.
In both parts of the :@ modifier, by passing &pflags to
ParseModifierPart, a final $ was interpreted as an anchor, which only
makes sense in the :S and :C modifiers.
This edge case is neither used by src nor by pkgsrc, except for the unit
tests that have been adjusted.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.22
/
diff
/
nxr@1.22
src/usr.bin/make/unit-tests/modmisc.mk@1.18 / diff / nxr@1.18
src/usr.bin/make/unit-tests/modmisc.mk@1.18 / diff / nxr@1.18
make(1): add test for nested assignments
This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.
This test demonstrates that in ApplyModifier_Assign, the call to
ParseModifierPart must get its pflags.
MAIN commitmail json YAML
make(1): make conditions work without pattern flags
The "pattern flag" VARP_NOSUBST was used to prevent evaluating
irrelevant conditions. Omitting the evaluation flag VARE_WANTRES has the
same effect.
The "pattern flag" VARP_NOSUBST was used to prevent evaluating
irrelevant conditions. Omitting the evaluation flag VARE_WANTRES has the
same effect.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/sysv.exp@1.8
/
diff
/
nxr@1.8
src/usr.bin/make/var.c@1.284 / diff / nxr@1.284
src/usr.bin/make/var.c@1.284 / diff / nxr@1.284
make(1): fix obscure edge case for ${VAR:e$=x}
The characters "$=" do not occur in either src or pkgsrc, therefore this
case is unlikely to occur in practice.
The characters "$=" do not occur in either src or pkgsrc, therefore this
case is unlikely to occur in practice.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/sysv.exp@1.7
/
diff
/
nxr@1.7
src/usr.bin/make/unit-tests/sysv.mk@1.8 / diff / nxr@1.8
src/usr.bin/make/unit-tests/sysv.mk@1.8 / diff / nxr@1.8
make(1): demonstrate obscure edge case in SysV modifier
MAIN commitmail json YAML
make(1): move documentation for assignment modifiers
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.21
/
diff
/
nxr@1.21
src/usr.bin/make/unit-tests/modmisc.mk@1.17 / diff / nxr@1.17
src/usr.bin/make/unit-tests/modmisc.mk@1.17 / diff / nxr@1.17
make(1): add test for :tu modifier with spaces
MAIN commitmail json YAML
make(1): prefer memcmp over strncmp
MAIN commitmail json YAML
make(1): fix type of VarPattern.lhsLen and rhsLen
String length is measured in size_t, not int.
String length is measured in size_t, not int.
MAIN commitmail json YAML
make(1): fix undefined behavior in :S modifier
The expression word + wordLen - leftLen had resulted in an out-of-bounds
pointer before. Luckily the heap addresses were high enough in typical
applications to prevent a wrap-around.
The expression word + wordLen - leftLen had resulted in an out-of-bounds
pointer before. Luckily the heap addresses were high enough in typical
applications to prevent a wrap-around.
MAIN commitmail json YAML
make(1): make implementation of the :S modifier simpler
MAIN commitmail json YAML
src/usr.bin/make/parse.c@1.238
/
diff
/
nxr@1.238
src/usr.bin/make/unit-tests/modmisc.exp@1.20 / diff / nxr@1.20
src/usr.bin/make/var.c@1.278 / diff / nxr@1.278
src/usr.bin/make/unit-tests/modmisc.exp@1.20 / diff / nxr@1.20
src/usr.bin/make/var.c@1.278 / diff / nxr@1.278
make(1): make modifier handling simpler
Implementing a modifier such as :S or :M should not be concerned with
separating the words of the resulting string. Ideally this should be
done in the same way by all modifiers.
Before, the :R (filename root) modifier added a separator even if the
resulting filename root was an empty string. The chances that this
change in behavior breaks anything are epsilon.
The :@ modifier, if it appeared after a :ts modifier, did not use the
word separator from the :ts modifier (which all other modifiers do) but
always added a space. This behavior has been preserved for now. It's an
unnecessary inconsistency though.
In contrast to Buffer, the newly added SepBuf uses size_t for memory
sizes and also uses the conventional parameter order (mem, memsize)
instead of the unusual (memsize, mem).
Implementing a modifier such as :S or :M should not be concerned with
separating the words of the resulting string. Ideally this should be
done in the same way by all modifiers.
Before, the :R (filename root) modifier added a separator even if the
resulting filename root was an empty string. The chances that this
change in behavior breaks anything are epsilon.
The :@ modifier, if it appeared after a :ts modifier, did not use the
word separator from the :ts modifier (which all other modifiers do) but
always added a space. This behavior has been preserved for now. It's an
unnecessary inconsistency though.
In contrast to Buffer, the newly added SepBuf uses size_t for memory
sizes and also uses the conventional parameter order (mem, memsize)
instead of the unusual (memsize, mem).
MAIN commitmail json YAML
make(1): remove unnecessary UNCONST
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/sysv.exp@1.6
/
diff
/
nxr@1.6
src/usr.bin/make/unit-tests/sysv.mk@1.7 / diff / nxr@1.7
src/usr.bin/make/var.c@1.276 / diff / nxr@1.276
src/usr.bin/make/unit-tests/sysv.mk@1.7 / diff / nxr@1.7
src/usr.bin/make/var.c@1.276 / diff / nxr@1.276
make(1): make ampersand in ${VAR:from=to&} an ordinary character
In SysV substitutions, wildcards are expressed with % instead of &. The
& is not mentioned in the manual page, and having another wildcard for
the whole word would be such an obscure feature that not even pkgsrc uses
it. The easiest way to discover this feature had been to read the source
code of make(1) or to use a fuzzer and accidentally stumble upon this
edge case.
In SysV substitutions, wildcards are expressed with % instead of &. The
& is not mentioned in the manual page, and having another wildcard for
the whole word would be such an obscure feature that not even pkgsrc uses
it. The easiest way to discover this feature had been to read the source
code of make(1) or to use a fuzzer and accidentally stumble upon this
edge case.
MAIN commitmail json YAML
make(1): don't call VarSubstitute unnecessarily
MAIN commitmail json YAML
make(1): remove wrong VarPattern from ApplyModifier_Exclam
MAIN commitmail json YAML
make(1): remove wrong VarPattern from ApplyModifier_Assign
MAIN commitmail json YAML
make(1): add test for assignment operators in conditions
MAIN commitmail json YAML
make(1): flatten ApplyModifier_Assign
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.19
/
diff
/
nxr@1.19
src/usr.bin/make/unit-tests/modmisc.mk@1.16 / diff / nxr@1.16
src/usr.bin/make/unit-tests/modmisc.mk@1.16 / diff / nxr@1.16
make(1): add tests for the ::= modifiers
MAIN commitmail json YAML
make(1): fix date in comment in unit test
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.18
/
diff
/
nxr@1.18
src/usr.bin/make/unit-tests/modmisc.mk@1.15 / diff / nxr@1.15
src/usr.bin/make/unit-tests/modmisc.mk@1.15 / diff / nxr@1.15
make(1): add tests for maximum number of capturing groups in :C
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.17
/
diff
/
nxr@1.17
src/usr.bin/make/var.c@1.271 / diff / nxr@1.271
src/usr.bin/make/var.c@1.271 / diff / nxr@1.271
make(1): fix off-by-one error in :C modifier
Previously this off-by-one error had invoked undefined behavior.
Until today there was no corresponding unit test though.
Previously this off-by-one error had invoked undefined behavior.
Until today there was no corresponding unit test though.
MAIN commitmail json YAML
make(1): fix double free introduced this morning in r1.258
MAIN commitmail json YAML
make(1): remove redundant loop control variable
MAIN commitmail json YAML
make(1): rename ApplyModifiersState.flags to eflags
There are just too many variables called "flags" in this file, and their
constants must not accidentally overlap.
There are just too many variables called "flags" in this file, and their
constants must not accidentally overlap.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.16
/
diff
/
nxr@1.16
src/usr.bin/make/unit-tests/modmisc.mk@1.14 / diff / nxr@1.14
src/usr.bin/make/unit-tests/modmisc.mk@1.14 / diff / nxr@1.14
make(1): demonstrate off-by-one bug in :C modifier
MAIN commitmail json YAML
make(1): clean up VarLoop structure
MAIN commitmail json YAML
make(1): remove unused parameter from ParseModifierPart
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/varmod-edge.mk@1.8
/
diff
/
nxr@1.8
src/usr.bin/make/var.c@1.265 / diff / nxr@1.265
src/usr.bin/make/var.c@1.265 / diff / nxr@1.265
make(1): rename VarGetPattern to ParseModifierPart
MAIN commitmail json YAML
make(1): eliminate unused local variables
MAIN commitmail json YAML
make(1): eliminate macro from VarGetPattern
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.15
/
diff
/
nxr@1.15
src/usr.bin/make/unit-tests/modmisc.mk@1.13 / diff / nxr@1.13
src/usr.bin/make/unit-tests/modmisc.mk@1.13 / diff / nxr@1.13
make(1): add test for stray dollar signs in :@ modifier
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/sysv.exp@1.5
/
diff
/
nxr@1.5
src/usr.bin/make/unit-tests/sysv.mk@1.6 / diff / nxr@1.6
src/usr.bin/make/unit-tests/sysv.mk@1.6 / diff / nxr@1.6
make(1): add test for ampersand in SysV substitution modifier
MAIN commitmail json YAML
make(1): replace ApplyModifiersState field with local variable
MAIN commitmail json YAML
make(1): rename flags for :S and :C pattern matching
Renaming these flags makes it obvious that VarPattern is used in a few
places where it doesn't belong. These will be fixed in follow-up
commits.
Renaming these flags makes it obvious that VarPattern is used in a few
places where it doesn't belong. These will be fixed in follow-up
commits.
MAIN commitmail json YAML
make(1): convert VarFind flags to typed enum
MAIN commitmail json YAML
src/usr.bin/make/cond.c@1.81
/
diff
/
nxr@1.81
src/usr.bin/make/main.c@1.282 / diff / nxr@1.282
src/usr.bin/make/meta.c@1.88 / diff / nxr@1.88
src/usr.bin/make/main.c@1.282 / diff / nxr@1.282
src/usr.bin/make/meta.c@1.88 / diff / nxr@1.88
make(1): clean up unnecessary snprintf and multi-line function calls
MAIN commitmail json YAML
src/usr.bin/make/arch.c@1.74
/
diff
/
nxr@1.74
src/usr.bin/make/compat.c@1.114 / diff / nxr@1.114
src/usr.bin/make/cond.c@1.80 / diff / nxr@1.80
src/usr.bin/make/for.c@1.55 / diff / nxr@1.55
src/usr.bin/make/job.c@1.202 / diff / nxr@1.202
src/usr.bin/make/main.c@1.281 / diff / nxr@1.281
src/usr.bin/make/make.c@1.100 / diff / nxr@1.100
src/usr.bin/make/meta.c@1.87 / diff / nxr@1.87
src/usr.bin/make/nonints.h@1.80 / diff / nxr@1.80
src/usr.bin/make/parse.c@1.237 / diff / nxr@1.237
src/usr.bin/make/suff.c@1.89 / diff / nxr@1.89
src/usr.bin/make/var.c@1.259 / diff / nxr@1.259
src/usr.bin/make/compat.c@1.114 / diff / nxr@1.114
src/usr.bin/make/cond.c@1.80 / diff / nxr@1.80
src/usr.bin/make/for.c@1.55 / diff / nxr@1.55
src/usr.bin/make/job.c@1.202 / diff / nxr@1.202
src/usr.bin/make/main.c@1.281 / diff / nxr@1.281
src/usr.bin/make/make.c@1.100 / diff / nxr@1.100
src/usr.bin/make/meta.c@1.87 / diff / nxr@1.87
src/usr.bin/make/nonints.h@1.80 / diff / nxr@1.80
src/usr.bin/make/parse.c@1.237 / diff / nxr@1.237
src/usr.bin/make/suff.c@1.89 / diff / nxr@1.89
src/usr.bin/make/var.c@1.259 / diff / nxr@1.259
make(1): rename Varf_Flags to VarEvalFlags
In var.c there are lots of different flag types. To make any accidental
mixture obvious, each flag group gets its own prefix.
The only flag group that is visible outside of var.c is concerned with
evaluating variables, therefore the "e", which replaces the former "f"
that probably just meant "flag".
In var.c there are lots of different flag types. To make any accidental
mixture obvious, each flag group gets its own prefix.
The only flag group that is visible outside of var.c is concerned with
evaluating variables, therefore the "e", which replaces the former "f"
that probably just meant "flag".
MAIN commitmail json YAML
make(1): clean up handling of :? modifier
The VarPattern type had nothing to do with parsing conditions.
The VarPattern type had nothing to do with parsing conditions.
MAIN commitmail json YAML
make(1): clean up code in var.c
* use canonical comparison to zero in more cases
* omit unnecessary snprintf for string literal concatenation
* omit a few redundant parentheses and braces
* use canonical comparison to zero in more cases
* omit unnecessary snprintf for string literal concatenation
* omit a few redundant parentheses and braces
MAIN commitmail json YAML
src/usr.bin/make/nonints.h@1.79
/
diff
/
nxr@1.79
src/usr.bin/make/str.c@1.52 / diff / nxr@1.52
src/usr.bin/make/var.c@1.256 / diff / nxr@1.256
src/usr.bin/make/str.c@1.52 / diff / nxr@1.52
src/usr.bin/make/var.c@1.256 / diff / nxr@1.256
make(1): move SysV string matching to var.c
This kind of string matching is only used in variable modifiers, and only
if this feature is enabled by SYSVVARSUB.
This kind of string matching is only used in variable modifiers, and only
if this feature is enabled by SYSVVARSUB.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modts.exp@1.4
/
diff
/
nxr@1.4
src/usr.bin/make/unit-tests/modts.mk@1.4 / diff / nxr@1.4
src/usr.bin/make/unit-tests/modts.mk@1.4 / diff / nxr@1.4
make(1): add more tests for :ts modifier
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modts.exp@1.3
/
diff
/
nxr@1.3
src/usr.bin/make/unit-tests/modts.mk@1.3 / diff / nxr@1.3
src/usr.bin/make/unit-tests/modts.mk@1.3 / diff / nxr@1.3
make(1): demonstrate inconsistent :ts behavior among modifiers
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/Makefile@1.62
/
diff
/
nxr@1.62
src/usr.bin/make/unit-tests/modmisc.exp@1.14 / diff / nxr@1.14
src/usr.bin/make/unit-tests/modmisc.exp@1.14 / diff / nxr@1.14
make(1): ignore system-specific error message from regcomp in test
NetBSD 8 has: repetition-operator operand invalid
Ubuntu has: Invalid preceding regular expression
NetBSD 8 has: repetition-operator operand invalid
Ubuntu has: Invalid preceding regular expression
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/Makefile@1.61
/
diff
/
nxr@1.61
src/usr.bin/make/unit-tests/varshell.exp@1.3 / diff / nxr@1.3
src/usr.bin/make/unit-tests/varshell.exp@1.3 / diff / nxr@1.3
make(1): add post-processing for tests
By defining SED_CMDS.${test}, a test can do additional post-processing
on its output, for example to normalize paths or error messages.
The Makefile for the tests now follows the common style to have all
relevant definitions at the top of the file, and all the implementation
details at the bottom.
By using the += instead of backslashed lists, it becomes easier to
comment out a single test, either temporarily or permanently (such as
the POSIX tests).
The :C modifier has been replaced with the simpler :S, some :S modifiers
have been replaced with simpler := modifiers.
The postprocessing commands have been extracted from the actual command.
This makes editing and commenting them easier.
By defining SED_CMDS.${test}, a test can do additional post-processing
on its output, for example to normalize paths or error messages.
The Makefile for the tests now follows the common style to have all
relevant definitions at the top of the file, and all the implementation
details at the bottom.
By using the += instead of backslashed lists, it becomes easier to
comment out a single test, either temporarily or permanently (such as
the POSIX tests).
The :C modifier has been replaced with the simpler :S, some :S modifiers
have been replaced with simpler := modifiers.
The postprocessing commands have been extracted from the actual command.
This makes editing and commenting them easier.
MAIN commitmail json YAML
make(1): improve documentation about adding new tests
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.13
/
diff
/
nxr@1.13
src/usr.bin/make/unit-tests/modmisc.mk@1.12 / diff / nxr@1.12
src/usr.bin/make/unit-tests/modmisc.mk@1.12 / diff / nxr@1.12
make(1): add tests for dollar characters in modifiers
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.12
/
diff
/
nxr@1.12
src/usr.bin/make/unit-tests/modmisc.mk@1.11 / diff / nxr@1.11
src/usr.bin/make/var.c@1.255 / diff / nxr@1.255
src/usr.bin/make/unit-tests/modmisc.mk@1.11 / diff / nxr@1.11
src/usr.bin/make/var.c@1.255 / diff / nxr@1.255
make(1): expand the test for variable expansion in the :@ modifier
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.11
/
diff
/
nxr@1.11
src/usr.bin/make/unit-tests/modmisc.mk@1.10 / diff / nxr@1.10
src/usr.bin/make/var.c@1.254 / diff / nxr@1.254
src/usr.bin/make/unit-tests/modmisc.mk@1.10 / diff / nxr@1.10
src/usr.bin/make/var.c@1.254 / diff / nxr@1.254
make(1): add debugging output for :@ modifier
The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.
The inner working of the :@ modifier is quite tricky. To understand what
really happens, it helps to look at each word as it is being modified.
MAIN commitmail json YAML
make(1): constify VarModify parameter
Since var.c r1.238 and r1.239, the callbacks for the :H :T :E :R modifiers
don't modify the word anymore, and the others didn't modify it at all.
Since var.c r1.238 and r1.239, the callbacks for the :H :T :E :R modifiers
don't modify the word anymore, and the others didn't modify it at all.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.10
/
diff
/
nxr@1.10
src/usr.bin/make/unit-tests/modmisc.mk@1.9 / diff / nxr@1.9
src/usr.bin/make/unit-tests/modmisc.mk@1.9 / diff / nxr@1.9
make(1): add test for an obscure edge case of using the :@ modifier
MAIN commitmail json YAML
make(1): fix :hash modifier on 16-bit platforms
On platforms where int has only 16 bits the shifts would have been in
16-bit arithmetic, which would invoke undefined behavior for "ustr[3] <<
24" as well as "ustr[2] << 16" (C99, 6.5.7p3).
On platforms where int has only 16 bits the shifts would have been in
16-bit arithmetic, which would invoke undefined behavior for "ustr[3] <<
24" as well as "ustr[2] << 16" (C99, 6.5.7p3).
MAIN commitmail json YAML
make(1): remove unnecessary _t suffix from VarLoop type
MAIN commitmail json YAML
make(1): fix documentation of Var_Subst, clean up other documentation
MAIN commitmail json YAML
make(1): remove unnecessary forward declarations, fix indentation
MAIN commitmail json YAML
make(1): remove unnecessary forward declarations
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.9
/
diff
/
nxr@1.9
src/usr.bin/make/unit-tests/modmisc.mk@1.8 / diff / nxr@1.8
src/usr.bin/make/unit-tests/modmisc.mk@1.8 / diff / nxr@1.8
make(1): add tests for the :S and :C modifiers
MAIN commitmail json YAML
make(1): reduce line length in var.c
MAIN commitmail json YAML
make(1): refactor ApplyModifier_SysV to have less indentation
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.8
/
diff
/
nxr@1.8
src/usr.bin/make/unit-tests/modmisc.mk@1.7 / diff / nxr@1.7
src/usr.bin/make/var.c@1.244 / diff / nxr@1.244
src/usr.bin/make/unit-tests/modmisc.mk@1.7 / diff / nxr@1.7
src/usr.bin/make/var.c@1.244 / diff / nxr@1.244
make(1): clean up documentation, small refactorings for variables
- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings
- document the callback for VarModify
- clearly mark the callbacks
- shorten the documentation for some callback functions
- fix the documentation of VarSYSVMatch
- remove unnecessary null check from VarLoopExpand
- add test for applying modifiers to empty strings
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/sysv.exp@1.4
/
diff
/
nxr@1.4
src/usr.bin/make/unit-tests/sysv.mk@1.5 / diff / nxr@1.5
src/usr.bin/make/unit-tests/sysv.mk@1.5 / diff / nxr@1.5
make(1): add another test for the SysV :%=% modifier
MAIN commitmail json YAML
make(1): add expected test result for modmisc
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.6
/
diff
/
nxr@1.6
src/usr.bin/make/unit-tests/modmisc.mk@1.6 / diff / nxr@1.6
src/usr.bin/make/var.c@1.243 / diff / nxr@1.243
src/usr.bin/make/unit-tests/modmisc.mk@1.6 / diff / nxr@1.6
src/usr.bin/make/var.c@1.243 / diff / nxr@1.243
make(1): fix bug in :E modifier, introduced in r1.239 today
That case was not covered by the tests before.
That case was not covered by the tests before.
MAIN commitmail json YAML
make(1): fix indentation in var.c
Fixing the indentation manually is a tedious task. indent(1) was no help
since it has several bugs and is not flexible enough for the original
make code.
Fixing the indentation manually is a tedious task. indent(1) was no help
since it has several bugs and is not flexible enough for the original
make code.
MAIN commitmail json YAML
src/usr.bin/make/hash.c@1.22
/
diff
/
nxr@1.22
src/usr.bin/make/hash.h@1.13 / diff / nxr@1.13
src/usr.bin/make/var.c@1.241 / diff / nxr@1.241
src/usr.bin/make/hash.h@1.13 / diff / nxr@1.13
src/usr.bin/make/var.c@1.241 / diff / nxr@1.241
make(1): add Hash_ForEach to avoid duplicate code
MAIN commitmail json YAML
make(1): fix indentation and alignment
MAIN commitmail json YAML
make(1): make code for the :E and :R modifiers simpler
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.5
/
diff
/
nxr@1.5
src/usr.bin/make/unit-tests/modmisc.mk@1.5 / diff / nxr@1.5
src/usr.bin/make/unit-tests/modmisc.mk@1.5 / diff / nxr@1.5
make(1): add test for :R modifier
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.4
/
diff
/
nxr@1.4
src/usr.bin/make/unit-tests/modmisc.mk@1.4 / diff / nxr@1.4
src/usr.bin/make/unit-tests/modmisc.mk@1.4 / diff / nxr@1.4
make(1): add more tests for :H, :T and :E modifiers
MAIN commitmail json YAML
make(1): clean up code for the :H and :T modifiers
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.3
/
diff
/
nxr@1.3
src/usr.bin/make/unit-tests/modmisc.mk@1.3 / diff / nxr@1.3
src/usr.bin/make/unit-tests/modmisc.mk@1.3 / diff / nxr@1.3
make(1): add test for :H and :T modifiers with several words
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/modmisc.exp@1.2
/
diff
/
nxr@1.2
src/usr.bin/make/unit-tests/modmisc.mk@1.2 / diff / nxr@1.2
src/usr.bin/make/var.c@1.237 / diff / nxr@1.237
src/usr.bin/make/unit-tests/modmisc.mk@1.2 / diff / nxr@1.2
src/usr.bin/make/var.c@1.237 / diff / nxr@1.237
make(1): add missing test for the :H and :T modifiers
MAIN commitmail json YAML
make(1): refactor ApplyModifiers
Previously, ApplyModifiers was 1200 lines long and pretty complicated.
Now each of the complicated modifiers has its own function, which reduces
the indentation and makes it possible to use early returns.
Previously, ApplyModifiers was 1200 lines long and pretty complicated.
Now each of the complicated modifiers has its own function, which reduces
the indentation and makes it possible to use early returns.
MAIN commitmail json YAML
src/usr.bin/make/lst.lib/lstAppend.c@1.15
/
diff
/
nxr@1.15
src/usr.bin/make/lst.lib/lstAtEnd.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstAtFront.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstClose.c@1.12 / diff / nxr@1.12
src/usr.bin/make/lst.lib/lstConcat.c@1.17 / diff / nxr@1.17
src/usr.bin/make/lst.lib/lstDatum.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstDeQueue.c@1.15 / diff / nxr@1.15
src/usr.bin/make/lst.lib/lstDupl.c@1.17 / diff / nxr@1.17
src/usr.bin/make/lst.lib/lstEnQueue.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstFind.c@1.16 / diff / nxr@1.16
src/usr.bin/make/lst.lib/lstFindFrom.c@1.16 / diff / nxr@1.16
src/usr.bin/make/lst.lib/lstFirst.c@1.13 / diff / nxr@1.13
src/usr.bin/make/lst.lib/lstForEach.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstForEachFrom.c@1.18 / diff / nxr@1.18
src/usr.bin/make/lst.lib/lstInit.c@1.13 / diff / nxr@1.13
src/usr.bin/make/lst.lib/lstInsert.c@1.15 / diff / nxr@1.15
src/usr.bin/make/lst.lib/lstIsAtEnd.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstIsEmpty.c@1.12 / diff / nxr@1.12
src/usr.bin/make/lst.lib/lstLast.c@1.13 / diff / nxr@1.13
src/usr.bin/make/lst.lib/lstNext.c@1.13 / diff / nxr@1.13
:
(more 5 files)
src/usr.bin/make/lst.lib/lstAtEnd.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstAtFront.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstClose.c@1.12 / diff / nxr@1.12
src/usr.bin/make/lst.lib/lstConcat.c@1.17 / diff / nxr@1.17
src/usr.bin/make/lst.lib/lstDatum.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstDeQueue.c@1.15 / diff / nxr@1.15
src/usr.bin/make/lst.lib/lstDupl.c@1.17 / diff / nxr@1.17
src/usr.bin/make/lst.lib/lstEnQueue.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstFind.c@1.16 / diff / nxr@1.16
src/usr.bin/make/lst.lib/lstFindFrom.c@1.16 / diff / nxr@1.16
src/usr.bin/make/lst.lib/lstFirst.c@1.13 / diff / nxr@1.13
src/usr.bin/make/lst.lib/lstForEach.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstForEachFrom.c@1.18 / diff / nxr@1.18
src/usr.bin/make/lst.lib/lstInit.c@1.13 / diff / nxr@1.13
src/usr.bin/make/lst.lib/lstInsert.c@1.15 / diff / nxr@1.15
src/usr.bin/make/lst.lib/lstIsAtEnd.c@1.14 / diff / nxr@1.14
src/usr.bin/make/lst.lib/lstIsEmpty.c@1.12 / diff / nxr@1.12
src/usr.bin/make/lst.lib/lstLast.c@1.13 / diff / nxr@1.13
src/usr.bin/make/lst.lib/lstNext.c@1.13 / diff / nxr@1.13
:
(more 5 files)
make(1): remove redundant parentheses around return value
MAIN commitmail json YAML
src/usr.bin/make/compat.c@1.113
/
diff
/
nxr@1.113
src/usr.bin/make/cond.c@1.78 / diff / nxr@1.78
src/usr.bin/make/dir.c@1.76 / diff / nxr@1.76
src/usr.bin/make/for.c@1.54 / diff / nxr@1.54
src/usr.bin/make/job.c@1.201 / diff / nxr@1.201
src/usr.bin/make/job.h@1.43 / diff / nxr@1.43
src/usr.bin/make/main.c@1.279 / diff / nxr@1.279
src/usr.bin/make/make.c@1.99 / diff / nxr@1.99
src/usr.bin/make/meta.c@1.85 / diff / nxr@1.85
src/usr.bin/make/meta.h@1.7 / diff / nxr@1.7
src/usr.bin/make/parse.c@1.236 / diff / nxr@1.236
src/usr.bin/make/trace.c@1.12 / diff / nxr@1.12
src/usr.bin/make/util.c@1.57 / diff / nxr@1.57
src/usr.bin/make/var.c@1.235 / diff / nxr@1.235
src/usr.bin/make/cond.c@1.78 / diff / nxr@1.78
src/usr.bin/make/dir.c@1.76 / diff / nxr@1.76
src/usr.bin/make/for.c@1.54 / diff / nxr@1.54
src/usr.bin/make/job.c@1.201 / diff / nxr@1.201
src/usr.bin/make/job.h@1.43 / diff / nxr@1.43
src/usr.bin/make/main.c@1.279 / diff / nxr@1.279
src/usr.bin/make/make.c@1.99 / diff / nxr@1.99
src/usr.bin/make/meta.c@1.85 / diff / nxr@1.85
src/usr.bin/make/meta.h@1.7 / diff / nxr@1.7
src/usr.bin/make/parse.c@1.236 / diff / nxr@1.236
src/usr.bin/make/trace.c@1.12 / diff / nxr@1.12
src/usr.bin/make/util.c@1.57 / diff / nxr@1.57
src/usr.bin/make/var.c@1.235 / diff / nxr@1.235
make(1): remove trailing whitespace
MAIN commitmail json YAML
src/usr.bin/make/arch.c@1.73
/
diff
/
nxr@1.73
src/usr.bin/make/buf.c@1.26 / diff / nxr@1.26
src/usr.bin/make/compat.c@1.112 / diff / nxr@1.112
src/usr.bin/make/cond.c@1.77 / diff / nxr@1.77
src/usr.bin/make/dir.c@1.75 / diff / nxr@1.75
src/usr.bin/make/hash.c@1.21 / diff / nxr@1.21
src/usr.bin/make/job.c@1.200 / diff / nxr@1.200
src/usr.bin/make/main.c@1.278 / diff / nxr@1.278
src/usr.bin/make/make.c@1.98 / diff / nxr@1.98
src/usr.bin/make/make_malloc.c@1.12 / diff / nxr@1.12
src/usr.bin/make/meta.c@1.84 / diff / nxr@1.84
src/usr.bin/make/parse.c@1.235 / diff / nxr@1.235
src/usr.bin/make/suff.c@1.88 / diff / nxr@1.88
src/usr.bin/make/targ.c@1.63 / diff / nxr@1.63
src/usr.bin/make/util.c@1.56 / diff / nxr@1.56
src/usr.bin/make/var.c@1.234 / diff / nxr@1.234
src/usr.bin/make/buf.c@1.26 / diff / nxr@1.26
src/usr.bin/make/compat.c@1.112 / diff / nxr@1.112
src/usr.bin/make/cond.c@1.77 / diff / nxr@1.77
src/usr.bin/make/dir.c@1.75 / diff / nxr@1.75
src/usr.bin/make/hash.c@1.21 / diff / nxr@1.21
src/usr.bin/make/job.c@1.200 / diff / nxr@1.200
src/usr.bin/make/main.c@1.278 / diff / nxr@1.278
src/usr.bin/make/make.c@1.98 / diff / nxr@1.98
src/usr.bin/make/make_malloc.c@1.12 / diff / nxr@1.12
src/usr.bin/make/meta.c@1.84 / diff / nxr@1.84
src/usr.bin/make/parse.c@1.235 / diff / nxr@1.235
src/usr.bin/make/suff.c@1.88 / diff / nxr@1.88
src/usr.bin/make/targ.c@1.63 / diff / nxr@1.63
src/usr.bin/make/util.c@1.56 / diff / nxr@1.56
src/usr.bin/make/var.c@1.234 / diff / nxr@1.234
make(1): remove redundant parentheses around return values
MAIN commitmail json YAML
make(1): refactor Str_Match
- use shorter variable names to avoid line breaks
- eliminate c2 variable
- change return type to Boolean
- use shorter variable names to avoid line breaks
- eliminate c2 variable
- change return type to Boolean
MAIN commitmail json YAML
make(1): clean up Str_Match
- removed unnecessary parentheses
- uniform test for end of string
- removed unnecessary parentheses
- uniform test for end of string
MAIN commitmail json YAML
make(1): clean up documentation of Str_Match
MAIN commitmail json YAML
cgram(6): use standard cursor keys, use standard shuffle algorithm
The previous shuffle algorithm asked for 100 random numbers, on average.
The new algorithm asks exactly for 26 random numbers.
Curses predefines numeric constants for keys, and there is no apparent
reason not to use these standard keys for cursor movement.
The previous shuffle algorithm asked for 100 random numbers, on average.
The new algorithm asks exactly for 26 random numbers.
Curses predefines numeric constants for keys, and there is no apparent
reason not to use these standard keys for cursor movement.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/cond-short.exp@1.9
/
diff
/
nxr@1.9
src/usr.bin/make/var.c@1.233 / diff / nxr@1.233
src/usr.bin/make/var.c@1.233 / diff / nxr@1.233
make(1): fix unnecessary evaluation of variables in :@var@ modifier
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/cond-short.exp@1.8
/
diff
/
nxr@1.8
src/usr.bin/make/var.c@1.232 / diff / nxr@1.232
src/usr.bin/make/var.c@1.232 / diff / nxr@1.232
make(1): fix unnecessary evaluation for :S :C := modifiers
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/cond-short.exp@1.7
/
diff
/
nxr@1.7
src/usr.bin/make/unit-tests/cond-short.mk@1.6 / diff / nxr@1.6
src/usr.bin/make/unit-tests/cond-short.mk@1.6 / diff / nxr@1.6
make(1): demonstrate some more cases for unintended evaluation
MAIN commitmail json YAML
make(1): clean up code in var.c
- remove redundant parentheses in return statements
- add missing space after comma
- remove some redundant parentheses around comparisons
- use hexadecimal numbers for bit mask constants
- remove Var_GetTail and Var_GetHead, which had been unused for 19 years
- remove redundant parentheses in return statements
- add missing space after comma
- remove some redundant parentheses around comparisons
- use hexadecimal numbers for bit mask constants
- remove Var_GetTail and Var_GetHead, which had been unused for 19 years
MAIN commitmail json YAML
src/usr.bin/make/arch.c@1.72
/
diff
/
nxr@1.72
src/usr.bin/make/compat.c@1.111 / diff / nxr@1.111
src/usr.bin/make/job.c@1.199 / diff / nxr@1.199
src/usr.bin/make/main.c@1.277 / diff / nxr@1.277
src/usr.bin/make/make.c@1.97 / diff / nxr@1.97
src/usr.bin/make/meta.c@1.83 / diff / nxr@1.83
src/usr.bin/make/nonints.h@1.77 / diff / nxr@1.77
src/usr.bin/make/parse.c@1.234 / diff / nxr@1.234
src/usr.bin/make/suff.c@1.87 / diff / nxr@1.87
src/usr.bin/make/var.c@1.230 / diff / nxr@1.230
src/usr.bin/make/compat.c@1.111 / diff / nxr@1.111
src/usr.bin/make/job.c@1.199 / diff / nxr@1.199
src/usr.bin/make/main.c@1.277 / diff / nxr@1.277
src/usr.bin/make/make.c@1.97 / diff / nxr@1.97
src/usr.bin/make/meta.c@1.83 / diff / nxr@1.83
src/usr.bin/make/nonints.h@1.77 / diff / nxr@1.77
src/usr.bin/make/parse.c@1.234 / diff / nxr@1.234
src/usr.bin/make/suff.c@1.87 / diff / nxr@1.87
src/usr.bin/make/var.c@1.230 / diff / nxr@1.230
make(1): remove useless parameter from Var_Set
The enum corresponding to this int parameter is only defined in var.c,
which makes it impractical for the outside to set this parameter to
anything but 0.
On x86_64, this reduces the size of the resulting executable by 5 kB.
The enum corresponding to this int parameter is only defined in var.c,
which makes it impractical for the outside to set this parameter to
anything but 0.
On x86_64, this reduces the size of the resulting executable by 5 kB.
MAIN commitmail json YAML
make(1): use enum instead of #define for VarPattern flags
MAIN commitmail json YAML
src/usr.bin/make/make.h@1.109
/
diff
/
nxr@1.109
src/usr.bin/make/nonints.h@1.76 / diff / nxr@1.76
src/usr.bin/make/var.c@1.228 / diff / nxr@1.228
src/usr.bin/make/nonints.h@1.76 / diff / nxr@1.76
src/usr.bin/make/var.c@1.228 / diff / nxr@1.228
make(1): add more type safety for enums
There are several types of flags for variables, and these cannot be
mixed. To prevent accidental typos, these are defined in separate enum
types. Clang warns about direct assignments between distinct types, but
not about mixing distinct types in binary expressions like A | B. GCC
does not warn at all.
There are several types of flags for variables, and these cannot be
mixed. To prevent accidental typos, these are defined in separate enum
types. Clang warns about direct assignments between distinct types, but
not about mixing distinct types in binary expressions like A | B. GCC
does not warn at all.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/cond-short.exp@1.6
/
diff
/
nxr@1.6
src/usr.bin/make/unit-tests/cond-short.mk@1.5 / diff / nxr@1.5
src/usr.bin/make/var.c@1.227 / diff / nxr@1.227
src/usr.bin/make/unit-tests/cond-short.mk@1.5 / diff / nxr@1.5
src/usr.bin/make/var.c@1.227 / diff / nxr@1.227
make(1): fix unnecessary evaluation of :M and :N modifiers
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/cond-short.exp@1.5
/
diff
/
nxr@1.5
src/usr.bin/make/unit-tests/cond-short.mk@1.4 / diff / nxr@1.4
src/usr.bin/make/unit-tests/cond-short.mk@1.4 / diff / nxr@1.4
make(1): demonstrate another unintended variable evaluation
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/cond-short.exp@1.4
/
diff
/
nxr@1.4
src/usr.bin/make/var.c@1.226 / diff / nxr@1.226
src/usr.bin/make/var.c@1.226 / diff / nxr@1.226
make(1): fix edge case for evaluating unnecessary conditions
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/cond-short.exp@1.3
/
diff
/
nxr@1.3
src/usr.bin/make/unit-tests/cond-short.mk@1.3 / diff / nxr@1.3
src/usr.bin/make/unit-tests/cond-short.mk@1.3 / diff / nxr@1.3
make(1): demonstrate another unnecessary condition evaluation
MAIN commitmail json YAML
make(1): document the actual cause for "recursive variable"
That wrong error message had nothing to do with the .for loop, it was
only caused because the .for loop uses the :U modifier internally.
That wrong error message had nothing to do with the .for loop, it was
only caused because the .for loop uses the :U modifier internally.
MAIN commitmail json YAML
src/usr.bin/make/cond.c@1.76
/
diff
/
nxr@1.76
src/usr.bin/make/unit-tests/cond-short.exp@1.2 / diff / nxr@1.2
src/usr.bin/make/unit-tests/cond-short.mk@1.2 / diff / nxr@1.2
src/usr.bin/make/unit-tests/cond-short.exp@1.2 / diff / nxr@1.2
src/usr.bin/make/unit-tests/cond-short.mk@1.2 / diff / nxr@1.2
make(1): fix evaluation of unreachable conditions
Since 2015-10-11, make had evaluated unreachable conditions even though
the manual page said it didn't.
Since 2015-10-11, make had evaluated unreachable conditions even though
the manual page said it didn't.
MAIN commitmail json YAML
src/distrib/sets/lists/tests/mi@1.862
/
diff
/
nxr@1.862
src/usr.bin/make/unit-tests/Makefile@1.59 / diff / nxr@1.59
src/usr.bin/make/unit-tests/cond-short.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/cond-short.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/Makefile@1.59 / diff / nxr@1.59
src/usr.bin/make/unit-tests/cond-short.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/cond-short.mk@1.1 / diff / nxr@1.1
make(1): demonstrate bug when evaluating conditions
MAIN commitmail json YAML
src/usr.bin/make/str.c@1.48
/
diff
/
nxr@1.48
src/usr.bin/make/unit-tests/modmatch.mk@1.6 / diff / nxr@1.6
src/usr.bin/make/unit-tests/modmatch.mk@1.6 / diff / nxr@1.6
make(1): fix performance problem in specially crafted :M modifier
This fix was previously suspected to make the vax build fail. The next
build succeeded though, and it started 2 hours before this fix was
reverted.
This fix was previously suspected to make the vax build fail. The next
build succeeded though, and it started 2 hours before this fix was
reverted.
MAIN commitmail json YAML
src/usr.bin/make/str.c@1.47
/
diff
/
nxr@1.47
src/usr.bin/make/unit-tests/modmatch.mk@1.5 / diff / nxr@1.5
src/usr.bin/make/unit-tests/modmatch.mk@1.5 / diff / nxr@1.5
usr.bin/make: revert performance improvement
That change might be the cause of a build failure for vax.
http://releng.netbsd.org/builds/HEAD/202006131940Z/ builds fine.
http://releng.netbsd.org/builds/HEAD/202006141020Z/ doesn't.
The build fails with:
/home/source/ab/HEAD/src/external/gpl3/gcc/dist/gcc/machmode.h:524:28:
error: 'mode_size_inline' was not declared in this scope
That change might be the cause of a build failure for vax.
http://releng.netbsd.org/builds/HEAD/202006131940Z/ builds fine.
http://releng.netbsd.org/builds/HEAD/202006141020Z/ doesn't.
The build fails with:
/home/source/ab/HEAD/src/external/gpl3/gcc/dist/gcc/machmode.h:524:28:
error: 'mode_size_inline' was not declared in this scope
MAIN commitmail json YAML
src/usr.bin/make/str.c@1.46
/
diff
/
nxr@1.46
src/usr.bin/make/unit-tests/modmatch.mk@1.4 / diff / nxr@1.4
src/usr.bin/make/unit-tests/modmatch.mk@1.4 / diff / nxr@1.4
usr.bin/make: make Str_Match faster for repeated asterisks
Conceptually related to https://en.wikipedia.org/wiki/ReDoS.
Conceptually related to https://en.wikipedia.org/wiki/ReDoS.
MAIN commitmail json YAML
usr.bin/make: remove redundant parentheses around return
MAIN commitmail json YAML
usr.bin/make: consistently use ++ for incrementing pointers
MAIN commitmail json YAML
usr.bin/make: fix typo in comment
MAIN commitmail json YAML
usr.bin/make: fix test failure
The two files include-sub.mk and include-subsub.mk were never intended to
be test cases on their own. They belong to include-main.mk.
Fixes PR bin/55360.
The two files include-sub.mk and include-subsub.mk were never intended to
be test cases on their own. They belong to include-main.mk.
Fixes PR bin/55360.
MAIN commitmail json YAML
src/distrib/sets/lists/tests/mi@1.841
/
diff
/
nxr@1.841
src/usr.bin/make/unit-tests/Makefile@1.58 / diff / nxr@1.58
src/usr.bin/make/unit-tests/include-main.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/include-main.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/include-sub.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/include-subsub.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/Makefile@1.58 / diff / nxr@1.58
src/usr.bin/make/unit-tests/include-main.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/include-main.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/include-sub.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/include-subsub.mk@1.1 / diff / nxr@1.1
usr.bin/make: demonstrate actual behavior of .INCLUDEDFROMFILE
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/dollar.exp@1.3
/
diff
/
nxr@1.3
src/usr.bin/make/unit-tests/dollar.mk@1.3 / diff / nxr@1.3
src/usr.bin/make/unit-tests/dollar.mk@1.3 / diff / nxr@1.3
usr.bin/make: fix test for dollar and backslash at eol
The previous version of this test relied on the way how the shell
interprets a lonely backslash at the end of the line. The NetBSD and
FreeBSD shells print the backslash, while Bash doesn't.
While here, make the escaping a bit simpler and align the test
descriptions with the actual test data.
The previous version of this test relied on the way how the shell
interprets a lonely backslash at the end of the line. The NetBSD and
FreeBSD shells print the backslash, while Bash doesn't.
While here, make the escaping a bit simpler and align the test
descriptions with the actual test data.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/dollar.exp@1.2
/
diff
/
nxr@1.2
src/usr.bin/make/unit-tests/dollar.mk@1.2 / diff / nxr@1.2
src/usr.bin/make/unit-tests/dollar.mk@1.2 / diff / nxr@1.2
usr.bin/make: fix typo in dollar test
MAIN commitmail json YAML
usr.bin/make: sort test cases alphabetically
MAIN commitmail json YAML
src/distrib/sets/lists/tests/mi@1.840
/
diff
/
nxr@1.840
src/usr.bin/make/unit-tests/Makefile@1.56 / diff / nxr@1.56
src/usr.bin/make/unit-tests/dollar.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/dollar.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/Makefile@1.56 / diff / nxr@1.56
src/usr.bin/make/unit-tests/dollar.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/dollar.mk@1.1 / diff / nxr@1.1
usr.bin/make: add tests for surprising dollar removal
MAIN commitmail json YAML
usr.bin/make: refactor brk_string
The variables are renamed to reflect to which memory region each pointer
belongs.
The variable "curlen" was always zero.
The type of "ch" has changed to char, and its scope is now limited to
its actual use.
Comparisons of pointers are now consistently written as p != NULL
instead of !p, like character comparisons are written as ch != '\0'.
The "store_words_buf" is updated when the function returns, not before.
The variables are renamed to reflect to which memory region each pointer
belongs.
The variable "curlen" was always zero.
The type of "ch" has changed to char, and its scope is now limited to
its actual use.
Comparisons of pointers are now consistently written as p != NULL
instead of !p, like character comparisons are written as ch != '\0'.
The "store_words_buf" is updated when the function returns, not before.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/forloop.exp@1.2
/
diff
/
nxr@1.2
src/usr.bin/make/unit-tests/forloop.mk@1.2 / diff / nxr@1.2
src/usr.bin/make/unit-tests/forloop.mk@1.2 / diff / nxr@1.2
usr.bin/make: add test demonstrating that .for stops at newline
MAIN commitmail json YAML
usr.bin/make: fix test for late evaluated condition
MAIN commitmail json YAML
src/distrib/sets/lists/tests/mi@1.838
/
diff
/
nxr@1.838
src/usr.bin/make/unit-tests/Makefile@1.55 / diff / nxr@1.55
src/usr.bin/make/unit-tests/cond-late.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/cond-late.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/Makefile@1.55 / diff / nxr@1.55
src/usr.bin/make/unit-tests/cond-late.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/cond-late.mk@1.1 / diff / nxr@1.1
usr.bin/make: add test case for lazy conditions
MAIN commitmail json YAML
t_glob.c: clean up test code
In struct vfs_file, using an int as a boolean is an anachronism and has
been replaced with a single-character file type, like in ls(1).
Some other redundant test code has been removed as well since it was
either unreachable or existed only for performance reasons.
In struct vfs_file, using an int as a boolean is an anachronism and has
been replaced with a single-character file type, like in ls(1).
Some other redundant test code has been removed as well since it was
either unreachable or existed only for performance reasons.
MAIN commitmail json YAML
t_glob.c: add test cases for hidden directory and file
The existing test code was geared towards every little bit of
performance. It even duplicated the file definitions in vfs_stat in order
to avoid a few strcmp calls. This made the test code fragile. Therefore,
vfs_stat has been rewritten completely to not duplicate any information
from the vfs.
In vfs_stat, the returned st_mode is now more realistic. It had been 0
before. The file mode is only logged when it makes sense. In the ENOENT
case it is not logged anymore.
The debug logging for opendir/closedir now logs the same pointer, so that
the corresponding calls can be matched easily. Failed vfs_opendir calls
are logged as well, to get a more complete picture of which callbacks are
called.
The existing test code was geared towards every little bit of
performance. It even duplicated the file definitions in vfs_stat in order
to avoid a few strcmp calls. This made the test code fragile. Therefore,
vfs_stat has been rewritten completely to not duplicate any information
from the vfs.
In vfs_stat, the returned st_mode is now more realistic. It had been 0
before. The file mode is only logged when it makes sense. In the ENOENT
case it is not logged anymore.
The debug logging for opendir/closedir now logs the same pointer, so that
the corresponding calls can be matched easily. Failed vfs_opendir calls
are logged as well, to get a more complete picture of which callbacks are
called.
MAIN commitmail json YAML
t_glob.c: use distinct names for test structures
Before, the structures and functions defined by the test used the same
prefix as the code to be tested. This made it difficult to draw a line
between these parts.
Before, the structures and functions defined by the test used the same
prefix as the code to be tested. This made it difficult to draw a line
between these parts.
MAIN commitmail json YAML
t_glob.c: move expected globbing result directly into the test cases
This makes the tests more self-contained. The example directory tree that
is common to all the tests is still defined elsewhere, but in the same
file. Setting up the example directory structure in each test would make
the tests even more independent and read.
This makes the tests more self-contained. The example directory tree that
is common to all the tests is still defined elsewhere, but in the same
file. Setting up the example directory structure in each test would make
the tests even more independent and read.
MAIN commitmail json YAML
usr.bin/make: document probabilities for random test failures
Side node: this test will never fail between 2024-04-15 and 2024-07-06.
Side node: this test will never fail between 2024-04-15 and 2024-07-06.
MAIN commitmail json YAML
usr.bin/make: remove dead code
The preprocessor conditions contradicted each other: __hpux__ or __hpux
would need to be defined, and at the same time none of them would need to
be defined.
The preprocessor conditions contradicted each other: __hpux__ or __hpux
would need to be defined, and at the same time none of them would need to
be defined.
MAIN commitmail json YAML
usr.bin/make: fix typos in comment
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/varmod-edge.exp@1.4
/
diff
/
nxr@1.4
src/usr.bin/make/unit-tests/varmod-edge.mk@1.6 / diff / nxr@1.6
src/usr.bin/make/unit-tests/varmod-edge.mk@1.6 / diff / nxr@1.6
Add more tests for variable modifiers in make.
MAIN commitmail json YAML
src/usr.bin/make/str.c@1.39
/
diff
/
nxr@1.39
src/usr.bin/make/unit-tests/varmod-edge.mk@1.5 / diff / nxr@1.5
src/usr.bin/make/unit-tests/varmod-edge.mk@1.5 / diff / nxr@1.5
Fix out-of-bounds read in Str_Match.
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/varmod-edge.exp@1.3
/
diff
/
nxr@1.3
src/usr.bin/make/unit-tests/varmod-edge.mk@1.4 / diff / nxr@1.4
src/usr.bin/make/unit-tests/varmod-edge.mk@1.4 / diff / nxr@1.4
Demonstrate some more edge cases for the :M modifier
MAIN commitmail json YAML
Fix unit test for edge case in :M modifier
MAIN commitmail json YAML
Ignore temporary files from running the unit tests
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/varmod-edge.exp@1.2
/
diff
/
nxr@1.2
src/usr.bin/make/unit-tests/varmod-edge.mk@1.2 / diff / nxr@1.2
src/usr.bin/make/unit-tests/varmod-edge.mk@1.2 / diff / nxr@1.2
Add another unit test for the :M modifier
MAIN commitmail json YAML
src/usr.bin/make/unit-tests/Makefile@1.54
/
diff
/
nxr@1.54
src/usr.bin/make/unit-tests/varmod-edge.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/varmod-edge.mk@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/varmod-edge.exp@1.1 / diff / nxr@1.1
src/usr.bin/make/unit-tests/varmod-edge.mk@1.1 / diff / nxr@1.1
Add unit tests for variable modifiers like :M and :N
MAIN commitmail json YAML
When listing aliases, sort them alphabetically.
MAIN commitmail json YAML
Fix "every" typo in quote from The Mythical Man-Month