<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/miscutils, branch path_search</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=path_search</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=path_search'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2024-06-10T11:46:50+00:00</updated>
<entry>
<title>make: limit changes to pragmas</title>
<updated>2024-06-10T11:46:50+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-10T11:46:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=a518a4f6023582744fa271ec279375dd3d51a4d4'/>
<id>urn:sha1:a518a4f6023582744fa271ec279375dd3d51a4d4</id>
<content type='text'>
The special target .PRAGMA could be used to set or reset pragmas.
Doing anything other than setting pragmas very early in execution
is likely to be problematic.

Limit the abilities of .PRAGMA:

- Specifying .PRAGMA with no prerequisites now does nothing:
  pragmas are not reset.

- The posix_2017 and posix_202x pragmas can only be used to change
  the enforced POSIX level from the default.  Any further attempt
  to change POSIX level results in a warning.

Adds 16-32 bytes.
</content>
</entry>
<entry>
<title>make: allow := macro assignment on command line</title>
<updated>2024-06-08T11:13:28+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-08T10:42:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=997961d8a9a2c67e06508ac5f3733edb3ad6ebc7'/>
<id>urn:sha1:997961d8a9a2c67e06508ac5f3733edb3ad6ebc7</id>
<content type='text'>
Only the forms of macro assignment required by POSIX were allowed
on the command line.

Add support for the non-POSIX := form too.

Adds 16-24 bytes.
</content>
</entry>
<entry>
<title>make: more changes for c:/path target</title>
<updated>2024-06-05T13:12:25+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-05T13:12:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=be285ff1ddc59ff96d9012cba4590d3cf3f4cbee'/>
<id>urn:sha1:be285ff1ddc59ff96d9012cba4590d3cf3f4cbee</id>
<content type='text'>
The previous commit failed to change an instance of find_char()
to find_colon().

It isn't necessary to use find_char() to replace find_colon()
in the non-Windows case: strchr(3) is sufficient.

Adds 16-48 bytes.
</content>
</entry>
<entry>
<title>make: restore check for c:/path target</title>
<updated>2024-06-05T08:22:08+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-05T08:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=0fc9f646c3f5df129adde5c0ebab274a123fba03'/>
<id>urn:sha1:0fc9f646c3f5df129adde5c0ebab274a123fba03</id>
<content type='text'>
Commit f9d10b2b6 (make: fix detection of target rules (take 2))
failed to include the function find_colon() which is used to skip
targets of the form c:/path when checking for a target rule.

Restore the function so Windows paths can be used as targets.

Adds 48 bytes.
</content>
</entry>
<entry>
<title>make: explicitly verify order of arguments</title>
<updated>2024-06-04T12:55:25+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-04T12:55:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=48f5ecaf27d900ffea77dbda762202d73223ec32'/>
<id>urn:sha1:48f5ecaf27d900ffea77dbda762202d73223ec32</id>
<content type='text'>
POSIX requires macro assignments to precede targets on the command
line.  This requirement has been relaxed as a non-POSIX extension.

Verify the constraint has been applied in POSIX mode.  This ensures
that the command:

   make --posix target A=1

fails before it tries to update the target.

It also catches the case where POSIX mode had not been set with the
--posix option or PDPMAKE_POSIXLY_CORRECT environment but was then
set by the .POSIX special target in the makefile.  In this case the
command line was scanned for macro assignments without enforcing
POSIX mode while targets were processed with POSIX mode enabled.

Adds 96 bytes.
</content>
</entry>
<entry>
<title>make: only reset getopt(3) if necessary</title>
<updated>2024-06-03T07:49:51+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-03T07:49:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=ac688749879e4867bee0be6a07eec21a65cec585'/>
<id>urn:sha1:ac688749879e4867bee0be6a07eec21a65cec585</id>
<content type='text'>
Only invoke GETOPT_RESET() if getopt(3) has actually been called.
</content>
</entry>
<entry>
<title>make: ensure sufficient space in line buffer</title>
<updated>2024-06-02T18:36:03+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-02T18:36:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=75a18a60b40f87dd4d081bc75931c9f93de7b82c'/>
<id>urn:sha1:75a18a60b40f87dd4d081bc75931c9f93de7b82c</id>
<content type='text'>
When using fgets(3) to read a line into a buffer it's necessary
to ensure at least two characters are available in the buffer.
Otherwise the read fails.  (At least, it did when pdpmake was
built using MSYS2 on Windows.)

Adds 16 bytes to the 32-bit build.

(GitHub pdpmake issue 44)
</content>
</entry>
<entry>
<title>make: report POSIX 202X issue with include</title>
<updated>2024-06-02T12:04:12+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-02T12:04:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=b845dac43ac170d8b5a40d0e75dbd4276e5a3df6'/>
<id>urn:sha1:b845dac43ac170d8b5a40d0e75dbd4276e5a3df6</id>
<content type='text'>
Synchronising with upstream pdpmake showed that a test was missing
from the BusyBox port.  POSIX 202X doesn't specify what should
happen if an include statement has no arguments.

When the POSIX 202X standard is being enforced this is reported as
an error.

Adds 32 bytes.
</content>
</entry>
<entry>
<title>make: restore warning about invalid macro name</title>
<updated>2024-06-02T08:56:40+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-02T08:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=25373f4d5f5b211fb959937eb370a03e2bacd7b3'/>
<id>urn:sha1:25373f4d5f5b211fb959937eb370a03e2bacd7b3</id>
<content type='text'>
Commit 90c5352a9 (make: change how macros are read from the
environment) was intended to ignore environment variables with
invalid names.  It had the unintended consequence of also ignoring
macros with invalid names defined in makefiles.  This was because
such macros can have the same level (3) as those imported from the
environment.

Rather than use the level to detect importing from the environment
add a flag to indicate this circumstance.
</content>
</entry>
<entry>
<title>make: fix detection of target rules (take 2)</title>
<updated>2024-05-31T09:27:18+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-05-31T09:27:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=f9d10b2b6314ea2a80515112498aaa919ad81c97'/>
<id>urn:sha1:f9d10b2b6314ea2a80515112498aaa919ad81c97</id>
<content type='text'>
Commit d6b764116 (make: fix detection of target rules) checked
for target rules before macro assignments.  This failed for some
Makefiles generated by autotools because partially defined macros
were expanded while testing for a target rule.

Revert to checking for macro assignments first, but try to detect
if the proposed left hand side of the assignment might form part
of a target rule with an inline command.

Also handle the case where the ';' separator of the inline command
has been obfuscated by putting it in a macro.

Saves 128-160 bytes.

(GitHub pdpmake issues 31, 44)
</content>
</entry>
</feed>
