diff options
| author | Sam Varshavchik | 2014-04-13 21:37:49 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2014-04-13 21:37:49 -0400 |
| commit | e10a45421d2b95babe34eb31dbd09bda68a2a590 (patch) | |
| tree | c7dd92b7fa47f5c8cc68cb6428dd8f2f5f345bed /unicode | |
| parent | e7650ab352897866149c5b7765aba74ea13b4aa5 (diff) | |
| download | courier-libs-e10a45421d2b95babe34eb31dbd09bda68a2a590.tar.bz2 | |
courier-unicode: remove pure virtual functions in the C++ classes.
Callbacks from the C library can get invoked from the base class's
destructor.
Bump shared library version.
Diffstat (limited to 'unicode')
| -rw-r--r-- | unicode/ChangeLog | 2 | ||||
| -rw-r--r-- | unicode/Makefile.am | 2 | ||||
| -rw-r--r-- | unicode/configure.ac | 2 | ||||
| -rw-r--r-- | unicode/unicode.h | 57 | ||||
| -rw-r--r-- | unicode/unicodecpp.C | 15 |
5 files changed, 64 insertions, 14 deletions
diff --git a/unicode/ChangeLog b/unicode/ChangeLog index ef75d5e..a018e52 100644 --- a/unicode/ChangeLog +++ b/unicode/ChangeLog @@ -1,3 +1,5 @@ +1.0 + 2014-01-06 Sam Varshavchik <mrsam@courier-mta.com> * Refactored as a standalone library, changed some symbol names. diff --git a/unicode/Makefile.am b/unicode/Makefile.am index 986151e..6a2fa6b 100644 --- a/unicode/Makefile.am +++ b/unicode/Makefile.am @@ -59,7 +59,7 @@ libunicode_la_SOURCES=unicode.h unicode.c unicodebuf.c \ linebreaktab_internal.h \ unicode_wordbreak.c wordbreaktab.h \ wordbreaktab_internal.h -libunicode_la_LDFLAGS=-version-info 0:0:0 +libunicode_la_LDFLAGS=-version-info 1:0:0 EXTRA_DIST=$(noinst_SCRIPTS) $(man_MANS) $(PACKAGE).spec diff --git a/unicode/configure.ac b/unicode/configure.ac index 67b55f6..5f42966 100644 --- a/unicode/configure.ac +++ b/unicode/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([courier-unicode], [1.0], [courier-users@lists.sourceforge.net]) +AC_INIT([courier-unicode], [1.1], [courier-users@lists.sourceforge.net]) >confdefs.h # Kill PACKAGE_ macros diff --git a/unicode/unicode.h b/unicode/unicode.h index 3efd9c7..b2ec0ab 100644 --- a/unicode/unicode.h +++ b/unicode/unicode.h @@ -1270,13 +1270,20 @@ namespace unicode { int opts; +#if __cplusplus >= 201103L + public: + linebreak_callback_base(const linebreak_callback_base &)=delete; + linebreak_callback_base &operator=(const + linebreak_callback_base &)=delete; + private: +#else linebreak_callback_base(const linebreak_callback_base &); /* NOT IMPLEMENTED */ - linebreak_callback_base &operator==(const - linebreak_callback_base &); + linebreak_callback_base &operator=(const + linebreak_callback_base &); /* NOT IMPLEMENTED */ - +#endif public: linebreak_callback_base(); virtual ~linebreak_callback_base(); @@ -1304,7 +1311,7 @@ namespace unicode { return operator()(vec.begin(), vec.end()); } private: - virtual int callback(int)=0; + virtual int callback(int); }; class linebreak_callback_save_buf : public linebreak_callback_base { @@ -1447,14 +1454,24 @@ namespace unicode { int opts; +#if __cplusplus >= 201103L + public: + linebreakc_callback_base(const linebreakc_callback_base &) + =delete; + + linebreakc_callback_base &operator=(const + linebreakc_callback_base + &)=delete; + private: +#else linebreakc_callback_base(const linebreakc_callback_base &); /* NOT IMPLEMENTED */ - linebreakc_callback_base &operator==(const + linebreakc_callback_base &operator=(const linebreakc_callback_base &); /* NOT IMPLEMENTED */ - +#endif public: linebreakc_callback_base(); @@ -1484,7 +1501,7 @@ namespace unicode { return operator()(vec.begin(), vec.end()); } private: - virtual int callback(int, unicode_char)=0; + virtual int callback(int, unicode_char); }; class linebreakc_callback_save_buf : public linebreakc_callback_base { @@ -1632,13 +1649,22 @@ namespace unicode { unicode_wb_info_t handle; +#if __cplusplus >= 201103L + public: + wordbreak_callback_base(const wordbreak_callback_base &)=delete; + + wordbreak_callback_base &operator=(const + wordbreak_callback_base &) + =delete; + private: +#else wordbreak_callback_base(const wordbreak_callback_base &); /* NOT IMPLEMENTED */ - wordbreak_callback_base &operator==(const - wordbreak_callback_base &); + wordbreak_callback_base &operator=(const + wordbreak_callback_base &); /* NOT IMPLEMENTED */ - +#endif public: wordbreak_callback_base(); virtual ~wordbreak_callback_base(); @@ -1665,7 +1691,7 @@ namespace unicode { return operator()(vec.begin(), vec.end()); } private: - virtual int callback(bool)=0; + virtual int callback(bool); }; /* @@ -1676,11 +1702,18 @@ namespace unicode { unicode_wbscan_info_t handle; +#if __cplusplus >= 201103L + public: + wordbreakscan(const wordbreakscan &)=delete; + wordbreakscan &operator=(const wordbreakscan &)=delete; + private: +#else wordbreakscan(const wordbreakscan &); /* NOT IMPLEMENTED */ - wordbreakscan &operator==(const wordbreakscan &); + wordbreakscan &operator=(const wordbreakscan &); /* NOT IMPLEMENTED */ +#endif public: wordbreakscan(); diff --git a/unicode/unicodecpp.C b/unicode/unicodecpp.C index 485f05d..2996c54 100644 --- a/unicode/unicodecpp.C +++ b/unicode/unicodecpp.C @@ -295,6 +295,11 @@ unicode::linebreak_callback_base::~linebreak_callback_base() finish(); } +int unicode::linebreak_callback_base::callback(int ignore) +{ + return 0; +} + unicode::linebreak_callback_base &unicode::linebreak_callback_base::operator<<(unicode_char uc) { @@ -345,6 +350,11 @@ unicode::linebreakc_callback_base::~linebreakc_callback_base() finish(); } +int unicode::linebreakc_callback_base::callback(int dummy1, unicode_char dummy2) +{ + return 0; +} + void unicode::linebreakc_callback_base::set_opts(int optsArg) { opts=optsArg; @@ -403,6 +413,11 @@ unicode::wordbreak_callback_base::~wordbreak_callback_base() finish(); } +int unicode::wordbreak_callback_base::callback(bool ignore) +{ + return 0; +} + unicode::wordbreak_callback_base &unicode::wordbreak_callback_base::operator<<(unicode_char uc) { |
