mirror of
https://github.com/termux/termux-packages.git
synced 2024-12-12 00:10:52 +00:00
319 lines
10 KiB
Diff
319 lines
10 KiB
Diff
This patch contains the changes in the following unmerged PR:
|
|
https://github.com/tat/mimetic/pull/30
|
|
|
|
diff --git a/mimetic/circular_buffer.h b/mimetic/circular_buffer.h
|
|
index 49ace54..2973216 100644
|
|
--- a/mimetic/circular_buffer.h
|
|
+++ b/mimetic/circular_buffer.h
|
|
@@ -52,23 +52,23 @@ struct circular_buffer
|
|
inline void push_back(const value_type& c)
|
|
{
|
|
m_pItem[m_last] = c;
|
|
- m_last = ++m_last % m_sz;
|
|
+ m_last = (m_last + 1) % m_sz;
|
|
m_count += (m_count == m_sz ? 0 : 1);
|
|
}
|
|
inline void push_front(const value_type& c)
|
|
{
|
|
- m_first = (--m_first + m_sz) % m_sz;
|
|
+ m_first = (m_first - 1 + m_sz) % m_sz;
|
|
m_pItem[m_first] = c;
|
|
m_count += (m_count == m_sz ? 0 : 1);
|
|
}
|
|
inline void pop_front()
|
|
{
|
|
- m_first = ++m_first % m_sz;
|
|
+ m_first = (m_first + 1) % m_sz;
|
|
m_count--;
|
|
}
|
|
inline void pop_back()
|
|
{
|
|
- m_last = (--m_last + m_sz) % m_sz;
|
|
+ m_last = (m_last - 1 + m_sz) % m_sz;
|
|
m_count--;
|
|
}
|
|
inline const value_type& front() const
|
|
diff --git a/mimetic/codec/base64.h b/mimetic/codec/base64.h
|
|
index 254eaed..4d9d838 100644
|
|
--- a/mimetic/codec/base64.h
|
|
+++ b/mimetic/codec/base64.h
|
|
@@ -36,7 +36,7 @@ class Base64
|
|
class Encoder: public buffered_codec, public chainable_codec<Encoder>
|
|
{
|
|
enum { pad_idx = 64 };
|
|
- char_type m_ch[3];
|
|
+ char_type m_ch[3] = { 0 };
|
|
int m_cidx;
|
|
int m_pos, m_maxlen;
|
|
|
|
diff --git a/mimetic/os/directory.h b/mimetic/os/directory.h
|
|
index 706fffc..1f0133d 100644
|
|
--- a/mimetic/os/directory.h
|
|
+++ b/mimetic/os/directory.h
|
|
@@ -23,8 +23,14 @@ class Directory
|
|
Type type;
|
|
};
|
|
friend class iterator;
|
|
- struct iterator: public std::iterator<std::forward_iterator_tag, DirEntry>
|
|
+ struct iterator
|
|
{
|
|
+ typedef std::forward_iterator_tag iterator_category;
|
|
+ typedef DirEntry value_type;
|
|
+ typedef std::ptrdiff_t difference_type;
|
|
+ typedef DirEntry* pointer;
|
|
+ typedef DirEntry& reference;
|
|
+
|
|
iterator() // end() it
|
|
: m_dirp(0), m_dirh(0), m_eoi(true)
|
|
{
|
|
diff --git a/mimetic/os/file_iterator.h b/mimetic/os/file_iterator.h
|
|
index 4471485..9e0321c 100644
|
|
--- a/mimetic/os/file_iterator.h
|
|
+++ b/mimetic/os/file_iterator.h
|
|
@@ -13,8 +13,14 @@ namespace mimetic
|
|
{
|
|
struct StdFile;
|
|
|
|
-struct ifile_iterator: public std::iterator<std::input_iterator_tag, char>
|
|
+struct ifile_iterator
|
|
{
|
|
+ typedef std::input_iterator_tag iterator_category;
|
|
+ typedef char value_type;
|
|
+ typedef std::ptrdiff_t difference_type;
|
|
+ typedef char* pointer;
|
|
+ typedef char& reference;
|
|
+
|
|
ifile_iterator();
|
|
ifile_iterator(StdFile* f);
|
|
ifile_iterator(const ifile_iterator&);
|
|
diff --git a/mimetic/parser/itparser.h b/mimetic/parser/itparser.h
|
|
index 6033394..427c7da 100644
|
|
--- a/mimetic/parser/itparser.h
|
|
+++ b/mimetic/parser/itparser.h
|
|
@@ -234,7 +234,7 @@ struct IteratorParser<Iterator, std::input_iterator_tag>
|
|
sValue,
|
|
sIgnoreHeader
|
|
};
|
|
- register int status;
|
|
+ int status;
|
|
int pos;
|
|
char *name, *value;
|
|
size_t nBufSz, vBufSz, nPos, vPos;
|
|
@@ -472,7 +472,7 @@ struct IteratorParser<Iterator, std::input_iterator_tag>
|
|
virtual void copy_until_boundary(ParsingElem pe)
|
|
{
|
|
size_t pos, lines, eomsz = 0;
|
|
- register char c;
|
|
+ char c;
|
|
enum { nlsz = 1 };
|
|
const char *eom = 0;
|
|
|
|
diff --git a/mimetic/rfc822/field.cxx b/mimetic/rfc822/field.cxx
|
|
index 71a1e3f..1f9661f 100644
|
|
--- a/mimetic/rfc822/field.cxx
|
|
+++ b/mimetic/rfc822/field.cxx
|
|
@@ -154,7 +154,8 @@ ostream& Field::write(ostream& os, unsigned int fold) const
|
|
// override to customize
|
|
if(fold)
|
|
{
|
|
- int i, sp;
|
|
+ int sp;
|
|
+ size_t i;
|
|
string ostr = name() + ": " + value();
|
|
|
|
// skip the "fieldname: " part just on the first inner iteration
|
|
diff --git a/mimetic/rfc822/header.h b/mimetic/rfc822/header.h
|
|
index 6b41457..6e27ddb 100644
|
|
--- a/mimetic/rfc822/header.h
|
|
+++ b/mimetic/rfc822/header.h
|
|
@@ -33,9 +33,10 @@ namespace mimetic
|
|
class Rfc822Header: public std::deque<Field>
|
|
{
|
|
public:
|
|
- struct find_by_name:
|
|
- public std::unary_function<const Field, bool>
|
|
+ struct find_by_name
|
|
{
|
|
+ typedef const Field argument_type;
|
|
+ typedef bool result_type;
|
|
find_by_name(const std::string&);
|
|
bool operator()(const Field&) const;
|
|
private:
|
|
diff --git a/mimetic/strutils.cxx b/mimetic/strutils.cxx
|
|
index e30e032..c81f0fe 100644
|
|
--- a/mimetic/strutils.cxx
|
|
+++ b/mimetic/strutils.cxx
|
|
@@ -35,7 +35,7 @@ string canonical(const string& s, bool no_ws)
|
|
input.erase(1 + idx, string::npos);
|
|
// removes rfc822 comments and non-required spaces
|
|
bool in_dquote = false, has_brack = false;
|
|
- int in_par = 0, in_brack = 0, par_last;
|
|
+ int in_par = 0, in_brack = 0, par_last = 0;
|
|
for(int t =input.length() - 1; t >= 0; --t)
|
|
{
|
|
if(input[t] == '"') {
|
|
diff --git a/mimetic/tokenizer.h b/mimetic/tokenizer.h
|
|
index 39de397..546f5b2 100644
|
|
--- a/mimetic/tokenizer.h
|
|
+++ b/mimetic/tokenizer.h
|
|
@@ -16,8 +16,11 @@ namespace mimetic
|
|
{
|
|
|
|
template<typename value_type>
|
|
-struct IsDelim: public std::unary_function<value_type,bool>
|
|
+struct IsDelim
|
|
{
|
|
+ typedef value_type argument_type;
|
|
+ typedef bool result_type;
|
|
+
|
|
bool operator()(const value_type& val) const
|
|
{
|
|
return m_delims.count(val) != 0;
|
|
@@ -49,8 +52,11 @@ struct IsDelim: public std::unary_function<value_type,bool>
|
|
};
|
|
|
|
template<>
|
|
-struct IsDelim<char>: public std::unary_function<char, bool>
|
|
+struct IsDelim<char>
|
|
{
|
|
+ typedef char argument_type;
|
|
+ typedef bool result_type;
|
|
+
|
|
void setDelimList(const std::string& delims)
|
|
{
|
|
setDelimList(delims.begin(), delims.end());
|
|
diff --git a/mimetic/utils.cxx b/mimetic/utils.cxx
|
|
index 294dc6a..7ede231 100644
|
|
--- a/mimetic/utils.cxx
|
|
+++ b/mimetic/utils.cxx
|
|
@@ -113,7 +113,7 @@ string int2hex(unsigned int n)
|
|
if(zeros)
|
|
r.insert((string::size_type)0, zeros, '0');
|
|
zeros = 0;
|
|
- r.insert((string::size_type)0, 1, tb[cp]);
|
|
+ r.insert((string::size_type)0, 1, tb[static_cast<unsigned>(cp)]);
|
|
}
|
|
}
|
|
return r;
|
|
diff --git a/test/Makefile.in b/test/Makefile.in
|
|
index f337e67..79f608c 100644
|
|
--- a/test/Makefile.in
|
|
+++ b/test/Makefile.in
|
|
@@ -563,7 +563,7 @@ touch-autocutee.mk:
|
|
autocutee.mk: cutee Makefile.am $(test_files)
|
|
./cutee -k -o autocutee.mk $(addprefix $(srcdir)/, $(test_files))
|
|
|
|
-%.cutee.cxx: $(srcdir)/%.h
|
|
+%.cutee.cxx: $(srcdir)/%.h cutee
|
|
$(CUTEE) -o $@ $<
|
|
|
|
runtest.cxx: cutee
|
|
diff --git a/test/cutee.cxx b/test/cutee.cxx
|
|
index d1e27a3..06b7220 100644
|
|
--- a/test/cutee.cxx
|
|
+++ b/test/cutee.cxx
|
|
@@ -43,6 +43,15 @@ void do_die_if(int b, const string& msg, int line)
|
|
}
|
|
#define _( code ) of << code << endl
|
|
|
|
+string stripPath(const string& fqn)
|
|
+{
|
|
+ string::size_type idx = fqn.find_last_of('/');
|
|
+ if(idx != string::npos)
|
|
+ return string(fqn, ++idx);
|
|
+ else
|
|
+ return fqn;
|
|
+}
|
|
+
|
|
enum {
|
|
MODE_RUNTEST,
|
|
MODE_MAIN,
|
|
@@ -58,7 +67,7 @@ struct CmdLineOpts
|
|
int mode;
|
|
|
|
CmdLineOpts()
|
|
- : ext(DEFAULT_RUNNER_EXT),mode(MODE_RUNTEST)
|
|
+ : ext(stripPath(DEFAULT_RUNNER_EXT)),mode(MODE_RUNTEST)
|
|
{
|
|
}
|
|
void parse(int argc, char **argv)
|
|
@@ -343,11 +352,11 @@ struct GenMakefile
|
|
|
|
_( "" );
|
|
_( RUNTEST_NAME ".cxx: cutee" );
|
|
- _( "\t$(CUTEE) -m -o "RUNTEST_NAME".cxx" );
|
|
+ _( "\t$(CUTEE) -m -o " RUNTEST_NAME ".cxx" );
|
|
_( "" );
|
|
- _( RUNTEST_NAME": autocutee.mk " RUNTEST_NAME ".o $(object_files)");
|
|
- _( "\t$(CXX) $(CXXFLAGS) $(LDFLAGS) -o "RUNTEST_NAME" "RUNTEST_NAME".o $(object_files)");
|
|
- _( "\t./"RUNTEST_NAME );
|
|
+ _( RUNTEST_NAME ": autocutee.mk " RUNTEST_NAME ".o $(object_files)");
|
|
+ _( "\t$(CXX) $(CXXFLAGS) $(LDFLAGS) -o " RUNTEST_NAME " " RUNTEST_NAME ".o $(object_files)");
|
|
+ _( "\t./" RUNTEST_NAME );
|
|
_( "" );
|
|
_( "# cutee autogen: end ");
|
|
}
|
|
@@ -400,7 +409,7 @@ struct GenAutomakefile
|
|
of << endl;
|
|
|
|
_( "" );
|
|
- _( "%.cutee.cxx: $(srcdir)/%.h" );
|
|
+ _( "%.cutee.cxx: $(srcdir)/%.h cutee" );
|
|
_( "\t$(CUTEE) -o $@ $<");
|
|
|
|
_( "" );
|
|
@@ -410,24 +419,16 @@ struct GenAutomakefile
|
|
|
|
_( "" );
|
|
_( RUNTEST_NAME "-clean:");
|
|
- _( "\trm -f autocutee.mk cutee *.o *.cutee.cxx "RUNTEST_NAME" "RUNTEST_NAME".cxx");
|
|
+ _( "\trm -f autocutee.mk cutee *.o *.cutee.cxx " RUNTEST_NAME " " RUNTEST_NAME ".cxx");
|
|
_( "\ttouch autocutee.mk");
|
|
|
|
_( "" );
|
|
- _( "EXTRA_PROGRAMS="RUNTEST_NAME );
|
|
- _( RUNTEST_NAME "_SOURCES="RUNTEST_NAME".cxx $(test_files) $(t_runners)");
|
|
- _( RUNTEST_NAME"_DEPENDENCIES=cutee autocutee.mk" );
|
|
+ _( "EXTRA_PROGRAMS=" RUNTEST_NAME );
|
|
+ _( RUNTEST_NAME "_SOURCES=" RUNTEST_NAME ".cxx $(test_files) $(t_runners)");
|
|
+ _( RUNTEST_NAME "_DEPENDENCIES=cutee autocutee.mk" );
|
|
_( "# cutee autogen: end ");
|
|
}
|
|
private:
|
|
- string stripPath(const string& fqn)
|
|
- {
|
|
- string::size_type idx = fqn.find_last_of('/');
|
|
- if(idx != string::npos)
|
|
- return string(fqn, ++idx);
|
|
- else
|
|
- return fqn;
|
|
- }
|
|
string stripExt(const string& fqn)
|
|
{
|
|
string::size_type idx = fqn.find_last_of('.');
|
|
diff --git a/test/t.qp.h b/test/t.qp.h
|
|
index 2160a33..20911d3 100644
|
|
--- a/test/t.qp.h
|
|
+++ b/test/t.qp.h
|
|
@@ -177,7 +177,7 @@ class TEST_CLASS( test_qp )
|
|
tb[QP::CR] = tb[QP::LF] = QP::newline;
|
|
const char* unsafe = "!\"#$@[]\\^`{}|~";
|
|
while(*unsafe != 0)
|
|
- tb[*unsafe++] = QP::unsafe;
|
|
+ tb[static_cast<unsigned>(*unsafe++)] = QP::unsafe;
|
|
for(int i = 0; i < 256; i++)
|
|
{
|
|
TEST_ASSERT(tb[i] == QP::sTb[i]);
|
|
diff --git a/test/t.rfc822.cxx b/test/t.rfc822.cxx
|
|
index 7d83bb8..187c458 100644
|
|
--- a/test/t.rfc822.cxx
|
|
+++ b/test/t.rfc822.cxx
|
|
@@ -137,7 +137,6 @@ void testRfc822::testMailbox()
|
|
void testRfc822::testAddress()
|
|
{
|
|
Address a("e@mail.com"), b;
|
|
- int i;
|
|
TEST_ASSERT(!a.isGroup());
|
|
|
|
b.set("e@mail.com");
|