aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/einfo.h34
-rw-r--r--src/libeinfo.c96
-rw-r--r--src/librc-depend.c4
-rw-r--r--src/rc.c18
4 files changed, 79 insertions, 73 deletions
diff --git a/src/einfo.h b/src/einfo.h
index 7ab52afd..d274eefc 100644
--- a/src/einfo.h
+++ b/src/einfo.h
@@ -44,9 +44,13 @@ typedef enum
/* We work out if the terminal supports colour or not through the use
of the TERM env var. We cache the reslt in a static bool, so
- subsequent calls are very fast. */
-/* The n suffix means that a newline is NOT appended to the string
- The v prefix means that we only print it when RC_VERBOSE=yes */
+ subsequent calls are very fast.
+ The n suffix means that a newline is NOT appended to the string
+ The v suffix means that we only print it when RC_VERBOSE=yes
+ NOTE We use the v suffix here so we can add veinfo for va_list
+ in the future, but veinfo is used by shell scripts as they don't
+ have the va_list concept
+*/
bool colour_terminal (void);
int einfon (const char *fmt, ...) EINFO_PRINTF (1, 2);
int ewarnn (const char *fmt, ...) EINFO_PRINTF (1, 2);
@@ -63,18 +67,18 @@ void ebracket (int col, einfo_color_t color, const char *msg);
void eindent (void);
void eoutdent (void);
-int veinfon (const char *fmt, ...) EINFO_PRINTF (1, 2);
-int vewarnn (const char *fmt, ...) EINFO_PRINTF (1, 2);
-int vebeginn (const char *fmt, ...) EINFO_PRINTF (1, 2);
-int veendn (int retval, const char *fmt, ...) EINFO_PRINTF (2, 3);
-int vewendn (int retval, const char *fmt, ...) EINFO_PRINTF (2, 3);
-int veinfo (const char *fmt, ...) EINFO_PRINTF (1, 2);
-int vewarn (const char *fmt, ...) EINFO_PRINTF (1, 2);
-int vebegin (const char *fmt, ...) EINFO_PRINTF (1, 2);
-int veend (int retval, const char *fmt, ...) EINFO_PRINTF (2, 3);
-int vewend (int retval, const char *fmt, ...) EINFO_PRINTF (2, 3);
-void veindent (void);
-void veoutdent (void);
+int einfovn (const char *fmt, ...) EINFO_PRINTF (1, 2);
+int ewarnvn (const char *fmt, ...) EINFO_PRINTF (1, 2);
+int ebeginvn (const char *fmt, ...) EINFO_PRINTF (1, 2);
+int eendvn (int retval, const char *fmt, ...) EINFO_PRINTF (2, 3);
+int ewendvn (int retval, const char *fmt, ...) EINFO_PRINTF (2, 3);
+int einfov (const char *fmt, ...) EINFO_PRINTF (1, 2);
+int ewarnv (const char *fmt, ...) EINFO_PRINTF (1, 2);
+int ebeginv (const char *fmt, ...) EINFO_PRINTF (1, 2);
+int eendv (int retval, const char *fmt, ...) EINFO_PRINTF (2, 3);
+int ewendv (int retval, const char *fmt, ...) EINFO_PRINTF (2, 3);
+void eindentv (void);
+void eoutdentv (void);
/* If RC_EBUFFER is set, then we buffer all the above commands.
As such, we need to flush the buffer when done. */
diff --git a/src/libeinfo.c b/src/libeinfo.c
index b756d119..31c588f1 100644
--- a/src/libeinfo.c
+++ b/src/libeinfo.c
@@ -197,15 +197,15 @@ static const func_t funcmap[] = {
{ "ewend", NULL, &ewend, NULL },
{ "eindent", NULL, NULL, &eindent },
{ "eoutdent", NULL, NULL, &eoutdent },
- { "veinfon", &veinfon, NULL, NULL },
- { "vewarnn", &vewarnn, NULL, NULL },
- { "veinfo", &veinfo, NULL, NULL },
- { "vewarn", &vewarn, NULL, NULL },
- { "vebegin", &vebegin, NULL, NULL },
- { "veend", NULL, &veend, NULL },
- { "vewend", NULL, &vewend, NULL },
- { "veindent" ,NULL, NULL, &veindent },
- { "veoutdent", NULL, NULL, &veoutdent },
+ { "einfovn", &einfovn, NULL, NULL },
+ { "ewarnvn", &ewarnvn, NULL, NULL },
+ { "einfov", &einfov, NULL, NULL },
+ { "ewarnv", &ewarnv, NULL, NULL },
+ { "ebeginv", &ebeginv, NULL, NULL },
+ { "eendv", NULL, &eendv, NULL },
+ { "ewendv", NULL, &ewendv, NULL },
+ { "eindentv" ,NULL, NULL, &eindentv },
+ { "eoutdentv", NULL, NULL, &eoutdentv },
{ NULL, NULL, NULL, NULL },
};
@@ -391,7 +391,7 @@ static int _eindent (FILE *stream)
return (fprintf (stream, "%s", indent));
}
-#define VEINFON(_file, _colour) \
+#define EINFOVN(_file, _colour) \
if (colour_terminal ()) \
fprintf (_file, " " _colour "*" EINFO_NORMAL " "); \
else \
@@ -406,27 +406,27 @@ retval += _eindent (_file); \
if (colour_terminal ()) \
fprintf (_file, "\033[K");
-static int _veinfon (const char *fmt, va_list ap)
+static int _einfovn (const char *fmt, va_list ap)
{
int retval = 0;
- VEINFON (stdout, EINFO_GOOD);
+ EINFOVN (stdout, EINFO_GOOD);
return (retval);
}
-static int _vewarnn (const char *fmt, va_list ap)
+static int _ewarnvn (const char *fmt, va_list ap)
{
int retval = 0;
- VEINFON (stdout, EINFO_WARN);
+ EINFOVN (stdout, EINFO_WARN);
return (retval);
}
-static int _veerrorn (const char *fmt, va_list ap)
+static int _eerrorvn (const char *fmt, va_list ap)
{
int retval = 0;
- VEINFON (stderr, EINFO_BAD);
+ EINFOVN (stderr, EINFO_BAD);
return (retval);
}
@@ -440,7 +440,7 @@ int einfon (const char *fmt, ...)
va_start (ap, fmt);
if (! (retval = ebuffer ("einfon", 0, fmt, ap)))
- retval = _veinfon (fmt, ap);
+ retval = _einfovn (fmt, ap);
va_end (ap);
return (retval);
@@ -456,7 +456,7 @@ int ewarnn (const char *fmt, ...)
va_start (ap, fmt);
if (! (retval = ebuffer ("ewarnn", 0, fmt, ap)))
- retval = _vewarnn (fmt, ap);
+ retval = _ewarnvn (fmt, ap);
va_end (ap);
return (retval);
@@ -469,7 +469,7 @@ int eerrorn (const char *fmt, ...)
va_start (ap, fmt);
if (! (retval = ebuffer ("eerrorn", 0, fmt, ap)))
- retval = _veerrorn (fmt, ap);
+ retval = _eerrorvn (fmt, ap);
va_end (ap);
return (retval);
@@ -486,7 +486,7 @@ int einfo (const char *fmt, ...)
va_start (ap, fmt);
if (! (retval = ebuffer ("einfo", 0, fmt, ap)))
{
- retval = _veinfon (fmt, ap);
+ retval = _einfovn (fmt, ap);
retval += printf ("\n");
}
va_end (ap);
@@ -506,7 +506,7 @@ int ewarn (const char *fmt, ...)
elog (LOG_WARNING, fmt, ap);
if (! (retval = ebuffer ("ewarn", 0, fmt, ap)))
{
- retval = _vewarnn (fmt, ap);
+ retval = _ewarnvn (fmt, ap);
retval += printf ("\n");
}
va_end (ap);
@@ -523,7 +523,7 @@ void ewarnx (const char *fmt, ...)
{
va_start (ap, fmt);
elog (LOG_WARNING, fmt, ap);
- retval = _vewarnn (fmt, ap);
+ retval = _ewarnvn (fmt, ap);
va_end (ap);
retval += printf ("\n");
}
@@ -540,7 +540,7 @@ int eerror (const char *fmt, ...)
va_start (ap, fmt);
elog (LOG_ERR, fmt, ap);
- retval = _veerrorn (fmt, ap);
+ retval = _eerrorvn (fmt, ap);
va_end (ap);
retval += fprintf (stderr, "\n");
@@ -555,7 +555,7 @@ void eerrorx (const char *fmt, ...)
{
va_start (ap, fmt);
elog (LOG_ERR, fmt, ap);
- _veerrorn (fmt, ap);
+ _eerrorvn (fmt, ap);
va_end (ap);
printf ("\n");
}
@@ -577,7 +577,7 @@ int ebegin (const char *fmt, ...)
return (retval);
}
- retval = _veinfon (fmt, ap);
+ retval = _einfovn (fmt, ap);
va_end (ap);
retval += printf (" ...");
if (colour_terminal ())
@@ -655,12 +655,12 @@ static int _do_eend (const char *cmd, int retval, const char *fmt, va_list ap)
va_copy (apc, ap);
if (strcmp (cmd, "ewend") == 0)
{
- col = _vewarnn (fmt, apc);
+ col = _ewarnvn (fmt, apc);
fp = stdout;
}
else
{
- col = _veerrorn (fmt, apc);
+ col = _eerrorvn (fmt, apc);
fp = stderr;
}
va_end (apc);
@@ -758,7 +758,7 @@ void eoutdent (void)
}
}
-int veinfon (const char *fmt, ...)
+int einfovn (const char *fmt, ...)
{
int retval;
va_list ap;
@@ -769,14 +769,14 @@ int veinfon (const char *fmt, ...)
return (0);
va_start (ap, fmt);
- if (! (retval = ebuffer ("veinfon", 0, fmt, ap)))
- retval = _veinfon (fmt, ap);
+ if (! (retval = ebuffer ("einfovn", 0, fmt, ap)))
+ retval = _einfovn (fmt, ap);
va_end (ap);
return (retval);
}
-int vewarnn (const char *fmt, ...)
+int ewarnvn (const char *fmt, ...)
{
int retval;
va_list ap;
@@ -787,14 +787,14 @@ int vewarnn (const char *fmt, ...)
return (0);
va_start (ap, fmt);
- if (! (retval = ebuffer ("vewarnn", 0, fmt, ap)))
- retval = _vewarnn (fmt, ap);
+ if (! (retval = ebuffer ("ewarnvn", 0, fmt, ap)))
+ retval = _ewarnvn (fmt, ap);
va_end (ap);
return (retval);
}
-int veinfo (const char *fmt, ...)
+int einfov (const char *fmt, ...)
{
int retval;
va_list ap;
@@ -805,9 +805,9 @@ int veinfo (const char *fmt, ...)
return (0);
va_start (ap, fmt);
- if (! (retval = ebuffer ("veinfo", 0, fmt, ap)))
+ if (! (retval = ebuffer ("einfov", 0, fmt, ap)))
{
- retval = _veinfon (fmt, ap);
+ retval = _einfovn (fmt, ap);
retval += printf ("\n");
}
va_end (ap);
@@ -815,7 +815,7 @@ int veinfo (const char *fmt, ...)
return (retval);
}
-int vewarn (const char *fmt, ...)
+int ewarnv (const char *fmt, ...)
{
int retval;
va_list ap;
@@ -826,9 +826,9 @@ int vewarn (const char *fmt, ...)
return (0);
va_start (ap, fmt);
- if (! (retval = ebuffer ("vewarn", 0, fmt, ap)))
+ if (! (retval = ebuffer ("ewarnv", 0, fmt, ap)))
{
- retval = _vewarnn (fmt, ap);
+ retval = _ewarnvn (fmt, ap);
retval += printf ("\n");
}
va_end (ap);
@@ -837,7 +837,7 @@ int vewarn (const char *fmt, ...)
return (retval);
}
-int vebegin (const char *fmt, ...)
+int ebeginv (const char *fmt, ...)
{
int retval;
va_list ap;
@@ -848,9 +848,9 @@ int vebegin (const char *fmt, ...)
return (0);
va_start (ap, fmt);
- if (! (retval = ebuffer ("vewarn", 0, fmt, ap)))
+ if (! (retval = ebuffer ("ebeginv", 0, fmt, ap)))
{
- retval = _veinfon (fmt, ap);
+ retval = _einfovn (fmt, ap);
retval += printf (" ...");
if (colour_terminal ())
retval += printf ("\n");
@@ -860,39 +860,39 @@ int vebegin (const char *fmt, ...)
return (retval);
}
-int veend (int retval, const char *fmt, ...)
+int eendv (int retval, const char *fmt, ...)
{
va_list ap;
CHECK_VERBOSE;
va_start (ap, fmt);
- _do_eend ("veend", retval, fmt, ap);
+ _do_eend ("eendv", retval, fmt, ap);
va_end (ap);
return (retval);
}
-int vewend (int retval, const char *fmt, ...)
+int ewendv (int retval, const char *fmt, ...)
{
va_list ap;
CHECK_VERBOSE;
va_start (ap, fmt);
- _do_eend ("vewend", retval, fmt, ap);
+ _do_eend ("ewendv", retval, fmt, ap);
va_end (ap);
return (retval);
}
-void veindent (void)
+void eindentv (void)
{
if (is_env ("RC_VERBOSE", "yes"))
eindent ();
}
-void veoutdent (void)
+void eoutdentv (void)
{
if (is_env ("RC_VERBOSE", "yes"))
eoutdent ();
diff --git a/src/librc-depend.c b/src/librc-depend.c
index 93cc1f5c..f9b9bcd7 100644
--- a/src/librc-depend.c
+++ b/src/librc-depend.c
@@ -520,8 +520,10 @@ static bool is_newer_than (const char *file, const char *target)
return (false);
mtime = buf.st_mtime;
+ /* Of course we are newever than targets that don't exist
+ Such as broken symlinks */
if (stat (target, &buf) != 0)
- return (false);
+ return (true);
if (mtime < buf.st_mtime)
return (false);
diff --git a/src/rc.c b/src/rc.c
index ac41e91d..5bfb3cfe 100644
--- a/src/rc.c
+++ b/src/rc.c
@@ -184,27 +184,27 @@ static int do_e (int argc, char **argv)
else if (strcmp (applet, "ewend") == 0)
ewend (retval, fmt, message);
else if (strcmp (applet, "veinfo") == 0)
- veinfo (fmt, message);
+ einfov (fmt, message);
else if (strcmp (applet, "veinfon") == 0)
- veinfon (fmt, message);
+ einfovn (fmt, message);
else if (strcmp (applet, "vewarn") == 0)
- vewarn (fmt, message);
+ ewarnv (fmt, message);
else if (strcmp (applet, "vewarnn") == 0)
- vewarnn (fmt, message);
+ ewarnvn (fmt, message);
else if (strcmp (applet, "vebegin") == 0)
- vebegin (fmt, message);
+ ebeginv (fmt, message);
else if (strcmp (applet, "veend") == 0)
- veend (retval, fmt, message);
+ eendv (retval, fmt, message);
else if (strcmp (applet, "vewend") == 0)
- vewend (retval, fmt, message);
+ ewendv (retval, fmt, message);
else if (strcmp (applet, "eindent") == 0)
eindent ();
else if (strcmp (applet, "eoutdent") == 0)
eoutdent ();
else if (strcmp (applet, "veindent") == 0)
- veindent ();
+ eindentv ();
else if (strcmp (applet, "veoutdent") == 0)
- veoutdent ();
+ eoutdentv ();
else if (strcmp (applet, "eflush") == 0)
eflush ();
else