Added clause for no color
This commit is contained in:
parent
4513387026
commit
57517f914a
|
@ -30,6 +30,7 @@ libpipecolors.so
|
||||||
libpipecolors.la
|
libpipecolors.la
|
||||||
libpipecolors.lo
|
libpipecolors.lo
|
||||||
libpipecolors.pc
|
libpipecolors.pc
|
||||||
|
tests/
|
||||||
test/
|
test/
|
||||||
timestamp
|
timestamp
|
||||||
# Ignore backup files
|
# Ignore backup files
|
||||||
|
|
13
Makefile.am
13
Makefile.am
|
@ -31,3 +31,16 @@ MAINTAINERCLEANFILES = \
|
||||||
-rf m4 \
|
-rf m4 \
|
||||||
configure \
|
configure \
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
|
||||||
|
install-man: install-man3 install-man7 install-man-gzip
|
||||||
|
uninstall-man: uninstall-man3 uninstall-man7 uninstall-man-gzip
|
||||||
|
|
||||||
|
install-man-gzip:
|
||||||
|
test -f $(mandir)/man3/pcprintf.3 && gzip -qf /usr/share/man/man3/pcprintf.3
|
||||||
|
test -f $(mandir)/man7/libpipecolors.7 && gzip -qf /usr/share/man/man7/libpipecolors.7
|
||||||
|
test -f $(mandir)/man3/pcprintf.3.gz && ln -sf /usr/share/man/man3/pcprintf.3.gz /usr/share/man/man3/pcsprintf.3.gz
|
||||||
|
|
||||||
|
uninstall-man-gzip:
|
||||||
|
test -f $(mandir)/man3/pcprintf.3.gz && rm -f /usr/share/man/man3/pcprintf.3.gz
|
||||||
|
test -h $(mandir)/man3/pcsprintf.3.gz && rm -f /usr/share/man/man3/pcsprintf.3.gz
|
||||||
|
test -f $(mandir)/man7/libpipecolors.7.gz && rm -f /usr/share/man/man7/libpipecolors.7.gz
|
||||||
|
|
15
configure.ac
15
configure.ac
|
@ -34,7 +34,6 @@ AM_SILENT_RULES
|
||||||
AC_GNU_SOURCE
|
AC_GNU_SOURCE
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
AC_PROG_MAKE_SET
|
|
||||||
AC_PROG_CXXCPP
|
AC_PROG_CXXCPP
|
||||||
AM_PROG_AR
|
AM_PROG_AR
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
|
@ -43,8 +42,7 @@ AC_PROG_LN_S
|
||||||
LT_INIT
|
LT_INIT
|
||||||
AC_LANG_CPLUSPLUS
|
AC_LANG_CPLUSPLUS
|
||||||
AC_PREFIX_DEFAULT([/usr])
|
AC_PREFIX_DEFAULT([/usr])
|
||||||
#AC_CHECK_LIB([pipecolors], [cprintf])
|
|
||||||
AC_CHECK_LIB([boost_regex], [main])
|
|
||||||
# Checks for programs.
|
# Checks for programs.
|
||||||
|
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
@ -55,9 +53,6 @@ gcc_major_vers=`echo ${gcc_full_vers} | cut -f1 -d.`
|
||||||
gcc_minor_vers=`echo ${gcc_full_vers} | cut -f2 -d.`
|
gcc_minor_vers=`echo ${gcc_full_vers} | cut -f2 -d.`
|
||||||
gcc_micro_vers=`echo ${gcc_full_vers} | cut -f3 -d.`
|
gcc_micro_vers=`echo ${gcc_full_vers} | cut -f3 -d.`
|
||||||
|
|
||||||
# Checks for functions
|
|
||||||
|
|
||||||
#AC_CHECK_CXX_ARGUMENT([-std=c++11], [], [AC_MSG_ERROR([C++11 support is required.])])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([${CXX-c++} version])
|
AC_MSG_CHECKING([${CXX-c++} version])
|
||||||
if test "${gcc_minor_vers}" -lt 9; then
|
if test "${gcc_minor_vers}" -lt 9; then
|
||||||
|
@ -65,13 +60,11 @@ if test "${gcc_minor_vers}" -lt 9; then
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([${gcc_full_vers} ... acceptable])
|
AC_MSG_RESULT([${gcc_full_vers} ... acceptable])
|
||||||
fi
|
fi
|
||||||
#AC_HEADER_STDC
|
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS([stdarg.h stdlib.h unistd.h string iostream map],[],[AC_MSG_ERROR([We couldn't find one or more of the required headers.])])
|
||||||
# Checks for libraries.
|
|
||||||
AC_CHECK_HEADERS([stdarg.h stdlib.h unistd.h string iostream map],[],[AC_MSG_ERROR([We couldn't find some of the headers.])])
|
|
||||||
AC_CHECK_HEADER([boost/regex.hpp],[],[AC_MSG_ERROR([Please install the libboost-regex header library.])])
|
AC_CHECK_HEADER([boost/regex.hpp],[],[AC_MSG_ERROR([Please install the libboost-regex header library.])])
|
||||||
AC_CHECK_FUNCS([vprintf vsprintf vasprintf printf])
|
AC_CHECK_LIB([boost_regex], [main])
|
||||||
|
AC_CHECK_FUNCS([vasprintf])
|
||||||
AC_CHECK_TYPE([size_t])
|
AC_CHECK_TYPE([size_t])
|
||||||
|
|
||||||
AC_CHECK_TYPES([std::string], [], [], [[
|
AC_CHECK_TYPES([std::string], [], [], [[
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <pipecolors.h>
|
|
||||||
|
|
||||||
main() {
|
|
||||||
int a,b;
|
|
||||||
const char* str = "|0101|0202|0303|0404|0505|0606|0707|0808|0909|1010|1111|1212|1313|1414|1515|07";
|
|
||||||
const char* name = "|01P|02i|03p|04e|05c|06ol|07o|08r|09s |10l|11i|12b|13r|14a|15r|14y |130|12.|111|07";
|
|
||||||
|
|
||||||
a = pcprintf("\n%s\n\n", name);
|
|
||||||
b = pcprintf("%s\n", str);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include <iostream>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <pipecolors.h>
|
|
||||||
|
|
||||||
using namespace pipecolors;
|
|
||||||
|
|
||||||
int main(void) {
|
|
||||||
|
|
||||||
const char* str = "|0101|0202|0303|0404|0505|0606|0707|0808|0909|1010|1111|1212|1313|1414|1515|07";
|
|
||||||
const char* name = "|01P|02i|03p|04e|05c|06ol|07o|08r|09s |10l|11i|12b|13r|14a|15r|14y |130|12.|111|07";
|
|
||||||
|
|
||||||
pcprintf("\n%s\n\n", name);
|
|
||||||
pcprintf("%s\n", str);
|
|
||||||
int size = pcprintf("%s", str);
|
|
||||||
std::cout << std::endl << "Size : " << size << std::endl;
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
|
@ -26,8 +26,6 @@
|
||||||
#include <boost/regex.hpp>
|
#include <boost/regex.hpp>
|
||||||
#include "pipecolors.h"
|
#include "pipecolors.h"
|
||||||
|
|
||||||
using namespace boost;
|
|
||||||
|
|
||||||
namespace pipecolors {
|
namespace pipecolors {
|
||||||
|
|
||||||
std::map<std::string, std::string> colors;
|
std::map<std::string, std::string> colors;
|
||||||
|
@ -67,12 +65,50 @@ namespace pipecolors {
|
||||||
return isatty(fileno(stdout));
|
return isatty(fileno(stdout));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string replace_colors( std::string s) {
|
||||||
|
|
||||||
|
using namespace boost;
|
||||||
|
|
||||||
|
std::size_t index;
|
||||||
|
|
||||||
|
regex re( "(\\|\\d\\d)" );
|
||||||
|
match_results<std::string::const_iterator> match;
|
||||||
|
match_flag_type flags = boost::match_default;
|
||||||
|
|
||||||
|
std::string::const_iterator start, end;
|
||||||
|
start = s.begin();
|
||||||
|
end = s.end();
|
||||||
|
|
||||||
|
colors = getColors();
|
||||||
|
|
||||||
|
while(regex_search(start, end, match, re, flags))
|
||||||
|
{
|
||||||
|
if(colors[match[0]].empty()) continue;
|
||||||
|
|
||||||
|
|
||||||
|
//while ((index = s.find(match[0])) != std::string::npos)
|
||||||
|
//{
|
||||||
|
if(has_colors()) {
|
||||||
|
s.replace(s.find(match[0]), match[0].length(), colors[match[0]]);
|
||||||
|
} else {
|
||||||
|
s.erase(s.find(match[0]), match[0].length());
|
||||||
|
}
|
||||||
|
//}
|
||||||
|
|
||||||
|
start = match[0].second;
|
||||||
|
// update flags:
|
||||||
|
flags |= boost::match_prev_avail;
|
||||||
|
flags |= boost::match_not_bob;
|
||||||
|
}
|
||||||
|
return(s);
|
||||||
|
}
|
||||||
|
|
||||||
int pcprintf( const char * fmt, ...)
|
int pcprintf( const char * fmt, ...)
|
||||||
{
|
{
|
||||||
char * buffer;
|
char * buffer;
|
||||||
va_list args;
|
va_list args;
|
||||||
int ret;
|
int ret;
|
||||||
colors = getColors();
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
ret = vasprintf(&buffer, fmt, args);
|
ret = vasprintf(&buffer, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
@ -81,32 +117,12 @@ namespace pipecolors {
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string s(buffer);
|
||||||
std::string s(buffer), result(buffer);
|
|
||||||
free(buffer);
|
free(buffer);
|
||||||
regex re( "(\\|\\d\\d)" );
|
|
||||||
std::size_t index;
|
|
||||||
std::string::const_iterator start, end;
|
|
||||||
start = s.begin();
|
|
||||||
end = s.end();
|
|
||||||
match_results<std::string::const_iterator> match;
|
|
||||||
match_flag_type flags = boost::match_default;
|
|
||||||
while(regex_search(start, end, match, re, flags))
|
|
||||||
{
|
|
||||||
while ((index = s.find(match[0])) != std::string::npos)
|
|
||||||
{
|
|
||||||
s.replace(index, match[0].length(), colors[match[0]]);
|
|
||||||
}
|
|
||||||
start = match[0].second;
|
|
||||||
// update flags:
|
|
||||||
flags |= boost::match_prev_avail;
|
|
||||||
flags |= boost::match_not_bob;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::cout << s;
|
std::cout << replace_colors(s);
|
||||||
|
|
||||||
return(ret);
|
return(ret);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
1087
pcprintf.3
1087
pcprintf.3
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue