Fix is_older_than a little better, and make is_newer_than correct.

This commit is contained in:
Roy Marples
2008-07-03 13:30:17 +00:00
parent a88a177f99
commit 157db50df7
2 changed files with 18 additions and 11 deletions

View File

@@ -408,7 +408,6 @@ static int do_shell_var(int argc, char **argv)
void run_applets(int argc, char **argv)
{
int i = 2;
bool (*is_than) (const char *, const char *);
char *p;
pid_t pid = 0;
@@ -439,20 +438,24 @@ void run_applets(int argc, char **argv)
/* This test is perverted - historically the baselayout function
* returns 0 on *failure*, which is plain wrong */
if (strcmp(applet, "is_newer_than") == 0 ||
strcmp(applet, "is_older_than") == 0)
{
if (strcmp(applet, "is_older_than") == 0) {
if (argc < 3)
exit (EXIT_FAILURE);
if (strcmp(applet, "is_newer_than") == 0)
is_than = &rc_older_than;
else
is_than = &rc_newer_than;
while (i < argc) {
if (!is_than(argv[1], argv[i++]))
if (!rc_newer_than(argv[1], argv[i++]))
exit(EXIT_SUCCESS);
}
exit(EXIT_FAILURE);
};
/* This tets is correct as it's not present in baselayout */
if (strcmp(applet, "is_newer_than") == 0) {
if (argc < 3)
exit (EXIT_FAILURE);
while (i < argc) {
if (!rc_newer_than(argv[1], argv[i++]))
exit(EXIT_FAILURE);
}
exit(EXIT_SUCCESS);
};
if (applet[0] == 'e' || (applet[0] == 'v' && applet[1] == 'e'))