-rw-r--r-- | include/opkele/tidy.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/include/opkele/tidy.h b/include/opkele/tidy.h index 888e7d4..059656d 100644 --- a/include/opkele/tidy.h +++ b/include/opkele/tidy.h | |||
@@ -1,70 +1,77 @@ | |||
1 | #ifndef __OPKELE_TIDY_H | 1 | #ifndef __OPKELE_TIDY_H |
2 | #define __OPKELE_TIDY_H | 2 | #define __OPKELE_TIDY_H |
3 | 3 | ||
4 | #include <cassert> | 4 | #include <cassert> |
5 | #include <tidy.h> | 5 | #ifdef HAVE_TIDY_H |
6 | #include <buffio.h> | 6 | # include <tidy.h> |
7 | # include <buffio.h> | ||
8 | #elif HAVE_TIDY_TIDY_H | ||
9 | # include <tidy/tidy.h> | ||
10 | # include <tidy/buffio.h> | ||
11 | #else | ||
12 | # error "Don't know where to look for htmltidy headers" | ||
13 | #endif | ||
7 | 14 | ||
8 | namespace opkele { | 15 | namespace opkele { |
9 | namespace util { | 16 | namespace util { |
10 | 17 | ||
11 | class tidy_buf_t { | 18 | class tidy_buf_t { |
12 | public: | 19 | public: |
13 | TidyBuffer _x; | 20 | TidyBuffer _x; |
14 | 21 | ||
15 | tidy_buf_t() { tidyBufInit(&_x); } | 22 | tidy_buf_t() { tidyBufInit(&_x); } |
16 | virtual ~tidy_buf_t() throw() { | 23 | virtual ~tidy_buf_t() throw() { |
17 | tidyBufFree(&_x); } | 24 | tidyBufFree(&_x); } |
18 | 25 | ||
19 | inline operator const TidyBuffer&(void) const { return _x; } | 26 | inline operator const TidyBuffer&(void) const { return _x; } |
20 | inline operator TidyBuffer&(void) { return _x; } | 27 | inline operator TidyBuffer&(void) { return _x; } |
21 | 28 | ||
22 | inline operator const char*(void) const { return (const char*)_x.bp; } | 29 | inline operator const char*(void) const { return (const char*)_x.bp; } |
23 | inline operator char*(void) { return (char*)_x.bp; } | 30 | inline operator char*(void) { return (char*)_x.bp; } |
24 | 31 | ||
25 | inline const char *c_str() const { | 32 | inline const char *c_str() const { |
26 | return (const char*)_x.bp; } | 33 | return (const char*)_x.bp; } |
27 | inline size_t size() const { | 34 | inline size_t size() const { |
28 | return _x.size; } | 35 | return _x.size; } |
29 | }; | 36 | }; |
30 | 37 | ||
31 | class tidy_doc_t { | 38 | class tidy_doc_t { |
32 | public: | 39 | public: |
33 | TidyDoc _x; | 40 | TidyDoc _x; |
34 | 41 | ||
35 | tidy_doc_t() : _x(0) { } | 42 | tidy_doc_t() : _x(0) { } |
36 | tidy_doc_t(TidyDoc x) : _x(x) { } | 43 | tidy_doc_t(TidyDoc x) : _x(x) { } |
37 | virtual ~tidy_doc_t() throw() { | 44 | virtual ~tidy_doc_t() throw() { |
38 | if(_x) tidyRelease(_x); } | 45 | if(_x) tidyRelease(_x); } |
39 | 46 | ||
40 | tidy_doc_t& operator=(TidyDoc x) { | 47 | tidy_doc_t& operator=(TidyDoc x) { |
41 | if(_x) tidyRelease(_x); | 48 | if(_x) tidyRelease(_x); |
42 | _x = x; | 49 | _x = x; |
43 | return *this; | 50 | return *this; |
44 | } | 51 | } |
45 | 52 | ||
46 | operator const TidyDoc(void) const { return _x; } | 53 | operator const TidyDoc(void) const { return _x; } |
47 | operator TidyDoc(void) { return _x; } | 54 | operator TidyDoc(void) { return _x; } |
48 | 55 | ||
49 | inline bool opt_set(TidyOptionId o,bool v) { | 56 | inline bool opt_set(TidyOptionId o,bool v) { |
50 | assert(_x); | 57 | assert(_x); |
51 | return tidyOptSetBool(_x,o,v?yes:no); } | 58 | return tidyOptSetBool(_x,o,v?yes:no); } |
52 | inline bool opt_set(TidyOptionId o,int v) { | 59 | inline bool opt_set(TidyOptionId o,int v) { |
53 | assert(_x); | 60 | assert(_x); |
54 | return tidyOptSetInt(_x,o,v); } | 61 | return tidyOptSetInt(_x,o,v); } |
55 | 62 | ||
56 | inline int parse_string(const string& s) { | 63 | inline int parse_string(const string& s) { |
57 | assert(_x); | 64 | assert(_x); |
58 | return tidyParseString(_x,s.c_str()); } | 65 | return tidyParseString(_x,s.c_str()); } |
59 | inline int clean_and_repair() { | 66 | inline int clean_and_repair() { |
60 | assert(_x); | 67 | assert(_x); |
61 | return tidyCleanAndRepair(_x); } | 68 | return tidyCleanAndRepair(_x); } |
62 | inline int save_buffer(TidyBuffer& ob) { | 69 | inline int save_buffer(TidyBuffer& ob) { |
63 | assert(_x); | 70 | assert(_x); |
64 | return tidySaveBuffer(_x,&ob); } | 71 | return tidySaveBuffer(_x,&ob); } |
65 | 72 | ||
66 | static inline TidyDoc create() { | 73 | static inline TidyDoc create() { |
67 | return tidyCreate(); } | 74 | return tidyCreate(); } |
68 | }; | 75 | }; |
69 | 76 | ||
70 | } | 77 | } |