Commit Graph

1753 Commits (f5baf2630ab0cf51306bb94311e7eed84caa730d)

Author SHA1 Message Date
Quentin Rameau a02d66b8fc chown: fix user:group option parsing
Check that either user or group is correctly passed, and adapt
documention according to that.
2015-12-21 19:07:51 +00:00
Quentin Rameau 6e7743eb56 Cleanup usage() across sbase
Some tools didn't use argv0 for tool name, or usage() at all.
2015-12-21 18:07:25 +00:00
sin 00d7bf4ea5 flock: Check for waitpid() error 2015-12-21 14:13:36 +00:00
sin 0c3440253b flock: Close fd early for correct error propagation
Spotted by FRIGN.
2015-12-21 14:13:36 +00:00
FRIGN e40fc2b176 Check argv0 in xvprintf()
You never know, given printf'ing NULL-strings might crash the
program, we shouldn't just pass argv0 blindly to it.
2015-12-21 14:13:36 +00:00
sin 3b1b50cffa Do not indent label 2015-12-21 09:55:01 +00:00
FRIGN 94e92d9cc0 Refactor eprintf.c
When we move the exit() out of venprintf(), we can reuse it for
weprintf(), which basically had duplicate code.
I also renamed venprintf() to xvprintf (extended vprintf) so it's
more obvious what it actually does.
2015-12-21 09:34:13 +00:00
Roberto E. Vargas Caballero 6135cad495 Move edit logic to an individual function
It is better to separate this logic from
the parameter logic in main().
2015-12-16 20:25:50 +00:00
Roberto E. Vargas Caballero 05af2156b6 Fix small typo in comment 2015-12-16 20:25:50 +00:00
Roberto E. Vargas Caballero 694a5ef7fb call to addpre() in every iteration of subline()
It is needed to call to addpre(), because in other
case the prefix of all the occurrences before
the target will not be copied to the result
2015-12-16 20:16:12 +00:00
Roberto E. Vargas Caballero 3e130cee66 Escape correctly characters in getrhs()
getrhs() must remove \ excepts in the case of & and \d
(where d is a digit), because in this case are sequences
understood by addsub(), so addsub() must be able to see
2015-12-16 20:16:12 +00:00
Roberto E. Vargas Caballero a65e180e5e Discard input at the end of global commands
If there is no any match, then the rest of the line
is not read, and it means that ed thins it is a new
2015-12-16 20:16:12 +00:00
Quentin Rameau d1bef890ea ed: use arg.h 2015-12-16 09:52:35 +00:00
Quentin Rameau c5b36e1760 ed: fix cmd e/E
Ensure we have a filename before taking further action.
2015-12-16 09:52:35 +00:00
Roberto E. Vargas Caballero d84070398b Check if PRIO_MIN and PRIO_MAX are defined
The majority of the systems define PRIO_MAX and PRIO_MIN,
but there is an obscure system, whose name I am not going
to tell, where they were not defined.
2015-12-15 17:05:21 +00:00
sin 7949adf9c4 No need for using a sub-shell in 2015-12-15 09:46:06 +00:00
sin e52845281a Fix warning in join(1)
Spotted by Random832.
2015-12-15 09:40:52 +00:00
sin fdf9ab9b2d Fix some useless warnings
Makes the code uglier but I cannot stand them.
2015-12-15 09:05:02 +00:00
sin 6b14c50e57 Fix sbase-box target 2015-12-15 08:48:43 +00:00
sin c0eafd4610 Fix getconf(1) usage 2015-12-15 08:45:39 +00:00
Roberto E. Vargas Caballero 136f012d23 Remove ifdef hell from getconf.c
Every system is going to have a different configuration
so the only solution is to put an ifdef guard for every
value.  To do this, we generate the header at compile time
with a shell script.
2015-12-15 08:45:39 +00:00
Roberto E. Vargas Caballero a19aad7c70 Fix getrhs()
getrhs() must not interpret escapes, because in other case
addsub() will not be able to see the escaped characters.
2015-12-14 14:52:53 +00:00
Roberto E. Vargas Caballero 0cd385d164 Restore state of buffer in errors
When a error occurs it is important to remove all the modifications
done by the offending command and restore the value of dot to the
state before of executing the command.
2015-12-14 14:52:53 +00:00
Roberto E. Vargas Caballero 13e0b6c605 Do not modify curln with w commands
POSIX declares that dot is not modified by w commands
2015-12-14 14:52:53 +00:00
sin 25f87bc360 Staticise globals in ed(1) 2015-12-14 12:14:52 +00:00
sin 912c21ab1f Remove unused variables in ed(1) 2015-12-14 12:14:52 +00:00
Roberto E. Vargas Caballero 1de650edf5 Add ed(1) - the standard text editor 2015-12-14 12:14:52 +00:00
sin b533625aac Fix style issue in whoami which broke the sbase-box target
sbase-box.c:(.text+0xd88): undefined reference to `whoami_main'
collect2: ld returned 1 exit status

Broke the sed magic in Makefile.
2015-12-14 11:59:48 +00:00
FRIGN 09c279285a Add whoami(1)
including manpage and other stuff. This program is a no-brainer.
This was inspired by an initial commit by Thanks!
2015-12-14 10:14:07 +00:00
sin bb7427f6c1 Fix type mismatch in split(1)
Adapted from a patch sent by Random832.
2015-11-26 10:35:46 +00:00
sin 67157b7c4e Use SSIZE_MAX for overflow check in parseoffset()
There's no such thing as OFF_MAX so we can't use that.  off_t is
signed, so use SSIZE_MAX which will typically match the range of
2015-11-26 10:35:46 +00:00
sin 1be832320c Fix type mismatches
Thanks to Random832 for the patch.
2015-11-26 10:35:46 +00:00
sin 41a9742037 cal: Highlight current day
Thanks cls!
2015-11-21 10:20:07 +00:00
Brad Barden 211c565b3d tar: improve file status handling on extract
by re-ordering when chmod/chown is done, only a list of directories (not
all files) need be kept for fixing mtime.

this also fixes an issue where set-user-id files in a tar may not work. chmod
is done before chown and before the file is written. if ownership changes, or
the file is being written as a normal user, the setuid bit would be cleared.

also fixes ownership of symbolic links. previously a chown() was called,
which would change the ownership of the link target. lchown() is now
used for symbolic links.

renamed all ent, ent* functions to dir* as it better describes what they

use timespec/utimensat instead of timeval/utimes to get AT_SYMLINK_NOFOLLOW
2015-11-20 09:58:38 +00:00
Brad Barden 85a9254d3a tar: extract creation mode
mode for newly-created files should be restrictive. chmod is always
called soon after to set correct mode from the archive.
2015-11-20 09:58:38 +00:00
sin 11fee4c8ba readlink: Remove broken support for -m and -e
There is no need to bloat readlink with these options.  No one has
ever used them anyway.
2015-11-16 16:30:19 +00:00
sin d24584466c Revert "enmasse: For the special case of 2 args, do not distinguish between dirs and files"
This reverts commit a564a67c4ea70e90a4dc543814458e4903869d3e.

Not as trivial as I thought.  This breaks cp when used as:
cp -r /foo/bar /baz

The old code expands this to:
cp -r /foo/bar /baz/bar
2015-11-13 14:31:34 +00:00
sin 4c1f9ecdd2 Align end of comment 2015-11-13 14:24:09 +00:00
sin 996f992ac6 enmasse: For the special case of 2 args, do not distinguish between dirs and files
This produces consistent error messages when moving or copying a file or dir to
2015-11-13 14:21:07 +00:00
sin 2f4ab52739 mv: Ensure stat is initialized when we prune a tree
This can happen if you move a file from one filesystem to another.
rename(2) will fail and we will fall through to a manual cp + rm.
Initiate the rm through recurse() like we do for rm(1).

Thanks to Heiko for reporting this.
2015-11-13 14:21:07 +00:00
sin debf9d2275 Include sys/time.h for timeval structure
Without this, it breaks on NetBSD.
2015-11-13 11:32:11 +00:00
sin eaf3f4811b Use -D_FILE_OFFSET_BITS=64 by default
Maybe people seem to stumble upon this problem on 32-bit glibc based
systems.  Just set it by default.
2015-11-13 11:01:00 +00:00
sin a1c04e932b Sync cron with latest scron 2015-11-06 11:01:00 +00:00
sin b553349251 env: Check unsetenv() return value
./env -u "" foo and ./env -u "A=123" foo should both fail.
2015-11-06 10:52:49 +00:00
sin 1b32732887 env: environ can never be NULL so don't check for it 2015-11-06 10:52:49 +00:00
sin 75b848bb09 Mark grep and tftp as audited
Gone through the code quite a few times.  Been using them frequently
without problems.
2015-11-06 10:52:49 +00:00
sin f76dee45e5 Update TODO regarding imported programs
We haven't imported anything in a while and there are no plans to
import anything else.
2015-11-06 10:52:49 +00:00
Greg Reagle c0a63db7f2 od: document skip (-j) option 2015-11-06 10:18:56 +00:00
Michael Forney 7604f99003 tail: Fix operation with +n argument
POSIX says

  Copying shall begin at the point in the file indicated by the -c
  number or -n number options.

  The origin for counting shall be 1; that is, -c +1 represents the
  first byte of the file, -c -1 the last.

  The origin for counting shall be 1; that is, -n +1 represents the
  first line of the file, -n -1 the last.
2015-11-02 21:09:36 +00:00
Quentin Rameau 4859f4c825 ls: fix time handling by augmenting time resolution
ls was using (old) UNIX spec (struct stat).st_[acm]time.
It now uses POSIX (struct stat).(struct timespec st_[acm]tim) which
gives time resolution in seconds and nanoseconds.
If two files have the same time in seconds, we extend the comparision to
2015-11-01 17:29:39 +00:00