<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32, 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-12T11:43:39+00:00</updated>
<entry>
<title>win32: allow for trailing separator in PATH</title>
<updated>2024-06-12T11:43:39+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-06-12T11:34:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=2817c3d4f3fb60b6719782cde57a6b7347cf2898'/>
<id>urn:sha1:2817c3d4f3fb60b6719782cde57a6b7347cf2898</id>
<content type='text'>
In recent versions of Windows the PATH environment variable has
a trailing semicolon.  This is insignificant to Windows because
it's ignored.  busybox-w32 conforms to the POSIX interpretation
of PATH which treats an empty path element as denoting the current
directory.  As result, on these versions of Windows executables
may by default be run from the current directory, contrary to
usual Unix practice.

Attempt to detect and remove the trailing semicolon on applet
start up.  If the user insists, they can add a trailing semicolon
to the shell variable PATH and it will be respected in the
conventional manner.

Adds 88-112 bytes.
</content>
</entry>
<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>
</feed>
