| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| | |
To set the window title from the command line:
echo -en '\e]0;Hello World\007'
The same sequence can be used in the shell's prompt (PS1).
|
| | |
|
| |
| |
| |
| |
| | |
Add is_admin() and use it to alter the command prompt in the line
editor when running with admin privileges.
|
| |
| |
| |
| |
| |
| | |
ShellExecuteEx() requires backslashes as the file separator if
the binary to be executed has a UNC path. Convert separators
unconditionally.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code to normalise paths in resolve_symlinks(), which is used
by realpath(3), was incomplete and unable to handle UNC paths.
Make an ASCII version of normalize_ntpath() to extend the cases
covered.
This fixes a regression introduced by commit 585d17d26 (win32:
canonicalize path in chdir(2)): it wasn't possible to change
to a directory with a UNC path.
|
| |
| |
| |
| |
| |
| | |
I've been a bit lax about ensuring the --busybox flag is passed
in command lines. It's needed to avoid problems if the binary
is called something like sh.exe.
|
| |
| |
| |
| |
| |
| |
| |
| | |
When busybox-w32 is installed in C:/Windows/System32 su doesn't
run in the same directory as its parent as intended.
Work around this by adding a flag to the shell to set the working
directory.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use the undocumented 'runas' verb in a call to ShellExecuteEx()
to run a shell with elevated privileges.
Because of the way ShellExecuteEx() works this:
- requires that you acknowledge a User Account Control prompt (if
you're an Administrator);
- requires that you enter an Administrator's password (if you aren't
an Administrator);
- creates a separate console window for the privileged shell.
Variables from the parent shell aren't passed to its privileged child,
only variables from the environment.
It's possible to specify a command to run when the shell starts.
This can be used to pass shell variables:
su -c "HELLO='hello world'; GOODBYE=$GOODBYE"
Or do fancy things like:
su -c "ls -l; read -p 'Hit return to exit: '; exit"
It's probably best to put double quotes around the command and use
single quotes inside it. Apparently ShellExecuteEx() requires
double quotes to be entered in triplicate:
su -c 'HELLO="""hello world"""'
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Provide an implementation of chdir(2) which canonicalizes the
path to resolve symlinks. Otherwise changing to a symlinked
directory confuses 'ls -l' because it thinks '.' is a link
rather than a directory.
OTOH, using 'cd' in the shell to change to a symlinked directory
now results in a mismatch between the shell's idea of where we are
and what's displayed in the prompt. But upstream BusyBox does
that too so it must be OK.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Provide an implementation of readlink(2) based on code from Git
for Windows. This version only supports symbolic links, not
mount points, as the latter seem to work well enough as-is.
With this change the ls and stat applets can display the targets
of symbolic links. The readlink applet has been enabled in the
default configuration.
|
| |
| |
| |
| |
| |
| | |
Allow realpath(3) to return successfully on platforms that don't
support GetFinalPathNameByHandleA(). It may still have done some
useful work.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
The file size and times reported when Windows follows a symlink
are incorrect. To get the correct values canonicalize the path
and try again.
Also fetch the correct device id and inode for symlinks.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code to implement stat(2) works around the fact that getting
the attributes of a file fails if its name ends with a path
separator. Directory names with a trailing path separator work
fine.
Why bother with this workaround? Linux doesn't. Instead try to
return a meaningful error code.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
SetFileTime only needs FILE_WRITE_ATTRIBUTES access, not full
read/write access. Therefore it isn't necessary to change the
permissions of read-only files.
The flag FILE_FLAG_BACKUP_SEMANTICS is required to access directories
but does no harm if used on a file.
As a result there's no need to get file attributes.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Further extend file identification so stat(2) returns the relative
identifier as a numeric uid for files with owner SIDs that look like
a local or domain user.
See:
https://blogs.technet.microsoft.com/markrussinovich/2009/11/03/the-machine-sid-duplication-myth-and-why-sysprep-matters/
https://cygwin.com/cygwin-ug-net/ntsec.html
|
| |
| |
| |
| |
| | |
The 'nocaseglob' shell option enables case-insensitive filename
globbing. By default globbing is case-sensitive.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Because tab-completion is case-insensitive the matching text might
differ from what the user typed. Insert the whole of the matching
text, not just the tail. Thus:
$ cd doc<TAB>
now expands to:
$ cd Documents/
|
| |
| |
| |
| |
| | |
Extend stat(2) so it tries to determine whether a file belongs to
the current user or not. If not it's said to belong to root.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
If stat(2) knows a file exists but can't obtain additional metadata
for it give it root ownership and no permissions for other.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
BusyBox's dpkg is marginally more useful than rpm because it maintains
package status.
Run the following commands to initialise the filesystem:
mkdir -p /var/lib/dpkg/info
touch /var/lib/dpkg/status
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The manifest included here wasn't effective in telling Windows
about version compatibility. Use the default manifest provided
by MinGW-w64 instead.
On Fedora this requires installing the mingw32-windows-default-manifest
and/or mingw64-windows-default-manifest packages.
|
| |
| |
| |
| |
| |
| | |
Upstream commit d9aabfe578 (make busybox more portable) moved a
couple of include files into platform-dependent code so we no
longer need dummy versions.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some files can't be opened to fetch additional metadata. When
that happens allow stat(2) to successfully return what data it
has.
In a few cases where the inode number is used to determine if
files are identical ignore invalid inode numbers.
|
| |
| |
| |
| |
| |
| |
| | |
Since st_nlink now depends on st_mode it should be set after
st_mode is initialised.
Rearrange the code to fetch extra metadata.
|
| |
| |
| |
| |
| |
| | |
When additional metadata was being fetched the code for non-disk
files used uninitialised data from the BY_HANDLE_FILE_INFORMATION
structure.
|
| |
| |
| |
| |
| |
| | |
There were a few places where changes intended for the WIN32 build
also affected the POSIX build. Fix these so the result of 'make
defconfig; make' for busybox-w32 is identical to upstream BusyBox.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Move the code to hide the console to a separate function in
win32/mingw.c. Use lazy loading to avoid problems on platforms
where the require APIs aren't supported (PR #70).
Enable console hiding in the default 64-bit configuration.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Modify the WIN32 implementation of stat(2) to fetch inode number,
device id and number of hardlinks. This requires opening a handle
to the target file so it will be slower.
A number of features can be enabled or start to work:
- tar can detect if an archive is being stored in itself;
- find can support the -inum and -links options;
- ls can display inode numbers;
- diff can detect attempts to compare a file with itself;
- du has better support for hardlinked files;
- cp can detect attempts to copy a file over itself.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Since symlinks aren't supported in busybox-w32 remove more of the
code that handles them.
Saves 64 bytes.
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Call i2c_set_slave_addr() unconditionally as busy checking
is skipped depending on force argument.
Clarify usage texts for -f and -a flags.
Signed-off-by: Nikolaus Voss <nv@vosn.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit bb983f30e (vi: fix faulty undo after autoinsert) has a
number of problems:
- The commit message refers to 'autoinsert' when it really means
'autoindent'.
- The indentation of undo_push_insert() was incorrect.
- Most seriously the commit only fixed the problem for cases where
the indentation was exactly one character. This is because undo_push()
only allows single characters to be queued for UNDO_INS_QUEUED.
Lifting this restriction allows the example given in the previous
commit message (with a three character indent) to work.
function old new delta
undo_push 406 435 +29
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 29/0) Total: 29 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
i2ctransfer sends and receives user defined i2c messages
v2: apply Xabier's comments: add -a option, don't decrement argc,
use bb_show_usage() and xzalloc()
v3: fix possible out of bound access to msgs[nmsgs]
Reviewed-by: Xabier Oneca -- xOneca <xoneca@gmail.com>
Signed-off-by: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Busybox sysctl is incompatible with procps when '.' appears in
directory name, mostly happens with VLANs.
busybox syntax (since 2008): net.ipv4.conf.eth0.100.mc_forwarding
procps syntax (since 2002): net.ipv4.conf.eth0/100.mc_forwarding
(supported by both: net/ipv4/conf/eth0.100/mc_forwarding)
Use procps syntax for output; for input, allow both.
function old new delta
sysctl_dots_to_slashes 86 143 +57
sysctl_act_on_setting 443 453 +10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 67/0) Total: 67 bytes
Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| | |
function old new delta
sysctl_dots_to_slashes 71 86 +15
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| | |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| | |
function old new delta
sysctl_act_recursive 163 167 +4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| | |
function old new delta
sysctl_act_on_setting 451 445 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently if the 'r' command is followed by a carriage return a
literal CR replaces the current character.
Fix this so that:
- a new line is inserted
- the autoindent setting is respected
- the cursor is placed at the start of the new line
function old new delta
do_cmd 5052 5060 +8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 8/0) Total: 8 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Enable autoinsert and enter the following with an indent of three
spaces:
line 1
line 2
Using 'u' to undo the last insert results in:
line1e 2
The insertion of the indent hasn't been properly recorded.
Since recording insertions is a common operation add a convenience
function, undo_push_insert(), to handle this and use it to record
the autoindent correctly.
function old new delta
undo_push_insert - 36 +36
string_insert 133 129 -4
char_insert 518 473 -45
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 36/-49) Total: -13 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| | |
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|