less: stop dying on bad regexps, quietly pipe data w/o

user interaction if stdout is not a tty.
size optimizations
This commit is contained in:
Denis Vlasenko
2006-12-21 13:24:58 +00:00
parent bf66fbc8e2
commit e865e81d34
4 changed files with 164 additions and 120 deletions

View File

@ -11,13 +11,22 @@
#include "libbb.h"
#include "xregex.h"
void xregcomp(regex_t *preg, const char *regex, int cflags)
char* regcomp_or_errmsg(regex_t *preg, const char *regex, int cflags)
{
int ret = regcomp(preg, regex, cflags);
if (ret) {
int errmsgsz = regerror(ret, preg, NULL, 0);
char *errmsg = xmalloc(errmsgsz);
regerror(ret, preg, errmsg, errmsgsz);
return errmsg;
}
return NULL;
}
void xregcomp(regex_t *preg, const char *regex, int cflags)
{
char *errmsg = regcomp_or_errmsg(preg, regex, cflags);
if (errmsg) {
bb_error_msg_and_die("xregcomp: %s", errmsg);
}
}