This is an automated email from the git hooks/post-receive script. plessy pushed a commit to branch debian/unstable in repository libgtextutils.
commit adc7d0a3b8ec29a965ffb544b5dcd3fe6bd3bb1f Author: A. Gordon <[email protected]> Date: Wed Feb 25 19:28:40 2009 -0500 Added source files and pkgconfig. --- Makefile.am | 3 +++ configure.ac | 40 +++++++++++++++++++++++++++++++++++ gtextutils-0.1.pc.in | 10 +++++++++ src/Makefile.am | 1 + src/gtextutils/Makefile.am | 26 +++++++++++++++++++++++ src/gtextutils/print_utils.h | 30 ++++++++++++++++++++++++++ src/gtextutils/stream_wrapper.cpp | 42 +++++++++++++++++++++++++++++++++++++ src/gtextutils/stream_wrapper.h | 36 +++++++++++++++++++++++++++++++ src/gtextutils/text_line_reader.cpp | 28 +++++++++++++++++++++++++ src/gtextutils/text_line_reader.h | 31 +++++++++++++++++++++++++++ 10 files changed, 247 insertions(+) diff --git a/Makefile.am b/Makefile.am index 240589b..41047b2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -10,3 +10,6 @@ EXTRA_DIST = reconf configure SUBDIRS = m4 src doc + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = gtextutils-0.1.pc diff --git a/configure.ac b/configure.ac index 6a32091..89b5a22 100644 --- a/configure.ac +++ b/configure.ac @@ -22,12 +22,52 @@ LF_HOST_TYPE LF_SET_WARNINGS AC_PROG_RANLIB +AC_DEFINE([CXX_HAS_BUGGY_FOR_LOOPS], [], [Description]) +AC_DEFINE([CXX_HAS_NO_BOOL], [], [Description]) +AC_DEFINE([NDEBUG], [], [Description]) +AC_DEFINE([YOUR_OS], [], [Description]) + +dnl --enable-wall +EXTRA_CHECKS="-Wall -Wextra -Wformat-nonliteral -Wformat-security -Wswitch-default -Wswitch-enum -Wunused-parameter -Wfloat-equal -Werror" +AC_ARG_ENABLE(wall, +[ --enable-wall Enable many common GCC warnings (-Wall,-Wextra, -Werror etc., default enabled)], +[case "${enableval}" in + yes) wall=true ;; + no) wall=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-wall) ;; +esac],[wall=true]) +if test "$wall" = "true" +then + CFLAGS="${CFLAGS} ${EXTRA_CHECKS}" + CXXFLAGS="${CXXFLAGS} ${EXTRA_CHECKS}" +fi + +dnl --enable-debug +AC_ARG_ENABLE(debug, +[ --enable-debug Enable debug mode (default enabled)], +[case "${enableval}" in + yes) debug=true ;; + no) debug=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; +esac],[debug=true]) +if test "$debug" = "true" +then + CFLAGS="${CFLAGS} -DDEBUG -g -O1" + CXXFLAGS="${CFLAGS} -DDEBUG -g -O1" +else + CFLAGS="${CFLAGS} -O3" + CXXFLAGS="${CFLAGS} -O3" +fi + + AC_CONFIG_FILES([ Makefile README doc/Makefile m4/Makefile src/Makefile + src/gtextutils/Makefile + gtextutils-0.1.pc ]) AC_OUTPUT diff --git a/gtextutils-0.1.pc.in b/gtextutils-0.1.pc.in new file mode 100644 index 0000000..f85474f --- /dev/null +++ b/gtextutils-0.1.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: gtextutils +Description: Gordon's text-utility classes +Version: @VERSION@ +Libs: -L${libdir} -lgtextutils-0.1 +Cflags: -I${includedir}/gtextutils-1.0 diff --git a/src/Makefile.am b/src/Makefile.am index a1542a4..c2a8511 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,3 +8,4 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +SUBDIRS = gtextutils diff --git a/src/gtextutils/Makefile.am b/src/gtextutils/Makefile.am new file mode 100644 index 0000000..5491f1d --- /dev/null +++ b/src/gtextutils/Makefile.am @@ -0,0 +1,26 @@ +# Copyright (C) 2008 Assaf Gordon <[email protected]> +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + +lib_LIBRARIES = libgtextutils.a + +libgtextutils_a_SOURCES = stream_wrapper.cpp stream_wrapper.h \ + text_line_reader.cpp text_line_reader.h \ + print_utils.h + +libgtextutils_a_includedir = $(includedir)/gtextutils-0.1/gtextutils + +libgtextutils_a_include_HEADERS = print_utils.h \ + text_line_reader.h \ + stream_wrapper.h + +#EXAMPLE_RELEASE=0:0:1 +#EXAMPLE_LIBRARY_VERSION=0:0:0 +#libgtextutils_a_LDFLAGS= -version-info $(EXAMPLE_LIBRARY_VERSION) -release $(EXAMPLE_RELEASE) diff --git a/src/gtextutils/print_utils.h b/src/gtextutils/print_utils.h new file mode 100644 index 0000000..ece706d --- /dev/null +++ b/src/gtextutils/print_utils.h @@ -0,0 +1,30 @@ +#ifndef __PRINT_UTILS_H__ +#define __PRINT_UTILS_H__ + +#include <string> +#include <sstream> + +template<class COLLECTION> +inline +std::string +join_collection(const COLLECTION &col, const std::string& delimiter="\t") +{ + std::ostringstream os; + bool first = true ; + + typename COLLECTION::const_iterator it = col.begin(); + + while ( it != col.end() ) { + if ( first ) + first = false; + else + os << delimiter ; + os << *it ; + it++ ; + } + + return os.str(); +} + +#endif + diff --git a/src/gtextutils/stream_wrapper.cpp b/src/gtextutils/stream_wrapper.cpp new file mode 100755 index 0000000..7a2de3f --- /dev/null +++ b/src/gtextutils/stream_wrapper.cpp @@ -0,0 +1,42 @@ +#include <string> +#include <fstream> +#include <iostream> +#include <ios> + +#include <err.h> + +#include "stream_wrapper.h" + + +InputStreamWrapper::InputStreamWrapper(const std::string & filename) : + use_stdin(filename.length()==0) +{ + if (!use_stdin) { + input_file.open(filename.c_str()) ; + if (!input_file) + err(1,"Failed to open input file (%s)", + filename.c_str()) ; + } +}; + +OutputStreamWrapper::OutputStreamWrapper(const std::string & filename, bool _compressed ) : + use_stdout(filename.length()==0), compressed(_compressed) +{ + if (compressed) { + /* compressed output stream: + fork and run GZIP */ + + } + else { + /* normal (not-compressed) output file: + just open the file (if needed) */ + if (!use_stdout) { + output_file.open(filename.c_str()) ; + if (!output_file) + err(1,"Failed to create output file (%s)", + filename.c_str()) ; + } + } +}; + + diff --git a/src/gtextutils/stream_wrapper.h b/src/gtextutils/stream_wrapper.h new file mode 100755 index 0000000..bd653f8 --- /dev/null +++ b/src/gtextutils/stream_wrapper.h @@ -0,0 +1,36 @@ +#ifndef __STREAM_WRAPPER__ +#define __STREAM_WRAPPER__ + +#include <fstream> + +class InputStreamWrapper +{ +private: + std::ifstream input_file ; + bool use_stdin; + +public: + InputStreamWrapper(const std::string & filename = "") ; + + std::istream& stream() { return (use_stdin)?std::cin:input_file; } ; + + operator std::istream&() { return stream() ; } +}; + +class OutputStreamWrapper +{ +private: + std::ofstream output_file ; + bool use_stdout; + bool compressed ; + +public: + OutputStreamWrapper(const std::string & filename = "", bool _compressed = false) ; + + std::ostream& stream() { return (use_stdout)?std::cout:output_file; } ; + + operator std::ostream&() { return stream() ; } +}; + +#endif + diff --git a/src/gtextutils/text_line_reader.cpp b/src/gtextutils/text_line_reader.cpp new file mode 100644 index 0000000..e3331ee --- /dev/null +++ b/src/gtextutils/text_line_reader.cpp @@ -0,0 +1,28 @@ +#include <istream> +#include <sstream> + +#include "text_line_reader.h" + +using namespace std; + + +TextLineReader::TextLineReader(istream& _input_stream) : + input_stream(_input_stream), current_line_number(0) +{ +} + +bool TextLineReader::next_line() +{ + current_line_number++; + getline(input_stream, current_line_string ) ; + + current_line_stream.str( current_line_string ) ; + current_line_stream.seekg(0, ios_base::beg ); + current_line_stream.clear(); + + if (input_stream.eof()) + return false; + + return input_stream ; +} + diff --git a/src/gtextutils/text_line_reader.h b/src/gtextutils/text_line_reader.h new file mode 100644 index 0000000..239ca54 --- /dev/null +++ b/src/gtextutils/text_line_reader.h @@ -0,0 +1,31 @@ +#ifndef __TEXT_FILE_READER__ +#define __TEXT_FILE_READER__ + +#include <string> +#include <istream> +#include <sstream> + +class TextLineReader +{ +private: + std::istream& input_stream ; + size_t current_line_number; + std::string current_line_string ; + std::istringstream current_line_stream ; + + TextLineReader(const TextLineReader&); + TextLineReader& operator=(const TextLineReader&); + +public: + TextLineReader(std::istream& _input_stream) ; + + size_t line_number() const { return current_line_number ; } + + bool next_line() ; + + const std::string& line_string() const { return current_line_string; } + std::istringstream& line_stream() { return current_line_stream; } +}; + +#endif + -- Alioth's /git/debian-med/git-commit-notice on /srv/git.debian.org/git/debian-med/libgtextutils.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
