inline char qg array at uint index const if defined check range if index size msg index index index 0 endif return shd data index qgarray check_range msg_index inline difference char qg array at uint index const if defined check range if index size msg index index index 0 endif return shd data index qgarray check_range msg_index qg array qg array shd new data check ptr shd qgarray qgarray newdata check_ptr qg array qg array int int qgarray qgarray qg array qg array int size if size 0 if defined check range q warning qg array cannot allocate array with negative length endif size 0 shd new data check ptr shd if size 0 zero length return shd data new char size check ptr shd data shd len size qgarray qgarray check_range qwarning qgarray newdata check_ptr check_ptr qg array qg array const qg array a shd a shd shd ref qgarray qgarray qgarray qg array qg array if shd shd deref delete when last reference if shd data is lost delete shd data delete data shd qgarray qgarray deletedata bool qg array is equal const qg array a const if size a size different size return false if data a data has same data return true return size memcmp data a data size 0 0 qgarray isequal qgarray bool qg array resize uint newsize if newsize shd len nothing to do return true if newsize 0 remove array duplicate 0 0 return true if shd data existing data if defined dont use realloc char newdata new char newsize manual realloc memcpy newdata shd data qmin shd len newsize delete shd data shd data newdata else shd data char realloc shd data newsize endif else shd data new char newsize check ptr shd data if shd data no memory return false shd len newsize return true qgarray dont_use_realloc check_ptr bool qg array fill const char d int len uint sz if len 0 len shd len sz default use array length else if resize len sz return false if sz 1 8 bit elements memset data d len else if sz 4 32 bit elements register q int32 x q int32 data q int32 v q int32 d while len x v else if sz 2 16 bit elements register q int16 x q int16 data q int16 v q int16 d while len x v else any other size elements register char x data while len more complicated memcpy x d sz x sz return true qgarray q_int32 q_int32 q_int32 q_int32 q_int16 q_int16 q_int16 q_int16 qg array qg array assign const qg array a a shd ref avoid a a if shd deref delete when last reference if shd data is lost delete shd data delete data shd shd a shd return this qgarray qgarray qgarray deletedata qg array qg array assign const char d uint len if shd count 1 disconnect this shd count shd new data check ptr shd else if shd data delete shd data shd data char d shd len len return this qgarray qgarray newdata check_ptr qg array qg array duplicate const qg array a if a shd shd a duplicate a if shd count 1 shd count register array data n new data check ptr n if n len shd len n data new char n len check ptr n data if n data memcpy n data shd data n len else n data 0 shd n return this char oldptr 0 if shd count 1 disconnect this shd count shd new data check ptr shd else delete after copy was made oldptr shd data if a shd len duplicate data shd data new char a shd len check ptr shd data if shd data memcpy shd data a shd data a shd len else shd data 0 shd len a shd len if oldptr delete oldptr return this qgarray qgarray qgarray array_data newdata check_ptr check_ptr newdata check_ptr check_ptr qg array qg array duplicate const char d uint len char data if d 0 len 0 data 0 len 0 else if shd count 1 shd len len memcpy shd data d len use same buffer return this data new char len check ptr data memcpy data d len if shd count 1 detach shd count shd new data check ptr shd else just a single reference if shd data delete shd data shd data data shd len len return this qgarray qgarray check_ptr newdata check_ptr void qg array store const char d uint len store but not deref resize len memcpy shd data d len qgarray qg array qg array set raw data const char d uint len duplicate 0 0 set null data shd data char d shd len len return this qgarray qgarray setrawdata void qg array reset raw data const char d uint len if d shd data len shd len if defined check state q warning qg array reset raw data inconsistent arguments endif return shd data 0 shd len 0 qgarray resetrawdata check_state qwarning qgarray resetrawdata int qg array find const char d uint index uint sz const index sz if index shd len if defined check range q warning qg array find index d out of range index sz endif return 1 register uint i uint ii switch sz case 1 8 bit elements register char x data index char v d for i index i shd len i if x v break ii i break case 2 16 bit elements register q int16 x q int16 data index q int16 v q int16 d for i index i shd len i 2 if x v break ii i 2 break case 4 32 bit elements register q int32 x q int32 data index q int32 v q int32 d for i index i shd len i 4 if x v break ii i 4 break default any size elements for i index i shd len i sz if memcmp d shd data i sz 0 break ii i sz break return i shd len int ii 1 qgarray check_range qwarning qgarray q_int16 q_int16 q_int16 q_int16 q_int32 q_int32 q_int32 q_int32 int qg array contains const char d uint sz const register uint i shd len int count 0 switch sz case 1 8 bit elements register char x data char v d while i if x v count break case 2 16 bit elements register q int16 x q int16 data q int16 v q int16 d i 2 while i if x v count break case 4 32 bit elements register q int32 x q int32 data q int32 v q int32 d i 4 while i if x v count break default any size elements for i 0 i shd len i sz if memcmp d shd data i sz 0 count break return count qgarray q_int16 q_int16 q_int16 q_int16 q_int32 q_int32 q_int32 q_int32 void qg array sort uint sz int num items size sz if num items 2 return cmp item size sz qsort shd data num items sz cmp arr qgarray numitems numitems cmp_item_size numitems cmp_arr int qg array bsearch const char d uint sz const int num items size sz if num items return 1 cmp item size sz char r char bsearch d shd data num items sz cmp arr if r return 1 while r shd data sz cmp arr r sz d 0 r sz search to first of equal elements bsearch is undef return int r shd data sz qgarray numitems numitems cmp_item_size numitems cmp_arr cmp_arr bool qg array set expand uint index const char d uint sz index sz if index shd len if resize index sz no memory return false memcpy data index d sz return true qgarray setexpand qg array array data qg array new data return new array data qgarray array_data qgarray newdata array_data void qg array delete data array data p delete p p 0 qgarray deletedata array_data void qg array msg index uint index if defined check range q warning qg array at absolute index d out of range index else q unused index endif qgarray msg_index check_range qwarning qgarray q_unused inline char sc string at uint index const return m data index scstring m_data inline void sc string duplicate const sc string s if s is empty uint l strlen s data m data char malloc l 1 if m data memcpy m data s data l 1 else m data 0 scstring scstring isempty m_data m_data m_data m_data inline void sc string duplicate const char str if str str 0 0 uint l strlen str m data char malloc l 1 if m data memcpy m data str l 1 else m data 0 scstring m_data m_data m_data m_data inline sc string sc string duplicate const char str int if m data free m data duplicate str return this scstring scstring m_data m_data sc string sc string const sc string s duplicate s scstring scstring scstring sc string sc string int size if size 0 m data char malloc size if m data if size 1 memset m data size 1 m data size 1 0 else m data 0 scstring scstring m_data m_data m_data m_data m_data sc string sc string const char str duplicate str scstring scstring sc string sc string const char str uint maxlen uint l if str l qmin qstrlen str maxlen m data char malloc l 1 strncpy m data str maxlen m data l 0 else m data 0 scstring scstring m_data m_data m_data m_data sc string sc string if m data free m data m data 0 scstring scstring m_data m_data m_data bool sc string resize uint newlen if newlen 0 if m data free m data m data 0 return true if m data 0 newlen 0 m data char malloc newlen else m data char realloc m data newlen if m data 0 return false m data newlen 1 0 return true scstring m_data m_data m_data m_data m_data m_data m_data m_data m_data bool sc string fill char c int len uint l length if len 0 len l if uint len l if m data free m data if len 0 m data char malloc len 1 if m data 0 return false m data len 0 else m data 0 if len 0 uint i for i 0 i uint len i m data i c return true scstring m_data m_data m_data m_data m_data m_data m_data sc string sc string sprintf const char format va list ap va start ap format uint l length const uint minlen 256 if l minlen if m data m data char realloc m data minlen else m data char malloc minlen vsprintf m data format ap resize qstrlen m data 1 truncate va end ap return this scstring scstring va_list va_start m_data m_data m_data m_data m_data m_data va_end int sc string find char c int index bool cs const uint len length if m data 0 uint index len index outside string return 1 register const char d if cs case sensitive d strchr m data index c else d m data index c tolower uchar c while d tolower uchar d c d if d c not found d 0 return d int d m data 1 scstring m_data m_data m_data m_data int sc string find const char str int index bool cs const uint l length if m data 0 uint index l index outside string return 1 if str no search string return 1 if str zero length search string return index register const char d if cs case sensitive d strstr m data index str else case insensitive d m data index int len qstrlen str while d if qstrnicmp d str len 0 break d if d not found d 0 return d int d m data 1 scstring m_data m_data m_data m_data int sc string find const q reg exp rx int index const q string d q string from latin1 m data return d find rx index scstring qregexp qstring qstring fromlatin1 m_data int sc string find rev char c int index bool cs const const char b m data const char d uint len length if b 0 return 1 empty string if index 0 neg index start from end if len 0 return 1 if cs d strrchr b c return d int d b 1 index len else if uint index len bad index return 1 d b index if cs case sensitive while d b d c d else case insensitive c tolower uchar c while d b tolower uchar d c d return d b int d b 1 scstring findrev m_data int sc string find rev const char str int index bool cs const int slen qstrlen str uint len length if index 0 neg index start from end index len slen else if uint index len bad index return 1 else if uint index slen len str would be too long index len slen if index 0 return 1 register char d m data index if cs case sensitive for int i index i 0 i if qstrncmp d str slen 0 return i else case insensitive for int i index i 0 i if qstrnicmp d str slen 0 return i return 1 scstring findrev m_data int sc string find rev const q reg exp rx int index const q string d q string from latin1 m data return d find rev rx index scstring findrev qregexp qstring qstring fromlatin1 m_data findrev int sc string contains char c bool cs const int count 0 char d m data if d return 0 if cs case sensitive while d if d c count else case insensitive c tolower uchar c while d if tolower uchar d c count d return count scstring m_data int sc string contains const char str bool cs const int count 0 char d data if d return 0 int len qstrlen str while d counts overlapping strings if cs if qstrncmp d str len 0 count else if qstrnicmp d str len 0 count d return count scstring int sc string contains const q reg exp rx const q string d q string from latin1 m data return d contains rx scstring qregexp qstring qstring fromlatin1 m_data bool sc string strip prefix const char prefix if prefix 0 return false uint plen qstrlen prefix if m data qstrncmp prefix m data plen 0 prefix matches uint len qstrlen m data uint newlen len plen 1 qmemmove m data m data plen newlen resize newlen return true return false scstring stripprefix m_data m_data m_data m_data m_data sc string sc string left uint len const if is empty return sc string else if len length return this else sc string s len 1 strncpy s data m data len s data len 0 return s scstring scstring isempty scstring scstring m_data sc string sc string right uint len const if is empty return sc string else uint l length if len l len l char p m data l len return sc string p scstring scstring isempty scstring m_data scstring sc string sc string mid uint index uint len const uint slen length if len 0xffffffff len slen index if is empty index slen return sc string else register char p data index sc string s len 1 strncpy s data p len s data len 0 return s scstring scstring isempty scstring scstring sc string sc string lower const sc string s m data register char p s data if p while p p tolower uchar p p return s scstring scstring scstring m_data sc string sc string upper const sc string s m data register char p s data if p while p p toupper uchar p p return s scstring scstring scstring m_data sc string sc string strip white space const if is empty nothing to do return this register char s m data int reslen length if isspace uchar s 0 isspace uchar s reslen 1 return this returns a copy sc string result s s result data int start 0 int end reslen 1 while isspace uchar s start skip white space from start start if s start 0 only white space return sc string while end isspace uchar s end skip white space from end end end start 1 memmove result data s start end result resize end 1 return result scstring scstring stripwhitespace isempty m_data scstring scstring sc string sc string simplify white space const if is empty nothing to do return this sc string result length 1 char from data char to result data char first to while true while from isspace uchar from from while from isspace uchar from to from if from to 0x20 else break if to first to 1 0x20 to to 0 result resize int long to long result data 1 return result scstring scstring simplifywhitespace isempty scstring sc string sc string assign const char str if m data free m data duplicate str return this scstring scstring m_data m_data sc string sc string insert uint index const char s int len qstrlen s if len 0 return this uint olen length int nlen olen len if index olen insert after end of string m data char realloc m data nlen index olen 1 if m data memset m data olen index olen memcpy m data index s len 1 else if m data char realloc m data nlen 1 normal insert memmove m data index len m data index olen index 1 memcpy m data index s len return this scstring scstring m_data m_data m_data m_data m_data m_data m_data m_data m_data m_data sc string sc string insert uint index char c insert char char buf 2 buf 0 c buf 1 0 return insert index buf scstring scstring sc string sc string remove uint index uint len uint olen length if index len olen range problems if index olen index ok resize index 1 else if len 0 memmove m data index m data index len olen index len 1 resize olen len 1 return this scstring scstring m_data m_data sc string sc string replace uint index uint len const char s remove index len insert index s return this scstring scstring sc string sc string replace const q reg exp rx const char str q string d q string from latin1 m data q string r q string from latin1 str d replace rx r operator d ascii return this scstring scstring qregexp qstring qstring fromlatin1 m_data qstring qstring fromlatin1 short sc string to short bool ok const q string s m data return s to short ok scstring toshort qstring m_data toshort ushort sc string tou short bool ok const q string s m data return s tou short ok scstring toushort qstring m_data toushort int sc string to int bool ok const q string s m data return s to int ok scstring toint qstring m_data toint uint sc string tou int bool ok const q string s m data return s tou int ok scstring touint qstring m_data touint long sc string to long bool ok const q string s m data return s to long ok scstring tolong qstring m_data tolong ulong sc string tou long bool ok const q string s m data return s tou long ok scstring toulong qstring m_data toulong sc string sc string set num long n char buf 20 register char p buf 19 bool neg if n 0 neg true n n else neg false p 0 do p int n 10 0 n 10 while n if neg p operator p return this scstring scstring setnum sc string sc string set num ulong n char buf 20 register char p buf 19 p 0 do p int n 10 0 n 10 while n operator p return this scstring scstring setnum sc string sc string operator const char str if str return this nothing to append uint len1 length uint len2 qstrlen str char new data char realloc m data len1 len2 1 if new data m data new data memcpy m data len1 str len2 1 return this scstring scstring newdata m_data newdata m_data newdata m_data sc string sc string operator char c uint len length char new data char realloc m data length 2 if new data m data new data m data len c m data len 1 0 return this scstring scstring newdata m_data newdata m_data newdata m_data m_data inline char sc string at uint index const return m data index scstring m_data void sc string msg index uint index if defined check range q warning sc string at absolute index d out of range index else q unused index endif scstring msg_index check_range qwarning scstring q_unused inline void sc string duplicate const sc string s if s is empty uint l strlen s data m data char malloc l 1 if m data memcpy m data s data l 1 else m data 0 scstring scstring isempty m_data m_data m_data m_data inline void sc string duplicate const char str if str str 0 0 uint l strlen str m data char malloc l 1 if m data memcpy m data str l 1 else m data 0 scstring m_data m_data m_data m_data inline sc string sc string duplicate const char str int if m data free m data duplicate str return this scstring scstring m_data m_data q byte array size if size 0 data 0 set terminator data size 1 0 qbytearray qc string qc string const char str duplicate str qstrlen str 1 qcstring qcstring qc string qc string const char str uint maxsize if str 0 return uint len index of first 0 for len 0 len maxsize 1 len if str len 0 break q byte array resize len 1 memcpy data str len data len 0 qcstring qcstring qbytearray bool qc string resize uint len detach if q byte array resize len return false if len data len 1 0 return true qcstring qbytearray bool qc string fill char c int len detach if len 0 len length if q byte array fill c len 1 return false data len 0 return true qcstring qbytearray qc string qc string sprintf const char format detach va list ap va start ap format if size 256 q byte array resize 256 make string big enough vsprintf data format ap resize qstrlen data 1 truncate va end ap return this qcstring qcstring va_list va_start qbytearray va_end int qc string find char c int index bool cs const if uint index size index outside string return 1 register const char d if cs case sensitive d strchr data index c else d data index c tolower uchar c while d tolower uchar d c d if d c not found d 0 return d int d data 1 qcstring int qc string find const char str int index bool cs const if uint index size index outside string return 1 if str no search string return 1 if str zero length search string return index register const char d if cs case sensitive d strstr data index str else case insensitive d data index int len qstrlen str while d if qstrnicmp d str len 0 break d if d not found d 0 return d int d data 1 qcstring int qc string find const q reg exp rx int index const q string d q string from latin1 data return d find rx index qcstring qregexp qstring qstring fromlatin1 int qc string find rev char c int index bool cs const const char b data const char d if index 0 neg index start from end if size 0 return 1 if cs d strrchr b c return d int d b 1 index length else if uint index size bad index return 1 d b index if cs case sensitive while d b d c d else case insensitive c tolower uchar c while d b tolower uchar d c d return d b int d b 1 qcstring findrev int qc string find rev const char str int index bool cs const int slen qstrlen str if index 0 neg index start from end index length slen else if uint index size bad index return 1 else if uint index slen length str would be too long index length slen if index 0 return 1 register char d data index if cs case sensitive for int i index i 0 i if qstrncmp d str slen 0 return i else case insensitive for int i index i 0 i if qstrnicmp d str slen 0 return i return 1 qcstring findrev int qc string find rev const q reg exp rx int index const q string d q string from latin1 data return d find rev rx index qcstring findrev qregexp qstring qstring fromlatin1 findrev int qc string contains char c bool cs const int count 0 char d data if d return 0 if cs case sensitive while d if d c count else case insensitive c tolower uchar c while d if tolower uchar d c count d return count qcstring int qc string contains const char str bool cs const int count 0 char d data if d return 0 int len qstrlen str while d counts overlapping strings if cs if qstrncmp d str len 0 count else if qstrnicmp d str len 0 count d return count qcstring int qc string contains const q reg exp rx const q string d q string from latin1 data return d contains rx qcstring qregexp qstring qstring fromlatin1 qc string qc string left uint len const if is empty qc string empty return empty else if len size qc string same data return same else qc string s len 1 strncpy s data data len s data len 0 return s qcstring qcstring isempty qcstring qcstring qcstring qc string qc string right uint len const if is empty qc string empty return empty else uint l length if len l len l char p data l len return qc string p qcstring qcstring isempty qcstring qcstring qc string qc string mid uint index uint len const if len 0xffffffff len length index uint slen qstrlen data if is empty index slen qc string empty return empty else register char p data index qc string s len 1 strncpy s data p len s data len 0 return s qcstring qcstring isempty qcstring qcstring qc string qc string lower const qc string s data register char p s data if p while p p tolower uchar p p return s qcstring qcstring qcstring qc string qc string upper const qc string s data register char p s data if p while p p toupper uchar p p return s qcstring qcstring qcstring qc string qc string strip white space const if is empty nothing to do return copy register char s data qc string result s int reslen result length if isspace uchar s 0 isspace uchar s reslen 1 return result returns a copy s result data int start 0 int end reslen 1 while isspace uchar s start skip white space from start start if s start 0 only white space result resize 1 return result while end isspace uchar s end skip white space from end end end start 1 memmove result data s start end result resize end 1 return result qcstring qcstring stripwhitespace isempty qcstring qc string qc string simplify white space const if is empty nothing to do return copy qc string result size char from data char to result data char first to while true while from isspace uchar from from while from isspace uchar from to from if from to 0x20 else break if to first to 1 0x20 to to 0 result resize int long to long result data 1 return result qcstring qcstring simplifywhitespace isempty qcstring qc string qc string insert uint index const char s int len qstrlen s if len 0 return this uint olen length int nlen olen len if index olen insert after end of string detach if q byte array resize nlen index olen 1 memset data olen index olen memcpy data index s len 1 else if q byte array resize nlen 1 normal insert detach memmove data index len data index olen index 1 memcpy data index s len return this qcstring qcstring qbytearray qbytearray qc string qc string insert uint index char c insert char char buf 2 buf 0 c buf 1 0 return insert index buf qcstring qcstring qc string qc string remove uint index uint len uint olen length if index len olen range problems if index olen index ok detach resize index 1 else if len 0 detach memmove data index data index len olen index len 1 q byte array resize olen len 1 return this qcstring qcstring qbytearray qc string qc string replace uint index uint len const char s remove index len insert index s return this qcstring qcstring qc string qc string replace const q reg exp rx const char str q string d q string from latin1 data q string r q string from latin1 str d replace rx r set str d ascii return this qcstring qcstring qregexp qstring qstring fromlatin1 qstring qstring fromlatin1 setstr short qc string to short bool ok const long v to long ok if ok ok v 32768 v 32767 ok false return short v qcstring toshort tolong ushort qc string tou short bool ok const ulong v tou long ok if ok ok v 65535 ok false return ushort v qcstring toushort toulong int qc string to int bool ok const return int to long ok qcstring toint tolong uint qc string tou int bool ok const return uint tou long ok qcstring touint toulong long qc string to long bool ok const char p data long val 0 const long max mult 214748364 bool is ok false int neg 0 if p goto bye while isspace uchar p skip leading space p if p p neg 1 else if p p if isdigit uchar p goto bye while isdigit uchar p if val max mult val max mult p 0 7 neg goto bye val 10 val p 0 if neg val val while isspace uchar p skip trailing space p if p 0 is ok true bye if ok ok is ok return is ok val 0 qcstring tolong max_mult is_ok max_mult max_mult is_ok is_ok is_ok ulong qc string tou long bool ok const char p data ulong val 0 const ulong max mult 429496729 bool is ok false if p goto bye while isspace uchar p skip leading space p if p p if isdigit uchar p goto bye while isdigit uchar p if val max mult val max mult p 0 5 goto bye val 10 val p 0 while isspace uchar p skip trailing space p if p 0 is ok true bye if ok ok is ok return is ok val 0 qcstring toulong max_mult is_ok max_mult max_mult is_ok is_ok is_ok qc string qc string set num long n detach char buf 20 register char p buf 19 bool neg if n 0 neg true n n else neg false p 0 do p int n 10 0 n 10 while n if neg p store p qstrlen p 1 return this qcstring qcstring setnum qc string qc string set num ulong n detach char buf 20 register char p buf 19 p 0 do p int n 10 0 n 10 while n store p qstrlen p 1 return this qcstring qcstring setnum qc string qc string set num double n char f int prec if defined check range if f f f f f e f e f g f g q warning qc string set num invalid format char c f endif char format 20 register char fs format generate format string fs prec l f if prec 99 prec 99 fs if prec 10 fs prec 10 0 fs prec 10 0 else fs prec 0 fs l fs f fs 0 return sprintf format n qcstring qcstring setnum check_range qwarning qcstring setnum qc string qc string operator const char str if str return this nothing to append detach uint len1 length uint len2 qstrlen str if q byte array resize len1 len2 1 return this no memory memcpy data len1 str len2 1 return this qcstring qcstring qbytearray qc string qc string operator char c detach uint len length if q byte array resize len 2 return this no memory data len c data len 1 0 return this qcstring qcstring qbytearray d shared null shared null make shared null d ref shared_null shared_null makesharednull inline q string q string if d deref if d shared null shared null 0 d delete self qstring qstring shared_null shared_null deleteself q char ref uint i optimized for easy inlining by simple compilers if d count 1 i d len subat i d dirtyascii 1 return d unicode i qchar d shared null shared null make shared null d ref shared_null shared_null makesharednull inline q string q string if d deref if d shared null shared null 0 d delete self qstring qstring shared_null shared_null deleteself q char ref uint i optimized for easy inlining by simple compilers if d count 1 i d len subat i d dirtyascii 1 return d unicode i qchar inline q char q char rw 0 cl 0 ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char char c rw 0 cl uchar c ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char uchar c rw 0 cl c ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char uchar c uchar r rw r cl c ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char const q char c rw c rw cl c cl ifdef qt qstring ucs 4 grp 0 endif qchar qchar qchar qt_qstring_ucs_4 inline q char q char ushort rc rw uchar rc 8 0xff cl uchar rc 0xff ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char short rc rw uchar rc 8 0xff cl uchar rc 0xff ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char uint rc rw uchar rc 8 0xff cl uchar rc 0xff ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char int rc rw uchar rc 8 0xff cl uchar rc 0xff ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char rw 0 cl 0 ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char char c rw 0 cl uchar c ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char uchar c rw 0 cl c ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char uchar c uchar r rw r cl c ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char const q char c rw c rw cl c cl ifdef qt qstring ucs 4 grp 0 endif qchar qchar qchar qt_qstring_ucs_4 inline q char q char ushort rc rw uchar rc 8 0xff cl uchar rc 0xff ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char short rc rw uchar rc 8 0xff cl uchar rc 0xff ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char uint rc rw uchar rc 8 0xff cl uchar rc 0xff ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline q char q char int rc rw uchar rc 8 0xff cl uchar rc 0xff ifdef qt qstring ucs 4 grp 0 endif qchar qchar qt_qstring_ucs_4 inline uint qg list count const return num nodes qglist numnodes inline bool qg list remove first first return remove qglist removefirst inline bool qg list remove last last return remove qglist removelast inline q collection item qg list at uint index ql node n locate index return n n data 0 qcollection qglist qlnode inline int qg list at const return cur index qglist curindex inline ql node qg list current node const return cur node qlnode qglist currentnode curnode inline q collection item qg list get const return cur node cur node data 0 qcollection qglist curnode curnode inline q collection item qg list cfirst const return first node first node data 0 qcollection qglist firstnode firstnode inline q collection item qg list clast const return last node last node data 0 qcollection qglist lastnode lastnode inline uint qg list count const return num nodes qglist numnodes inline bool qg list remove first first return remove qglist removefirst inline bool qg list remove last last return remove qglist removelast inline q collection item qg list at uint index ql node n locate index return n n data 0 qcollection qglist qlnode inline int qg list at const return cur index qglist curindex inline ql node qg list current node const return cur node qlnode qglist currentnode curnode inline q collection item qg list get const return cur node cur node data 0 qcollection qglist curnode curnode inline q collection item qg list cfirst const return first node first node data 0 qcollection qglist firstnode firstnode inline q collection item qg list clast const return last node last node data 0 qcollection qglist lastnode lastnode q data stream qg list read q data stream s uint num s num read number of items clear clear list while num read all items item d read s d check ptr d if d no memory break ql node n new ql node d check ptr n if n no memory break n next 0 if n prev last node list is not empty last node next n else initialize list first node n last node n num nodes cur node first node cur index cur node 0 1 return s qdatastream qglist qdatastream check_ptr qlnode qlnode check_ptr lastnode lastnode firstnode lastnode numnodes curnode firstnode curindex curnode q data stream qg list write q data stream s const s count write number of items ql node n first node while n write all items write s n data n n next return s qdatastream qglist qdatastream qlnode firstnode qg list qg list first node last node cur node 0 initialize list num nodes 0 cur index 1 iterators 0 initialize iterator list qglist qglist firstnode lastnode curnode numnodes curindex q collection list first node last node cur node 0 initialize list num nodes 0 cur index 1 iterators 0 initialize iterator list ql node n list first node while n copy all items from list append n data n n next qcollection firstnode lastnode curnode numnodes curindex qlnode firstnode qg list qg list clear if iterators no iterators for this list return qg list iterator i qg list iterator iterators first while i notify all iterators that i list 0 this list is deleted i cur node 0 i qg list iterator iterators next delete iterators qglist qglist qglistiterator qglistiterator curnode qglistiterator qg list qg list operator const qg list list clear if list count 0 ql node n list first node while n copy all items from list append n data n n next cur node first node cur index 0 return this qglist qglist qglist qlnode firstnode curnode firstnode curindex bool qg list operator const qg list list const if count list count return false if count 0 return true ql node n1 first node ql node n2 list first node while n1 n2 should be mutable if qg list this compare items n1 data n2 data 0 return false n1 n1 next n2 n2 next return true qglist qglist qlnode firstnode qlnode firstnode qglist compareitems void qg list in sort q collection item d int index 0 register ql node n first node while n compare items n data d 0 find position in list n n next index insert at index d qglist insort qcollection qlnode firstnode compareitems insertat void qg list append q collection item d register ql node n new ql node new item d check ptr n n next 0 if n prev last node list is not empty last node next n else initialize list first node n last node cur node n cur node affected cur index num nodes num nodes qglist qcollection qlnode qlnode newitem check_ptr lastnode lastnode firstnode lastnode curnode curnode curindex numnodes numnodes bool qg list insert at uint index q collection item d if index 0 insert at head of list prepend d return true else if index num nodes append at tail of list append d return true ql node next node locate index if next node illegal position return false ql node prev node next node prev register ql node n new ql node new item d check ptr n next node prev n prev node next n n prev prev node link new node into list n next next node cur node n cur index set by locate num nodes return true qglist insertat qcollection numnodes qlnode nextnode nextnode qlnode prevnode nextnode qlnode qlnode newitem check_ptr nextnode prevnode prevnode nextnode curnode curindex numnodes void qg list relink node ql node n if n first node already first return cur node n unlink n prev 0 if n next first node list is not empty first node prev n else initialize list last node n first node cur node n cur node affected num nodes cur index 0 qglist relinknode qlnode firstnode curnode firstnode firstnode lastnode firstnode curnode curnode numnodes curindex bool qg list remove node ql node n if defined check null if n 0 n prev n prev next n n next n next prev n q warning qg list remove node corrupted node return false endif cur node n unlink unlink node delete item n data deallocate this node delete n cur node first node cur index cur node 0 1 return true qglist removenode qlnode check_null qwarning qglist removenode curnode deleteitem curnode firstnode curindex curnode bool qg list remove q collection item d if d find the item if find d 1 return false ql node n unlink unlink node if n return false delete item n data deallocate this node delete n return true qglist qcollection qlnode deleteitem bool qg list remove ref q collection item d if d find the item if find ref d 1 return false ql node n unlink unlink node if n return false delete item n data deallocate this node delete n return true qglist removeref qcollection findref qlnode deleteitem bool qg list remove at uint index if locate index return false ql node n unlink unlink node if n return false delete item n data deallocate this node delete n return true qglist removeat qlnode deleteitem q collection item qg list take node ql node n if defined check null if n 0 n prev n prev next n n next n next prev n q warning qg list take node corrupted node return 0 endif cur node n unlink unlink node item d n data delete n delete the node not data cur node first node cur index cur node 0 1 return d qcollection qglist takenode qlnode check_null qwarning qglist takenode curnode curnode firstnode curindex curnode q collection item qg list take ql node n unlink unlink node item d n n data 0 delete n delete node keep contents return d qcollection qglist qlnode q collection item qg list take at uint index if locate index return 0 ql node n unlink unlink node item d n n data 0 delete n delete node keep contents return d qcollection qglist takeat qlnode q collection item qg list take first first ql node n unlink unlink node item d n n data 0 delete n return d qcollection qglist takefirst qlnode q collection item qg list take last last ql node n unlink unlink node item d n n data 0 delete n return d qcollection qglist takelast qlnode void qg list sort uint n count if n 2 return create the heap q collection item realheap new q collection item n wow what a fake but i want the heap to be indexed as 1 n q collection item heap realheap 1 int size 0 ql node insert first node for insert 0 insert insert next heap size insert data int i size while i 1 compare items heap i heap i 2 0 q collection item tmp heap i heap i heap i 2 heap i 2 tmp i 2 insert first node now do the sorting for int i n i 0 i insert data heap 1 insert insert next if i 1 heap 1 heap i heap sort push down heap 1 i 1 delete realheap qglist qcollection qcollection qcollection qlnode firstnode compareitems qcollection firstnode heapsortpushdown void qg list clear register ql node n first node first node last node cur node 0 initialize list num nodes 0 cur index 1 if iterators iterators count qg list iterator i qg list iterator iterators first while i notify all iterators that i cur node 0 this list is empty i qg list iterator iterators next ql node prev node while n for all nodes delete item n data deallocate data prev node n n n next delete prev node deallocate node qglist qlnode firstnode firstnode lastnode curnode numnodes curindex qglistiterator qglistiterator curnode qglistiterator qlnode prevnode deleteitem prevnode prevnode int qg list find ref q collection item d bool from start register ql node n int index if from start start from first node n first node index 0 else start from current node n cur node index cur index while n n data d find exact match n n next index cur node n cur index n index 1 return cur index return position of item qglist findref qcollection fromstart qlnode fromstart firstnode curnode curindex curnode curindex curindex int qg list find q collection item d bool from start register ql node n int index if from start start from first node n first node index 0 else start from current node n cur node index cur index while n compare items n data d find equal match n n next index cur node n cur index n index 1 return cur index return position of item qglist qcollection fromstart qlnode fromstart firstnode curnode curindex compareitems curnode curindex curindex uint qg list contains ref q collection item d const register ql node n first node uint count 0 while n for all nodes if n data d count exact matches count n n next return count qglist containsref qcollection qlnode firstnode uint qg list contains q collection item d const register ql node n first node uint count 0 qg list that qg list this mutable for compare items while n for all nodes if that compare items n data d count equal matches count n n next return count qglist qcollection qlnode firstnode qglist qglist compareitems compareitems q collection item qg list first if first node cur index 0 return cur node first node data return 0 qcollection qglist firstnode curindex curnode firstnode q collection item qg list last if last node cur index num nodes 1 return cur node last node data return 0 qcollection qglist lastnode curindex numnodes curnode lastnode q collection item qg list next if cur node if cur node next cur index cur node cur node next return cur node data cur index 1 cur node 0 return 0 qcollection qglist curnode curnode curindex curnode curnode curnode curindex curnode q collection item qg list prev if cur node if cur node prev cur index cur node cur node prev return cur node data cur index 1 cur node 0 return 0 qcollection qglist curnode curnode curindex curnode curnode curnode curindex curnode void qg list to vector qg vector vector const vector clear if vector resize count return register ql node n first node uint i 0 while n vector insert i n data n n next i qglist tovector qgvector qlnode firstnode int qg list compare items q collection item item1 q collection item item2 return item1 item2 compare pointers qglist compareitems qcollection qcollection q data stream qg list read q data stream s q collection item item item 0 return s qdatastream qglist qdatastream qcollection q data stream qg list write q data stream s q collection item const return s qdatastream qglist qdatastream qcollection void qg list prepend q collection item d register ql node n new ql node new item d check ptr n n prev 0 if n next first node list is not empty first node prev n else initialize list last node n first node cur node n cur node affected num nodes cur index 0 qglist qcollection qlnode qlnode newitem check_ptr firstnode firstnode lastnode firstnode curnode curnode numnodes curindex void qg list heap sort push down q collection item heap int first int last int r first while r last 2 node r has only one child if last 2 r need for swapping if compare items heap r heap 2 r 0 q collection item tmp heap r heap r heap 2 r heap 2 r tmp that s it r last else node has two children if compare items heap r heap 2 r 0 compare items heap 2 r heap 2 r 1 0 swap with left child q collection item tmp heap r heap r heap 2 r heap 2 r tmp r 2 else if compare items heap r heap 2 r 1 0 compare items heap 2 r 1 heap 2 r 0 swap with right child q collection item tmp heap r heap r heap 2 r 1 heap 2 r 1 tmp r 2 r 1 else we are done r last qglist heapsortpushdown qcollection compareitems qcollection compareitems compareitems qcollection compareitems compareitems qcollection ql node qg list locate uint index if index uint cur index current node return cur node if cur node first node set current node cur node first node cur index 0 register ql node node int distance index cur index node distance to cur node bool forward direction to traverse if index num nodes if defined check range q warning qg list locate index d out of range index endif return 0 if distance 0 distance distance if uint distance index uint distance num nodes index node cur node start from current node forward index uint cur index else if index num nodes index start from first node node first node distance index forward true else start from last node node last node distance num nodes index 1 if distance 0 distance 0 forward false if forward now run through nodes while distance node node next else while distance node node prev cur index index must update index return cur node node qlnode qglist curindex curnode curnode firstnode curnode firstnode curindex qlnode curindex numnodes check_range qwarning qglist numnodes curnode curindex numnodes firstnode lastnode numnodes curindex curnode ql node qg list unlink if cur node 0 null current node return 0 register ql node n cur node unlink this node if n first node removing first node if first node n next first node prev 0 else last node cur node 0 list becomes empty cur index 1 else if n last node removing last node last node n prev last node next 0 else neither last nor first node n prev next n next n next prev n prev if n next change current node cur node n next else if n prev cur node n prev cur index if iterators iterators count update iterators qg list iterator i qg list iterator iterators first while i fix all iterators that if i cur node n refers to pending node i cur node cur node i qg list iterator iterators next num nodes return n qlnode qglist curnode qlnode curnode firstnode firstnode firstnode lastnode curnode curindex lastnode lastnode lastnode curnode curnode curindex qglistiterator qglistiterator curnode curnode curnode qglistiterator numnodes inline bool qg list iterator at first const return cur node list first node qglistiterator atfirst curnode firstnode inline bool qg list iterator at last const return cur node list last node qglistiterator atlast curnode lastnode inline q collection item qg list iterator get const return cur node cur node data 0 qcollection qglistiterator curnode curnode inline bool qg list iterator at first const return cur node list first node qglistiterator atfirst curnode firstnode inline bool qg list iterator at last const return cur node list last node qglistiterator atlast curnode lastnode inline q collection item qg list iterator get const return cur node cur node data 0 qcollection qglistiterator curnode curnode qg list iterator qg list iterator const qg list l list qg list l get reference to list cur node list first node set to first node if list iterators list iterators new qg list create iterator list check ptr list iterators list iterators append this attach iterator to list qglistiterator qglistiterator qglist qglist curnode firstnode qglist check_ptr qg list iterator qg list iterator const qg list iterator it list it list cur node it cur node if list list iterators append this attach iterator to list qglistiterator qglistiterator qglistiterator curnode curnode qg list iterator qg list iterator operator const qg list iterator it if list detach from old list list iterators remove ref this list it list cur node it cur node if list list iterators append this attach to new list return this qglistiterator qglistiterator qglistiterator removeref curnode curnode qg list iterator qg list iterator if list detach iterator from list list iterators remove ref this qglistiterator qglistiterator removeref q collection item qg list iterator to first if list if defined check null q warning qg list iterator to first list has been deleted endif return 0 return list first node cur node list first node get data 0 qcollection qglistiterator tofirst check_null qwarning qglistiterator tofirst firstnode curnode firstnode getdata q collection item qg list iterator to last if list if defined check null q warning qg list iterator to last list has been deleted endif return 0 return list last node cur node list last node get data 0 qcollection qglistiterator tolast check_null qwarning qglistiterator tolast lastnode curnode lastnode getdata q collection item qg list iterator operator if cur node return 0 q collection item d cur node get data cur node cur node next return d qcollection qglistiterator curnode qcollection curnode getdata curnode curnode q collection item qg list iterator operator if cur node return 0 cur node cur node next return cur node cur node get data 0 qcollection qglistiterator curnode curnode curnode curnode curnode getdata q collection item qg list iterator operator uint jumps while cur node jumps cur node cur node next return cur node cur node get data 0 qcollection qglistiterator curnode curnode curnode curnode curnode getdata q collection item qg list iterator operator if cur node return 0 cur node cur node prev return cur node cur node get data 0 qcollection qglistiterator curnode curnode curnode curnode curnode getdata q collection item qg list iterator operator uint jumps while cur node jumps cur node cur node prev return cur node cur node get data 0 qcollection qglistiterator curnode curnode curnode curnode curnode getdata public q map private base node count 0 qmapprivatebase node_count q map private base const q map private base map node count map node count qmapprivatebase qmapprivatebase _map node_count _map node_count public q map private base node count 0 qmapprivatebase node_count q map private base const q map private base map node count map node count qmapprivatebase qmapprivatebase _map node_count _map node_count void q map private base rotate left node ptr x node ptr root node ptr y x right x right y left if y left 0 y left parent x y parent x parent if x root root y else if x x parent left x parent left y else x parent right y y left x x parent y qmapprivatebase rotateleft nodeptr nodeptr nodeptr void q map private base rotate right node ptr x node ptr root node ptr y x left x left y right if y right 0 y right parent x y parent x parent if x root root y else if x x parent right x parent right y else x parent left y y right x x parent y qmapprivatebase rotateright nodeptr nodeptr nodeptr void q map private base rebalance node ptr x node ptr root x color node red while x root x parent color node red if x parent x parent parent left node ptr y x parent parent right if y y color node red x parent color node black y color node black x parent parent color node red x x parent parent else if x x parent right x x parent rotate left x root x parent color node black x parent parent color node red rotate right x parent parent root else node ptr y x parent parent left if y y color node red x parent color node black y color node black x parent parent color node red x x parent parent else if x x parent left x x parent rotate right x root x parent color node black x parent parent color node red rotate left x parent parent root root color node black qmapprivatebase nodeptr nodeptr nodeptr rotateleft rotateright nodeptr rotateright rotateleft node ptr rightmost node ptr y z node ptr x node ptr x parent if y left 0 x y right else if y right 0 x y left else y y right while y left 0 y y left x y right if y z z left parent y y left z left if y z right x parent y parent if x x parent y parent y parent left x y right z right z right parent y else x parent y if root z root y else if z parent left z z parent left y else z parent right y y parent z parent swap the colors node color c y color y color z color z color c y z else x parent y parent if x x parent y parent if root z root x else if z parent left z z parent left x else z parent right x if leftmost z if z right 0 leftmost z parent else leftmost x minimum if rightmost z if z left 0 rightmost z parent else rightmost x maximum if y color node red while x root x 0 x color node black if x x parent left node ptr w x parent right if w color node red w color node black x parent color node red rotate left x parent root w x parent right if w left 0 w left color node black w right 0 w right color node black w color node red x x parent x parent x parent parent else if w right 0 w right color node black if w left w left color node black w color node red rotate right w root w x parent right w color x parent color x parent color node black if w right w right color node black rotate left x parent root break else node ptr w x parent left if w color node red w color node black x parent color node red rotate right x parent root w x parent left if w right 0 w right color node black w left 0 w left color node black w color node red x x parent x parent x parent parent else if w left 0 w left color node black if w right w right color node black w color node red rotate left w root w x parent left w color x parent color x parent color node black if w left w left color node black rotate right x parent root break if x x color node black return y nodeptr nodeptr nodeptr nodeptr x_parent x_parent x_parent x_parent x_parent nodeptr x_parent x_parent rotateleft x_parent x_parent x_parent x_parent x_parent rotateright x_parent x_parent x_parent rotateleft x_parent nodeptr x_parent x_parent rotateright x_parent x_parent x_parent x_parent x_parent rotateleft x_parent x_parent x_parent rotateright x_parent inline bool q xml simple reader is namechar const q char ch return ch ch ch ch is letter ch is digit ch is combiningchar ch is extender ch qxmlsimplereader is_namechar qchar _ is_letter is_digit is_combiningchar is_extender inline q string q xml simple reader string string value q string string array string pos string pos 0 return string value qstring qxmlsimplereader stringvalue qstring stringarray stringpos stringpos stringvalue inline void q xml simple reader string addc if string pos 256 string value q string string array string pos string pos 0 string array string pos c qxmlsimplereader stringaddc stringpos stringvalue qstring stringarray stringpos stringpos stringarray stringpos inline void q xml simple reader string addc const q char ch if string pos 256 string value q string string array string pos string pos 0 string array string pos ch qxmlsimplereader stringaddc qchar stringpos stringvalue qstring stringarray stringpos stringpos stringarray stringpos inline q string q xml simple reader name name value q string name array name pos name pos 0 return name value qstring qxmlsimplereader namevalue qstring namearray namepos namepos namevalue inline void q xml simple reader name addc if name pos 256 name value q string name array name pos name pos 0 name array name pos c qxmlsimplereader nameaddc namepos namevalue qstring namearray namepos namepos namearray namepos inline void q xml simple reader name addc const q char ch if name pos 256 name value q string name array name pos name pos 0 name array name pos ch qxmlsimplereader nameaddc qchar namepos namevalue qstring namearray namepos namepos namearray namepos inline q string q xml simple reader ref ref value q string ref array ref pos ref pos 0 return ref value qstring qxmlsimplereader refvalue qstring refarray refpos refpos refvalue inline void q xml simple reader ref addc if ref pos 256 ref value q string ref array ref pos ref pos 0 ref array ref pos c qxmlsimplereader refaddc refpos refvalue qstring refarray refpos refpos refarray refpos inline void q xml simple reader ref addc const q char ch if ref pos 256 ref value q string ref array ref pos ref pos 0 ref array ref pos ch qxmlsimplereader refaddc qchar refpos refvalue qstring refarray refpos refpos refarray refpos inline void q xml simple reader next if xml ref is empty c xml ref 0 xml ref remove 0 1 else if c n c r line nr column nr 1 if pos xml length c qeof else c xml pos column nr pos qxmlsimplereader xmlref isempty xmlref xmlref linenr columnnr xmllength columnnr q xml simple reader q xml simple reader d new q xml simple reader private d locator new q xml locator this entity res 0 dtd hnd 0 content hnd 0 error hnd 0 lexical hnd 0 decl hnd 0 default feature settings d use namespaces true d use namespace prefixes false d report whitespace char data true qxmlsimplereader qxmlsimplereader qxmlsimplereaderprivate qxmllocator entityres dtdhnd contenthnd errorhnd lexicalhnd declhnd usenamespaces usenamespaceprefixes reportwhitespacechardata q xml simple reader q xml simple reader delete d locator delete d qxmlsimplereader qxmlsimplereader bool q xml simple reader feature const q string name bool ok const if ok 0 ok true if name http xml org sax features namespaces return d use namespaces else if name http xml org sax features namespace prefixes return d use namespace prefixes else if name http trolltech com xml features report whitespace only char data return d report whitespace char data else q warning unknown feature name if ok 0 ok false return false qxmlsimplereader qstring usenamespaces usenamespaceprefixes chardata reportwhitespacechardata qwarning void q xml simple reader set feature const q string name bool value if name http xml org sax features namespaces d use namespaces value else if name http xml org sax features namespace prefixes d use namespace prefixes value else if name http trolltech com xml features report whitespace only char data d report whitespace char data value else q warning unknown feature name qxmlsimplereader setfeature qstring usenamespaces usenamespaceprefixes chardata reportwhitespacechardata qwarning bool q xml simple reader has feature const q string name const if name http xml org sax features namespaces name http xml org sax features namespace prefixes name http trolltech com xml features report whitespace only char data return true else return false qxmlsimplereader hasfeature qstring chardata void q xml simple reader property const q string bool ok const if ok 0 ok false return 0 qxmlsimplereader qstring void q xml simple reader set property const q string void qxmlsimplereader setproperty qstring bool q xml simple reader has property const q string const return false qxmlsimplereader hasproperty qstring bool q xml simple reader parse const q xml input source input init input call the handler if content hnd content hnd set document locator d locator if content hnd start document d error content hnd error string goto parse error parse prolog if parse prolog d error xmlerr errorparsingprolog goto parse error parse element if parse element d error xmlerr errorparsingmainelement goto parse error parse misc while at end if parse misc d error xmlerr errorparsingmisc goto parse error is stack empty if tags is empty d error xmlerr unexpectedeof goto parse error call the handler if content hnd if content hnd end document d error content hnd error string goto parse error return true error handling parse error report parse error tags clear return false qxmlsimplereader qxmlinputsource contenthnd contenthnd setdocumentlocator contenthnd startdocument contenthnd errorstring parseerror parseprolog xmlerr_errorparsingprolog parseerror parseelement xmlerr_errorparsingmainelement parseerror atend parsemisc xmlerr_errorparsingmisc parseerror isempty xmlerr_unexpectedeof parseerror contenthnd contenthnd enddocument contenthnd errorstring parseerror parseerror reportparseerror inline bool q xml simple reader is namechar const q char ch return ch ch ch ch is letter ch is digit ch is combiningchar ch is extender ch qxmlsimplereader is_namechar qchar _ is_letter is_digit is_combiningchar is_extender inline q string q xml simple reader string string value q string string array string pos string pos 0 return string value qstring qxmlsimplereader stringvalue qstring stringarray stringpos stringpos stringvalue inline void q xml simple reader string addc if string pos 256 string value q string string array string pos string pos 0 string array string pos c qxmlsimplereader stringaddc stringpos stringvalue qstring stringarray stringpos stringpos stringarray stringpos inline void q xml simple reader string addc const q char ch if string pos 256 string value q string string array string pos string pos 0 string array string pos ch qxmlsimplereader stringaddc qchar stringpos stringvalue qstring stringarray stringpos stringpos stringarray stringpos inline q string q xml simple reader name name value q string name array name pos name pos 0 return name value qstring qxmlsimplereader namevalue qstring namearray namepos namepos namevalue inline void q xml simple reader name addc if name pos 256 name value q string name array name pos name pos 0 name array name pos c qxmlsimplereader nameaddc namepos namevalue qstring namearray namepos namepos namearray namepos inline void q xml simple reader name addc const q char ch if name pos 256 name value q string name array name pos name pos 0 name array name pos ch qxmlsimplereader nameaddc qchar namepos namevalue qstring namearray namepos namepos namearray namepos inline q string q xml simple reader ref ref value q string ref array ref pos ref pos 0 return ref value qstring qxmlsimplereader refvalue qstring refarray refpos refpos refvalue inline void q xml simple reader ref addc if ref pos 256 ref value q string ref array ref pos ref pos 0 ref array ref pos c qxmlsimplereader refaddc refpos refvalue qstring refarray refpos refpos refarray refpos inline void q xml simple reader ref addc const q char ch if ref pos 256 ref value q string ref array ref pos ref pos 0 ref array ref pos ch qxmlsimplereader refaddc qchar refpos refvalue qstring refarray refpos refpos refarray refpos inline void q xml simple reader next if xml ref is empty c xml ref 0 xml ref remove 0 1 else if c n c r line nr column nr 1 if pos xml length c qeof else c xml pos column nr pos qxmlsimplereader xmlref isempty xmlref xmlref linenr columnnr xmllength columnnr void q xml simple reader init const q xml input source i xml i data xml length xml length xml ref d extern parameter entities clear d parameter entities clear d extern entities clear d entities clear tags clear d doctype d xml version d encoding d standalone q xml simple reader private unknown line nr 0 column nr 1 pos 0 next d error xmlerr ok qxmlsimplereader qxmlinputsource xmllength xmlref externparameterentities parameterentities externentities xmlversion qxmlsimplereaderprivate linenr columnnr xmlerr_ok bool q xml simple reader entity exist const q string e const if d parameter entities find e d parameter entities end d extern parameter entities find e d extern parameter entities end return false else return true qxmlsimplereader entityexist qstring parameterentities parameterentities externparameterentities externparameterentities bool q xml simple reader parse prolog bool xmldecl possible true bool doctype read false const signed char init 0 const signed char eatws 1 eat white spaces const signed char lt 2 read const signed char em 3 read const signed char doc type 4 read doctype const signed char comment 5 read comment const signed char pi 6 read pi const signed char done 7 const signed char inp ws 0 const signed char inp lt 1 const signed char inp qm 2 const signed char inp em 3 const signed char inpd 4 d const signed char inp dash 5 const signed char inp unknown 6 use some kind of state machine for parsing static signed char table 7 7 inp ws inp lt inp qm inp em inpd inp dash inp unknown eatws lt 1 1 1 1 1 init 1 lt 1 1 1 1 1 eatws 1 1 pi em done 1 done lt 1 1 1 1 doc type comment 1 em eatws lt 1 1 1 1 1 doc type eatws lt 1 1 1 1 1 comment eatws lt 1 1 1 1 1 pi signed char state init signed char input bool parse ok true while true read input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inp lt else if c input inp qm else if c input inp em else if c d input inpd else if c input inp dash else input inp unknown get new state state table state input in some cases do special actions depending on state switch state case eatws xml declaration only on first position possible xmldecl possible false eat white spaces eat ws break case lt next character next break case em xml declaration only on first position possible xmldecl possible false next character next break case doc type parse ok parse doctype break case comment parse ok parse comment break case pi parse ok parsepi xmldecl possible break no input is read after this switch state case doc type if parse ok d error xmlerr errorparsingprolog goto parse error if doctype read d error xmlerr morethanonedoctype goto parse error else doctype read false break case comment if parse ok d error xmlerr errorparsingprolog goto parse error if lexical hnd if lexical hnd comment string d error lexical hnd error string goto parse error break case pi if parse ok d error xmlerr errorparsingprolog goto parse error call the handler if content hnd if xmldecl possible d xml version is empty q string value version value d xml version value if d encoding is empty value encoding value d encoding value if d standalone q xml simple reader private yes value standalone yes else if d standalone q xml simple reader private no value standalone no if content hnd processing instruction xml value d error content hnd error string goto parse error else if content hnd processing instruction name string d error content hnd error string goto parse error xml declaration only on first position possible xmldecl possible false break case done return true case 1 d error xmlerr errorparsingelement goto parse error return true parse error report parse error return false qxmlsimplereader parseprolog xmldecl_possible doctype_read doctype inpws inplt inpqm inpem inpdash inpunknown inpws inplt inpqm inpem inpdash inpunknown doctype doctype parseok atend xmlerr_unexpectedeof parseerror is_s inpws inplt inpqm inpem inpdash inpunknown xmldecl_possible eat_ws xmldecl_possible doctype parseok parsedoctype parseok parsecomment parseok xmldecl_possible doctype parseok xmlerr_errorparsingprolog parseerror doctype_read xmlerr_morethanonedoctype parseerror doctype_read parseok xmlerr_errorparsingprolog parseerror lexicalhnd lexicalhnd lexicalhnd errorstring parseerror parseok xmlerr_errorparsingprolog parseerror contenthnd xmldecl_possible xmlversion isempty qstring xmlversion isempty qxmlsimplereaderprivate qxmlsimplereaderprivate contenthnd processinginstruction contenthnd errorstring parseerror contenthnd processinginstruction contenthnd errorstring parseerror xmldecl_possible xmlerr_errorparsingelement parseerror parseerror reportparseerror bool q xml simple reader parse element static q string uri lname prefix static bool t const signed char init 0 const signed char read name 1 const signed char ws1 2 const signed char s tag end 3 const signed char s tag end2 4 const signed char e tag begin 5 const signed char e tag begin2 6 const signed char ws2 7 const signed char empty tag 8 const signed char attribute 9 const signed char ws3 10 const signed char done 11 const signed char inp ws 0 whitespace const signed char inp name be 1 is namebeginning const signed char inp gt 2 const signed char inp slash 3 const signed char inp unknown 4 use some kind of state machine for parsing static signed char table 11 5 inp ws inp name be inp gt inp slash inp unknown 1 read name 1 1 1 init ws1 attribute s tag end empty tag 1 read name 1 attribute s tag end empty tag 1 ws1 s tag end2 s tag end2 s tag end2 s tag end2 s tag end2 s tag end 1 1 1 e tag begin 1 s tag end2 1 e tag begin2 1 1 1 e tag begin ws2 1 done 1 1 e tag begin2 1 1 done 1 1 ws2 1 1 done 1 1 empty tag ws3 attribute s tag end empty tag 1 attribute 1 attribute s tag end empty tag 1 ws3 signed char state init signed char input bool parse ok true while true read input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if is namebeginning c input inp name be else if c input inp gt else if c input inp slash else input inp unknown get new state q debug d d c d state input c latin1 table state input state table state input in some cases do special actions depending on state switch state case read name parse ok parse name break case ws1 case ws2 case ws3 eat ws break case s tag end call the handler if content hnd if d use namespaces d namespace support process name tags top false uri lname t content hnd start element uri lname tags top d att list else t content hnd start element tags top d att list if t d error content hnd error string goto parse error next break case s tag end2 parse ok parse content break case e tag begin next break case e tag begin2 get the name of the tag parse ok parse name break case empty tag if tags is empty d error xmlerr tagmismatch goto parse error if parse element empty tag t uri lname goto parse error next character next break case attribute get name and value of attribute parse ok parse attribute break case done next break no input is read after this switch state case read name if parse ok d error xmlerr errorparsingname goto parse error store it on the stack tags push name empty the attributes d att list qname list clear d att list uri list clear d att list localname list clear d att list value list clear namespace support if d use namespaces d namespace support push context break case s tag end2 if parse ok d error xmlerr errorparsingcontent goto parse error break case e tag begin2 if parse ok d error xmlerr errorparsingname goto parse error if parse elemente tag begin2 goto parse error break case attribute if parse ok d error xmlerr errorparsingattribute goto parse error if parse element attribute prefix uri lname goto parse error break case done return true case 1 d error xmlerr errorparsingelement goto parse error return true parse error report parse error return false qxmlsimplereader parseelement qstring readname stagend stagend2 etagbegin etagbegin2 emptytag inpws inpnamebe is_namebeginning inpgt inpslash inpunknown inpws inpnamebe inpgt inpslash inpunknown readname stagend emptytag readname stagend emptytag stagend2 stagend2 stagend2 stagend2 stagend2 stagend etagbegin stagend2 etagbegin2 etagbegin etagbegin2 emptytag stagend emptytag stagend emptytag parseok atend xmlerr_unexpectedeof parseerror is_s inpws is_namebeginning inpnamebe inpgt inpslash inpunknown qdebug readname parseok parsename eat_ws stagend contenthnd usenamespaces namespacesupport processname contenthnd startelement attlist contenthnd startelement attlist contenthnd errorstring parseerror stagend2 parseok parsecontent etagbegin etagbegin2 parseok parsename emptytag isempty xmlerr_tagmismatch parseerror parseelementemptytag parseerror parseok parseattribute readname parseok xmlerr_errorparsingname parseerror attlist qnamelist attlist urilist attlist localnamelist attlist valuelist usenamespaces namespacesupport pushcontext stagend2 parseok xmlerr_errorparsingcontent parseerror etagbegin2 parseok xmlerr_errorparsingname parseerror parseelementetagbegin2 parseerror parseok xmlerr_errorparsingattribute parseerror parseelementattribute parseerror xmlerr_errorparsingelement parseerror parseerror reportparseerror bool q xml simple reader parse element empty tag bool t q string uri q string lname pop the stack and call the handler if content hnd report start element first if d use namespaces d namespace support process name tags top false uri lname t content hnd start element uri lname tags top d att list else t content hnd start element tags top d att list if t d error content hnd error string return false followed by end element missing namespace support if content hnd end element tags pop d error content hnd error string return false namespace support if d use namespaces q string list prefixes before prefixes after if content hnd prefixes before d namespace support prefixes d namespace support pop context call the handler for prefix mapping if content hnd prefixes after d namespace support prefixes for q string list iterator it prefixes before begin it prefixes before end it if prefixes after contains it 0 if content hnd end prefix mapping it d error content hnd error string return false else tags pop return true qxmlsimplereader parseelementemptytag qstring qstring contenthnd startelement usenamespaces namespacesupport processname contenthnd startelement attlist contenthnd startelement attlist contenthnd errorstring endelement contenthnd endelement contenthnd errorstring usenamespaces qstringlist prefixesbefore prefixesafter contenthnd prefixesbefore namespacesupport namespacesupport popcontext contenthnd prefixesafter namespacesupport qstringlist prefixesbefore prefixesbefore prefixesafter contenthnd endprefixmapping contenthnd errorstring bool q xml simple reader parse elemente tag begin2 pop the stack and compare it with the name if tags pop name d error xmlerr tagmismatch return false call the handler missing namespace support if content hnd if content hnd end element name d error content hnd error string return false namespace support if d use namespaces q string list prefixes before prefixes after if content hnd prefixes before d namespace support prefixes d namespace support pop context call the handler for prefix mapping if content hnd prefixes after d namespace support prefixes for q string list iterator it prefixes before begin it prefixes before end it if prefixes after contains it 0 if content hnd end prefix mapping it d error content hnd error string return false return true qxmlsimplereader parseelementetagbegin2 xmlerr_tagmismatch contenthnd contenthnd endelement contenthnd errorstring usenamespaces qstringlist prefixesbefore prefixesafter contenthnd prefixesbefore namespacesupport namespacesupport popcontext contenthnd prefixesafter namespacesupport qstringlist prefixesbefore prefixesbefore prefixesafter contenthnd endprefixmapping contenthnd errorstring bool q xml simple reader parse element attribute q string prefix q string uri q string lname add the attribute to the list if d use namespaces is it a namespace declaration d namespace support split name name prefix lname if prefix xmlns namespace declaration d namespace support set prefix lname string if d use namespace prefixes d att list qname list append name d att list uri list append d att list localname list append d att list value list append string call the handler for prefix mapping if content hnd if content hnd start prefix mapping lname string d error content hnd error string return false else no namespace delcaration d namespace support process name name true uri lname d att list qname list append name d att list uri list append uri d att list localname list append lname d att list value list append string else no namespace support d att list qname list append name d att list uri list append d att list localname list append d att list value list append string return true qxmlsimplereader parseelementattribute qstring qstring qstring usenamespaces namespacesupport splitname namespacesupport setprefix usenamespaceprefixes attlist qnamelist attlist urilist attlist localnamelist attlist valuelist contenthnd contenthnd startprefixmapping contenthnd errorstring namespacesupport processname attlist qnamelist attlist urilist attlist localnamelist attlist valuelist attlist qnamelist attlist urilist attlist localnamelist attlist valuelist bool q xml simple reader parse misc const signed char init 0 const signed char lt 1 was read const signed char comment 2 read comment const signed char eatws 3 eat whitespaces const signed char pi 4 read pi const signed char comment2 5 read comment const signed char inp ws 0 s const signed char inp lt 1 const signed char inp qm 2 const signed char inp em 3 const signed char inp unknown 4 use some kind of state machine for parsing static signed char table 3 5 inp ws inp lt inp qm inp em inp unknown eatws lt 1 1 1 init 1 1 pi comment 1 lt 1 1 1 1 comment2 comment signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inp lt else if c input inp qm else if c input inp em else input inp unknown set state according to input state table state input do some actions according to state switch state case eatws eat ws break case lt next break case pi parse ok parsepi break case comment next break case comment2 parse ok parse comment break no input is read after this switch state case eatws return true case pi if parse ok d error xmlerr errorparsingpi goto parse error if content hnd if content hnd processing instruction name string d error content hnd error string goto parse error return true case comment2 if parse ok d error xmlerr errorparsingcomment goto parse error if lexical hnd if lexical hnd comment string d error lexical hnd error string goto parse error return true case 1 error d error xmlerr unexpectedcharacter goto parse error return true parse error report parse error return false qxmlsimplereader parsemisc inpws inplt inpqm inpem inpunknown inpws inplt inpqm inpem inpunknown parseok atend xmlerr_unexpectedeof parseerror is_s inpws inplt inpqm inpem inpunknown eat_ws parseok parseok parsecomment parseok xmlerr_errorparsingpi parseerror contenthnd contenthnd processinginstruction contenthnd errorstring parseerror parseok xmlerr_errorparsingcomment parseerror lexicalhnd lexicalhnd lexicalhnd errorstring parseerror xmlerr_unexpectedcharacter parseerror parseerror reportparseerror bool q xml simple reader parse content bool char data read false const signed char init 0 const signed char chd 1 char data const signed char chd1 2 char data help state const signed char chd2 3 char data help state const signed char ref 4 reference const signed char lt 5 read const signed char pi 6 pi const signed char elem 7 element const signed char em 8 read const signed char com 9 comment const signed char cds 10 cd sect const signed char cds1 11 read a cd sect const signed char cds2 12 read a cd sect help state const signed char cds3 13 read a cd sect help state const signed char done 14 finished reading content const signed char inp lt 0 const signed char inp gt 1 const signed char inp slash 2 const signed char inpq mark 3 const signed char inpe mark 4 const signed char inp amp 5 const signed char inp dash 6 const signed char inp openb 7 const signed char inp closeb 8 const signed char inp unknown 9 static signed char mapclt2fsm char inp unknown white space inp unknown inp amp inp gt inp lt inp slash inpq mark inpe mark inp dash inp closeb inp openb inp unknown inp unknown inp unknown inp unknown unknown use some kind of state machine for parsing static signed char const table 14 10 inp lt inp gt inp slash inpq mark inpe mark inp amp inp dash inp openb inp closeb inp unknown lt chd chd chd chd ref chd chd chd1 chd init lt chd chd chd chd ref chd chd chd1 chd chd lt chd chd chd chd ref chd chd chd2 chd chd1 lt 1 chd chd chd ref chd chd chd2 chd chd2 lt chd chd chd chd ref chd chd chd chd ref same as init 1 1 done pi em 1 1 1 1 elem lt lt chd chd chd chd ref chd chd chd chd pi same as init lt chd chd chd chd ref chd chd chd chd elem same as init 1 1 1 1 1 1 com cds 1 1 em lt chd chd chd chd ref chd chd chd chd com same as init cds1 cds1 cds1 cds1 cds1 cds1 cds1 cds1 cds2 cds1 cds cds1 cds1 cds1 cds1 cds1 cds1 cds1 cds1 cds2 cds1 cds1 cds1 cds1 cds1 cds1 cds1 cds1 cds1 cds1 cds3 cds1 cds2 cds1 init cds1 cds1 cds1 cds1 cds1 cds1 cds3 cds1 cds3 signed char state init signed char input bool parse ok true while true get input use lookup table instead of nested ifs for performance reasons if at end d error xmlerr unexpectedeof goto parse error if c row input inp unknown else input mapclt2fsm char char lookup table c cell set state according to input state table state input do some actions according to state switch state case init next character next break case chd on first call clear string if char data read char data read true string clear string addc next break case chd1 on first call clear string if char data read char data read true string clear string addc next break case chd2 string addc next break case ref if char data read reference may be char data so clear string to be safe string clear parse ok parse reference char data read in content else bool tmp parse ok parse reference tmp in content break case lt call the handler for char data if content hnd if char data read if d report whitespace char data string simplify white space is empty if content hnd characters string d error content hnd error string goto parse error char data read false next character next break case pi parse ok parsepi break case elem parse ok parse element break case em next character next break case com parse ok parse comment break case cds parse ok parse string cdata break case cds1 read one character and add it string addc next break case cds2 skip next break case cds3 skip next break no input is read after this switch state case ref if parse ok d error xmlerr errorparsingreference goto parse error break case pi if parse ok d error xmlerr errorparsingpi goto parse error call the handler if content hnd if content hnd processing instruction name string d error content hnd error string goto parse error break case elem if parse ok d error xmlerr errorparsingelement goto parse error break case com if parse ok d error xmlerr errorparsingcomment goto parse error if lexical hnd if lexical hnd comment string d error lexical hnd error string goto parse error break case cds if parse ok d error xmlerr cdsectheaderexpected goto parse error empty string string clear break case cds2 if c string addc break case cds3 test if this skipping was legal if c the end of the cd sect if lexical hnd if lexical hnd startcdata d error lexical hnd error string goto parse error if content hnd if content hnd characters string d error content hnd error string goto parse error if lexical hnd if lexical hnd endcdata d error lexical hnd error string goto parse error else if c three or more string addc else after comes another character string addc string addc break case done call the handler for char data if content hnd if char data read if d report whitespace char data string simplify white space is empty if content hnd characters string d error content hnd error string goto parse error done return true case 1 error d error xmlerr errorparsingcontent goto parse error return true parse error report parse error return false qxmlsimplereader parsecontent chardataread chardata chardata chardata cdsect cdsect cdsect cdsect inplt inpgt inpslash inpqmark inpemark inpamp inpdash inpopenb inpcloseb inpunknown mapclt2fsmchar inpunknown inpunknown inpamp inpgt inplt inpslash inpqmark inpemark inpdash inpcloseb inpopenb inpunknown inpunknown inpunknown inpunknown inplt inpgt inpslash inpqmark inpemark inpamp inpdash inpopenb inpcloseb inpunknown parseok atend xmlerr_unexpectedeof parseerror inpunknown mapclt2fsmchar charlookuptable chardataread chardataread stringclear stringaddc chardataread chardataread stringclear stringaddc stringaddc chardataread chardata stringclear parseok parsereference chardataread incontent parseok parsereference incontent chardata contenthnd chardataread reportwhitespacechardata simplifywhitespace isempty contenthnd contenthnd errorstring parseerror chardataread parseok parseok parseelement parseok parsecomment parseok parsestring stringaddc parseok xmlerr_errorparsingreference parseerror parseok xmlerr_errorparsingpi parseerror contenthnd contenthnd processinginstruction contenthnd errorstring parseerror parseok xmlerr_errorparsingelement parseerror parseok xmlerr_errorparsingcomment parseerror lexicalhnd lexicalhnd lexicalhnd errorstring parseerror parseok xmlerr_cdsectheaderexpected parseerror stringclear stringaddc cdsect lexicalhnd lexicalhnd lexicalhnd errorstring parseerror contenthnd contenthnd contenthnd errorstring parseerror lexicalhnd lexicalhnd lexicalhnd errorstring parseerror stringaddc stringaddc stringaddc chardata contenthnd chardataread reportwhitespacechardata simplifywhitespace isempty contenthnd contenthnd errorstring parseerror xmlerr_errorparsingcontent parseerror parseerror reportparseerror bool q xml simple reader parsepi bool xmldecl const signed char init 0 const signed char qmi 1 was read const signed char name 2 read name const signed char xml decl 3 read xml decl const signed char ws1 4 eat ws after xml of xml decl const signed char pi 5 read pi const signed char ws2 6 eat ws after name of pi const signed char version 7 read version info const signed char ws3 8 eat ws after version info const signed char eorsd 9 read e decl or sd decl const signed char ws4 10 eat ws after e decl or sd decl const signed char sd 11 read sd decl const signed char ws5 12 eat ws after sd decl const signed char a done 13 almost done const signed char char 14 char was read const signed char qm 15 qm was read const signed char done 16 finished reading content const signed char inp ws 0 whitespace const signed char inp name be 1 is namebeginning const signed char inp gt 2 const signed char inp qm 3 const signed char inp unknown 4 use some kind of state machine for parsing static signed char table 16 5 inp ws inp name be inp gt inp qm inp unknown 1 1 1 qmi 1 init 1 name 1 1 1 qmi 1 1 1 1 1 name this state is left not through input ws1 1 1 1 1 xml decl 1 version 1 1 1 ws1 ws2 1 1 qm 1 pi char char char qm char ws2 ws3 1 1 a done 1 version 1 eorsd 1 a done 1 ws3 ws4 1 1 a done 1 eorsd 1 sd 1 a done 1 ws4 ws5 1 1 a done 1 sd 1 1 1 a done 1 ws5 1 1 done 1 1 a done char char char qm char char char char done qm char qm signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if is namebeginning c input inp name be else if c input inp gt else if c input inp qm else input inp unknown set state according to input state table state input do some actions according to state switch state case qmi next break case name parse ok parse name break case ws1 case ws2 case ws3 case ws4 case ws5 eat ws break case version parse ok parse attribute break case eorsd parse ok parse attribute break case sd get the sd decl syntax like an attribute if d standalone q xml simple reader private unknown already parsed the standalone declaration d error xmlerr unexpectedcharacter goto parse error parse ok parse attribute break case a done next break case char string addc next break case qm skip the next break case done next break no input is read after this switch state case name if parse ok d error xmlerr errorparsingname goto parse error test what name was read and determine the next state not very beautiful i admit if name lower xml if xmldecl name xml state xml decl else d error xmlerr invalidnameforpi goto parse error else state pi string clear break case version get version syntax like an attribute if parse ok d error xmlerr versionexpected goto parse error if name version d error xmlerr versionexpected goto parse error d xml version string break case eorsd get the e decl or sd decl syntax like an attribute if parse ok d error xmlerr edeclorsddeclexpected goto parse error if name standalone if string yes d standalone q xml simple reader private yes else if string no d standalone q xml simple reader private no else d error xmlerr wrongvalueforsdecl goto parse error else if name encoding d encoding string else d error xmlerr edeclorsddeclexpected goto parse error break case sd if parse ok d error xmlerr sddeclexpected goto parse error if name standalone d error xmlerr sddeclexpected goto parse error if string yes d standalone q xml simple reader private yes else if string no d standalone q xml simple reader private no else d error xmlerr wrongvalueforsdecl goto parse error break case qm test if the skipping was legal if c string addc break case done return true case 1 error d error xmlerr unexpectedcharacter goto parse error return true parse error report parse error return false qxmlsimplereader xmldecl xmldecl xmldecl versioninfo versioninfo edecl sddecl edecl sddecl sddecl sddecl adone inpws inpnamebe is_namebeginning inpgt inpqm inpunknown inpws inpnamebe inpgt inpqm inpunknown xmldecl adone adone adone adone adone adone adone parseok atend xmlerr_unexpectedeof parseerror is_s inpws is_namebeginning inpnamebe inpgt inpqm inpunknown parseok parsename eat_ws parseok parseattribute parseok parseattribute sddecl qxmlsimplereaderprivate xmlerr_unexpectedcharacter parseerror parseok parseattribute adone stringaddc parseok xmlerr_errorparsingname parseerror xmldecl xmlerr_invalidnameforpi parseerror stringclear parseok xmlerr_versionexpected parseerror xmlerr_versionexpected parseerror xmlversion edecl sddecl parseok xmlerr_edeclorsddeclexpected parseerror qxmlsimplereaderprivate qxmlsimplereaderprivate xmlerr_wrongvalueforsdecl parseerror xmlerr_edeclorsddeclexpected parseerror parseok xmlerr_sddeclexpected parseerror xmlerr_sddeclexpected parseerror qxmlsimplereaderprivate qxmlsimplereaderprivate xmlerr_wrongvalueforsdecl parseerror stringaddc xmlerr_unexpectedcharacter parseerror parseerror reportparseerror bool q xml simple reader parse doctype some init stuff d system id q string null d public id q string null const signed char init 0 const signed char doctype 1 read the doctype const signed char ws1 2 eat ws const signed char doctype2 3 read the doctype part 2 const signed char ws2 4 eat ws const signed char sys 5 read system const signed char ws3 6 eat ws const signed char mp 7 markupdecl or pe reference const signed char per 8 per reference const signed char mup 9 markupdecl const signed char ws4 10 eat ws const signed char mpe 11 end of markupdecl or pe reference const signed char done 12 const signed char inp ws 0 const signed char inpd 1 d const signed char inps 2 s or p const signed char inpob 3 const signed char inpcb 4 const signed char inp per 5 const signed char inp gt 6 const signed char inp unknown 7 use some kind of state machine for parsing static signed char table 12 8 inp ws inpd inps inpob inpcb inp per inp gt inp unknown 1 doctype 1 1 1 1 1 1 init ws1 doctype2 doctype2 1 1 1 1 doctype2 doctype 1 doctype2 doctype2 1 1 1 1 doctype2 ws1 ws2 1 sys mp 1 1 done 1 doctype2 1 1 sys mp 1 1 done 1 ws2 ws3 1 1 mp 1 1 done 1 sys 1 1 1 mp 1 1 done 1 ws3 1 1 1 1 mpe per 1 mup mp ws4 1 1 1 mpe per 1 mup per ws4 1 1 1 mpe per 1 mup mup 1 1 1 1 mpe per 1 mup ws4 1 1 1 1 1 1 done 1 mpe signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c d input inpd else if c s input inps else if c p input inps else if c input inpob else if c input inpcb else if c input inp per else if c input inp gt else input inp unknown set state according to input state table state input do some actions according to state switch state case doctype parse ok parse string doctype break case ws1 case ws2 case ws3 case ws4 eat ws break case doctype2 parse name break case sys parse ok parse externalid break case mp next eat ws break case per parse ok parsepe reference indtd break case mup parse ok parse markupdecl break case mpe next eat ws break case done if lexical hnd if lexical hnd enddtd d error lexical hnd error string goto parse error next break no input is read after this switch state case doctype if parse ok d error xmlerr errorparsingdoctype goto parse error if is s c d error xmlerr errorparsingdoctype goto parse error break case doctype2 d doctype name if lexical hnd if lexical hnd startdtd d doctype d public id d system id d error lexical hnd error string goto parse error break case sys if parse ok d error xmlerr errorparsingdoctype goto parse error break case per if parse ok d error xmlerr errorparsingdoctype goto parse error break case mup if parse ok d error xmlerr errorparsingdoctype goto parse error break case done return true case 1 error d error xmlerr errorparsingdoctype goto parse error return true parse error report parse error return false qxmlsimplereader parsedoctype systemid qstring publicid qstring eat_ws eat_ws eat_ws pereference perreference eat_ws pereference inpws inpper inpgt inpunknown inpws inpper inpgt inpunknown parseok atend xmlerr_unexpectedeof parseerror is_s inpws inpper inpgt inpunknown parseok parsestring eat_ws parsename parseok parseexternalid next_eat_ws parseok parsepereference parseok parsemarkupdecl next_eat_ws lexicalhnd lexicalhnd lexicalhnd errorstring parseerror parseok xmlerr_errorparsingdoctype parseerror is_s xmlerr_errorparsingdoctype parseerror lexicalhnd lexicalhnd publicid systemid lexicalhnd errorstring parseerror parseok xmlerr_errorparsingdoctype parseerror parseok xmlerr_errorparsingdoctype parseerror parseok xmlerr_errorparsingdoctype parseerror xmlerr_errorparsingdoctype parseerror parseerror reportparseerror bool q xml simple reader parse comment const signed char init 0 const signed char dash1 1 the first dash was read const signed char dash2 2 the second dash was read const signed char com 3 read comment const signed char com2 4 read comment help state const signed char come 5 finished reading comment const signed char done 6 const signed char inp dash 0 const signed char inp gt 1 const signed char inp unknown 2 use some kind of state machine for parsing static signed char table 6 3 inp dash inp gt inp unknown dash1 1 1 init dash2 1 1 dash1 com2 com com dash2 com2 com com com come com com com2 1 done 1 come signed char state init signed char input while true get input if at end d error xmlerr unexpectedeof goto parse error if c input inp dash else if c input inp gt else input inp unknown set state according to input state table state input do some actions according to state switch state case dash1 next break case dash2 next break case com string addc next break case com2 next break case come next break case done next break no input is read after this switch state case dash2 string clear break case com2 if next character is not a dash than don t skip it if c string addc break case done return true case 1 error d error xmlerr errorparsingcomment goto parse error return true parse error report parse error return false qxmlsimplereader parsecomment inpdash inpgt inpunknown inpdash inpgt inpunknown atend xmlerr_unexpectedeof parseerror inpdash inpgt inpunknown stringaddc stringclear stringaddc xmlerr_errorparsingcomment parseerror parseerror reportparseerror bool q xml simple reader parse name bool use ref const signed char init 0 const signed char name1 1 parse first signed character of the name const signed char name 2 parse name const signed char done 3 const signed char inp name be 0 name beginning signed characters const signed char inp name ch 1 name char without inp name be const signed char inp unknown 2 use some kind of state machine for parsing static signed char table 3 3 inp name be inp name ch inp unknown name1 1 1 init name name done name1 name name done name signed char state init signed char input while true get input if at end d error xmlerr unexpectedeof goto parse error if is namebeginning c input inp name be else if is namechar c input inp name ch else input inp unknown set state according to input state table state input do some actions according to state switch state case name1 if use ref ref clear ref addc else name clear name addc next break case name if use ref ref addc else name addc next break no input is read after this switch state case done return true case 1 error d error xmlerr letterexpected goto parse error return true parse error report parse error return false qxmlsimplereader parsename useref inpnamebe inpnamech namechar inpnamebe inpunknown inpnamebe inpnamech inpunknown atend xmlerr_unexpectedeof parseerror is_namebeginning inpnamebe is_namechar inpnamech inpunknown useref refclear refaddc nameclear nameaddc useref refaddc nameaddc xmlerr_letterexpected parseerror parseerror reportparseerror bool q xml simple reader parse nmtoken const signed char init 0 const signed char namef 1 const signed char name 2 const signed char done 3 const signed char inp name ch 0 name char without inp name be const signed char inp unknown 1 use some kind of state machine for parsing static signed char table 3 2 inp name ch inp unknown namef 1 init name done namef name done name signed char state init signed char input while true get input if at end d error xmlerr unexpectedeof goto parse error if is namechar c input inp name ch else input inp unknown set state according to input state table state input do some actions according to state switch state case namef name clear name addc next break case name name addc next break no input is read after this switch state case done return true case 1 error d error xmlerr letterexpected goto parse error return true parse error report parse error return false qxmlsimplereader parsenmtoken inpnamech namechar inpnamebe inpunknown inpnamech inpunknown atend xmlerr_unexpectedeof parseerror is_namechar inpnamech inpunknown nameclear nameaddc nameaddc xmlerr_letterexpected parseerror parseerror reportparseerror bool q xml simple reader parse attribute const signed char init 0 const signed char p name 1 parse name const signed char ws 2 eat ws const signed char eq 3 the was read const signed char quotes 4 or were read const signed char inp name be 0 const signed char inp eq 1 const signed char inp dq 2 const signed char inp sq 3 const signed char inp unknown 4 use some kind of state machine for parsing static signed char table 4 5 inp name be inp eq inp dq inp sq inp unknown p name 1 1 1 1 init 1 eq 1 1 ws p name 1 eq 1 1 1 ws 1 1 quotes quotes 1 eq signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is namebeginning c input inp name be else if c input inp eq else if c input inp dq else if c input inp sq else input inp unknown set state according to input state table state input do some actions according to state switch state case p name parse ok parse name break case ws eat ws break case eq next eat ws break case quotes parse ok parse att value break no input is read after this switch state case p name if parse ok d error xmlerr errorparsingname goto parse error break case quotes if parse ok d error xmlerr errorparsingattvalue goto parse error done return true case 1 error d error xmlerr unexpectedcharacter goto parse error return true parse error report parse error return false qxmlsimplereader parseattribute pname inpnamebe inpeq inpdq inpsq inpunknown inpnamebe inpeq inpdq inpsq inpunknown pname pname parseok atend xmlerr_unexpectedeof parseerror is_namebeginning inpnamebe inpeq inpdq inpsq inpunknown pname parseok parsename eat_ws next_eat_ws parseok parseattvalue pname parseok xmlerr_errorparsingname parseerror parseok xmlerr_errorparsingattvalue parseerror xmlerr_unexpectedcharacter parseerror parseerror reportparseerror bool q xml simple reader parse reference bool char data read entity recognition context context temporary variables uint tmp bool ok const signed char init 0 const signed char s ref 1 start of a reference const signed char ch ref 2 parse char ref const signed char ch dec 3 parse char ref decimal const signed char ch hexs 4 start char ref hexadecimal const signed char ch hex 5 parse char ref hexadecimal const signed char name 6 parse name const signed char doned 7 done char ref decimal const signed char doneh 8 done char ref hexadecimal const signed char donen 9 done entity ref const signed char inp amp 0 const signed char inp semi 1 const signed char inp hash 2 const signed char inpx 3 x const signed char inp num 4 0 9 const signed char inp hex 5 a f a f const signed char inp unknown 6 use some kind of state machine for parsing static signed char table 8 7 inp amp inp semi inp hash inpx inp num inp hex inp unknown s ref 1 1 1 1 1 1 init 1 1 ch ref name name name name s ref 1 1 1 ch hexs ch dec 1 1 ch ref 1 doned 1 1 ch dec 1 1 ch dec 1 1 1 1 ch hex ch hex 1 ch hexs 1 doneh 1 1 ch hex ch hex 1 ch hex 1 donen 1 1 1 1 1 name signed char state init signed char input while true get input if at end d error xmlerr unexpectedeof goto parse error if c row input inp unknown else if c cell input inp amp else if c cell input inp semi else if c cell input inp hash else if c cell x input inpx else if 0 c cell c cell 9 input inp num else if a c cell c cell f input inp hex else if a c cell c cell f input inp hex else input inp unknown set state according to input state table state input do some actions according to state switch state case s ref ref clear next break case ch ref next break case ch dec ref addc next break case ch hexs next break case ch hex ref addc next break case name read the name into the ref parse name true break case doned tmp ref tou int ok 10 if ok string addc q char tmp else d error xmlerr errorparsingreference goto parse error char data read true next break case doneh tmp ref tou int ok 16 if ok string addc q char tmp else d error xmlerr errorparsingreference goto parse error char data read true next break case donen if process reference char data read context goto parse error next break no input is read after this switch state case doned return true case doneh return true case donen return true case 1 error d error xmlerr errorparsingreference goto parse error return true parse error report parse error return false qxmlsimplereader parsereference chardataread entityrecognitioncontext sref chref charref chdec charref chhexs charref chhex charref charref charref entityref inpamp inpsemi inphash inpnum inphex inpunknown inpamp inpsemi inphash inpnum inphex inpunknown sref chref sref chhexs chdec chref chdec chdec chhex chhex chhexs chhex chhex chhex atend xmlerr_unexpectedeof parseerror inpunknown inpamp inpsemi inphash inpnum inphex inphex inpunknown sref refclear chref chdec refaddc chhexs chhex refaddc parsename touint stringaddc qchar xmlerr_errorparsingreference parseerror chardataread touint stringaddc qchar xmlerr_errorparsingreference parseerror chardataread processreference chardataread parseerror xmlerr_errorparsingreference parseerror parseerror reportparseerror bool q xml simple reader process reference bool char data read entity recognition context context q string reference ref if reference amp if context in entity value bypassed string addc string addc a string addc m string addc p string addc else included or included in literal string addc char data read true else if reference lt if context in entity value bypassed string addc string addc l string addc t string addc else included or included in literal string addc char data read true else if reference gt if context in entity value bypassed string addc string addc g string addc t string addc else included or included in literal string addc char data read true else if reference apos if context in entity value bypassed string addc string addc a string addc p string addc o string addc s string addc else included or included in literal string addc char data read true else if reference quot if context in entity value bypassed string addc string addc q string addc u string addc o string addc t string addc else included or included in literal string addc char data read true else q map q string q string iterator it it d entities find reference if it d entities end internal general switch context case in content included xml ref it data xml ref char data read false break case in attribute value included in literal xml ref it data replace q reg exp quot replace q reg exp apos xml ref char data read false break case in entity value bypassed string addc for int i 0 i int reference length i string addc reference i string addc char data read true break case indtd forbidden d error xmlerr internalgeneralentityindtd char data read false break else q map q string q xml simple reader private extern entity iterator it extern it extern d extern entities find reference if it extern d extern entities end entity not declared check this case for conformance if context in entity value bypassed string addc for int i 0 i int reference length i string addc reference i string addc char data read true else if content hnd if content hnd skipped entity reference d error content hnd error string return false error else if it extern notation is null external parsed general switch context case in content included if validating if content hnd if content hnd skipped entity reference d error content hnd error string return false error char data read false break case in attribute value forbidden d error xmlerr externalgeneralentityinav char data read false break case in entity value bypassed string addc for int i 0 i int reference length i string addc reference i string addc char data read true break case indtd forbidden d error xmlerr externalgeneralentityindtd char data read false break else unparsed notify for occurs as attribute value missing but this is no refence anyway forbidden d error xmlerr unparsedentityreference char data read false return false error return true no error qxmlsimplereader processreference chardataread entityrecognitioncontext qstring inentityvalue stringaddc stringaddc stringaddc stringaddc stringaddc stringaddc chardataread inentityvalue stringaddc stringaddc stringaddc stringaddc stringaddc chardataread inentityvalue stringaddc stringaddc stringaddc stringaddc stringaddc chardataread inentityvalue stringaddc stringaddc stringaddc stringaddc stringaddc stringaddc stringaddc chardataread inentityvalue stringaddc stringaddc stringaddc stringaddc stringaddc stringaddc stringaddc chardataread qmap qstring qstring incontent xmlref xmlref chardataread inattributevalue xmlref qregexp qregexp xmlref chardataread inentityvalue stringaddc stringaddc stringaddc chardataread xmlerr_internalgeneralentityindtd chardataread qmap qstring qxmlsimplereaderprivate externentity itextern itextern externentities itextern externentities inentityvalue stringaddc stringaddc stringaddc chardataread contenthnd contenthnd skippedentity contenthnd errorstring itextern isnull incontent contenthnd contenthnd skippedentity contenthnd errorstring chardataread inattributevalue xmlerr_externalgeneralentityinav chardataread inentityvalue stringaddc stringaddc stringaddc chardataread xmlerr_externalgeneralentityindtd chardataread xmlerr_unparsedentityreference chardataread bool q xml simple reader parse externalid bool allow publicid some init stuff d system id q string null d public id q string null const signed char init 0 const signed char sys 1 parse system const signed char sysws 2 parse the whitespace after system const signed char syssq 3 parse system literal with const signed char syssq2 4 parse system literal with const signed char sysdq 5 parse system literal with const signed char sysdq2 6 parse system literal with const signed char pub 7 parse public const signed char pubws 8 parse the whitespace after public const signed char pubsq 9 parse pubid literal with const signed char pubsq2 10 parse pubid literal with const signed char pubdq 11 parse pubid literal with const signed char pubdq2 12 parse pubid literal with const signed char pube 13 finished parsing the pubid literal const signed char pubws2 14 parse the whitespace after the pubid literal const signed char p done 15 done if allow publicid is true const signed char done 16 const signed char inpsq 0 const signed char inpdq 1 const signed char inps 2 s const signed char inpp 3 p const signed char inp ws 4 white space const signed char inp unknown 5 use some kind of state machine for parsing static signed char table 15 6 inpsq inpdq inps inpp inp ws inp unknown 1 1 sys pub 1 1 init 1 1 1 1 sysws 1 sys syssq sysdq 1 1 1 1 sysws done syssq2 syssq2 syssq2 syssq2 syssq2 syssq done syssq2 syssq2 syssq2 syssq2 syssq2 syssq2 sysdq2 done sysdq2 sysdq2 sysdq2 sysdq2 sysdq sysdq2 done sysdq2 sysdq2 sysdq2 sysdq2 sysdq2 1 1 1 1 pubws 1 pub pubsq pubdq 1 1 1 1 pubws pube 1 pubsq2 pubsq2 pubsq2 pubsq2 pubsq pube 1 pubsq2 pubsq2 pubsq2 pubsq2 pubsq2 1 pube pubdq2 pubdq2 pubdq2 pubdq2 pubdq 1 pube pubdq2 pubdq2 pubdq2 pubdq2 pubdq2 p done p done p done p done pubws2 p done pube syssq sysdq p done p done p done p done pubws2 signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inpsq else if c input inpdq else if c s input inps else if c p input inpp else input inp unknown set state according to input state table state input do some actions according to state switch state case sys parse ok parse string system break case sysws eat ws break case syssq case sysdq string clear next break case syssq2 case sysdq2 string addc next break case pub parse ok parse string public break case pubws eat ws break case pubsq case pubdq string clear next break case pubsq2 case pubdq2 string addc next break case pube next break case pubws2 d public id string eat ws break case done d system id string next break no input is read after this switch state case sys if parse ok d error xmlerr unexpectedcharacter goto parse error break case pub if parse ok d error xmlerr unexpectedcharacter goto parse error break case p done if allow publicid d public id string return true else d error xmlerr unexpectedcharacter goto parse error break case done return true case 1 error d error xmlerr unexpectedcharacter goto parse error return true parse error report parse error return false qxmlsimplereader parseexternalid allowpublicid systemid qstring publicid qstring systemliteral systemliteral systemliteral systemliteral pubidliteral pubidliteral pubidliteral pubidliteral pubidliteral pubidliteral pdone allowpublicid inpws inpunknown inpws inpunknown pdone pdone pdone pdone pdone pdone pdone pdone pdone parseok atend xmlerr_unexpectedeof parseerror is_s inpws inpunknown parseok parsestring eat_ws stringclear stringaddc parseok parsestring eat_ws stringclear stringaddc publicid eat_ws systemid parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror pdone allowpublicid publicid xmlerr_unexpectedcharacter parseerror xmlerr_unexpectedcharacter parseerror parseerror reportparseerror bool q xml simple reader parsepe reference entity recognition context context const signed char init 0 const signed char next 1 const signed char name 2 const signed char done 3 const signed char inp semi 0 const signed char inp per 1 const signed char inp unknown 2 use some kind of state machine for parsing static signed char table 3 3 inp semi inp per inp unknown 1 next 1 init 1 1 name next done 1 1 name signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if c input inp semi else if c input inp per else input inp unknown set state according to input state table state input do some actions according to state switch state case next next break case name parse ok parse name true break case done next break no input is read after this switch state case name if parse ok d error xmlerr errorparsingname goto parse error if d parameter entities find ref d parameter entities end skip it if content hnd if content hnd skipped entity q string ref d error content hnd error string goto parse error else if context in entity value included in literal xml ref d parameter entities find ref data replace q reg exp quot replace q reg exp apos xml ref else if context indtd included as pe xml ref q string d parameter entities find ref data q string xml ref break case done return true case 1 error d error xmlerr letterexpected goto parse error return true parse error report parse error return false qxmlsimplereader parsepereference entityrecognitioncontext inpsemi inpper inpunknown inpsemi inpper inpunknown parseok atend xmlerr_unexpectedeof parseerror inpsemi inpper inpunknown parseok parsename parseok xmlerr_errorparsingname parseerror parameterentities parameterentities contenthnd contenthnd skippedentity qstring contenthnd errorstring parseerror inentityvalue xmlref parameterentities qregexp qregexp xmlref xmlref qstring parameterentities qstring xmlref xmlerr_letterexpected parseerror parseerror reportparseerror bool q xml simple reader parse markupdecl const signed char init 0 const signed char lt 1 was read const signed char em 2 was read const signed char ce 3 e was read const signed char qm 4 was read const signed char dash 5 was read const signed char ca 6 a was read const signed char cel 7 el was read const signed char cen 8 en was read const signed char cn 9 n was read const signed char done 10 const signed char inp lt 0 const signed char inp qm 1 const signed char inp em 2 const signed char inp dash 3 const signed char inpa 4 a const signed char inpe 5 e const signed char inpl 6 l const signed char inpn 7 n const signed char inp unknown 8 use some kind of state machine for parsing static signed char table 4 9 inp lt inp qm inp em inp dash inpa inpe inpl inpn inp unknown lt 1 1 1 1 1 1 1 1 init 1 qm em 1 1 1 1 1 1 lt 1 1 1 dash ca ce 1 cn 1 em 1 1 1 1 1 1 cel cen 1 ce signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if c input inp lt else if c input inp qm else if c input inp em else if c input inp dash else if c a input inpa else if c e input inpe else if c l input inpl else if c n input inpn else input inp unknown set state according to input state table state input do some actions according to state switch state case lt next break case em next break case ce next break case qm parse ok parsepi break case dash parse ok parse comment break case ca parse ok parse attlist decl break case cel parse ok parse element decl break case cen parse ok parse entity decl break case cn parse ok parse notation decl break no input is read after this switch state case qm if parse ok d error xmlerr errorparsingpi goto parse error if content hnd if content hnd processing instruction name string d error content hnd error string goto parse error return true case dash if parse ok d error xmlerr errorparsingcomment goto parse error if lexical hnd if lexical hnd comment string d error lexical hnd error string goto parse error return true case ca if parse ok d error xmlerr errorparsingattlistdecl goto parse error return true case cel if parse ok d error xmlerr errorparsingelementdecl goto parse error return true case cen if parse ok d error xmlerr errorparsingentitydecl goto parse error return true case cn if parse ok d error xmlerr errorparsingnotationdecl goto parse error return true case done return true case 1 error d error xmlerr letterexpected goto parse error return true parse error report parse error return false qxmlsimplereader parsemarkupdecl inplt inpqm inpem inpdash inpunknown inplt inpqm inpem inpdash inpunknown parseok atend xmlerr_unexpectedeof parseerror inplt inpqm inpem inpdash inpunknown parseok parseok parsecomment parseok parseattlistdecl parseok parseelementdecl parseok parseentitydecl parseok parsenotationdecl parseok xmlerr_errorparsingpi parseerror contenthnd contenthnd processinginstruction contenthnd errorstring parseerror parseok xmlerr_errorparsingcomment parseerror lexicalhnd lexicalhnd lexicalhnd errorstring parseerror parseok xmlerr_errorparsingattlistdecl parseerror parseok xmlerr_errorparsingelementdecl parseerror parseok xmlerr_errorparsingentitydecl parseerror parseok xmlerr_errorparsingnotationdecl parseerror xmlerr_letterexpected parseerror parseerror reportparseerror bool q xml simple reader parse attlist decl const signed char init 0 const signed char attlist 1 parse the string attlist const signed char ws 2 whitespace read const signed char name 3 parse name const signed char ws1 4 whitespace read const signed char attdef 5 parse the att def const signed char ws2 6 whitespace read const signed char atttype 7 parse the att type const signed char ws3 8 whitespace read const signed char d dech 9 default decl with const signed char def req 10 parse the string required const signed char def imp 11 parse the string implied const signed char def fix 12 parse the string fixed const signed char attval 13 parse the att value const signed char ws4 14 whitespace read const signed char done 15 const signed char inp ws 0 white space const signed char inp gt 1 const signed char inp hash 2 const signed char inpa 3 a const signed char inpi 4 i const signed char inpf 5 f const signed char inpr 6 r const signed char inp unknown 7 use some kind of state machine for parsing static signed char table 15 8 inp ws inp gt inp hash inpa inpi inpf inpr inp unknown 1 1 1 attlist 1 1 1 1 init ws 1 1 1 1 1 1 1 attlist 1 1 1 name name name name name ws ws1 done attdef attdef attdef attdef attdef attdef name 1 done attdef attdef attdef attdef attdef attdef ws1 ws2 1 1 1 1 1 1 1 attdef 1 atttype atttype atttype atttype atttype atttype atttype ws2 ws3 1 1 1 1 1 1 1 attype 1 attval d dech attval attval attval attval attval ws3 1 1 1 1 def imp def fix def req 1 d dech ws4 ws4 1 1 1 1 1 1 def req ws4 ws4 1 1 1 1 1 1 def imp ws3 1 1 1 1 1 1 1 def fix ws4 ws4 1 1 1 1 1 1 attval 1 done attdef attdef attdef attdef attdef attdef ws4 signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inp gt else if c input inp hash else if c a input inpa else if c i input inpi else if c f input inpf else if c r input inpr else input inp unknown set state according to input state table state input do some actions according to state switch state case attlist parse ok parse string attlist break case ws case ws1 case ws2 case ws3 eat ws break case name parse ok parse name break case attdef parse ok parse name break case atttype parse ok parse att type break case d dech next break case def req parse ok parse string required break case def imp parse ok parse string implied break case def fix parse ok parse string fixed break case attval parse ok parse att value break case ws4 if decl hnd todo not all values are computed yet if decl hnd attribute decl d att decle name d att decla name d error decl hnd error string goto parse error eat ws break case done next break no input is read after this switch state case attlist if parse ok d error xmlerr unexpectedcharacter goto parse error break case name if parse ok d error xmlerr errorparsingname goto parse error d att decle name name break case attdef if parse ok d error xmlerr errorparsingname goto parse error d att decla name name break case atttype if parse ok d error xmlerr errorparsingatttype goto parse error break case def req if parse ok d error xmlerr unexpectedcharacter goto parse error break case def imp if parse ok d error xmlerr unexpectedcharacter goto parse error break case def fix if parse ok d error xmlerr unexpectedcharacter goto parse error break case attval if parse ok d error xmlerr errorparsingattvalue goto parse error break case done return true case 1 error d error xmlerr letterexpected goto parse error return true parse error report parse error return false qxmlsimplereader parseattlistdecl attdef atttype ddech defaultdecl defreq defimp deffix attvalue inpws inpgt inphash inpunknown inpws inpgt inphash inpunknown ddech defimp deffix defreq ddech defreq defimp deffix parseok atend xmlerr_unexpectedeof parseerror is_s inpws inpgt inphash inpunknown parseok parsestring eat_ws parseok parsename parseok parsename parseok parseatttype ddech defreq parseok parsestring defimp parseok parsestring deffix parseok parsestring parseok parseattvalue declhnd declhnd attributedecl attdeclename attdeclaname declhnd errorstring parseerror eat_ws parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_errorparsingname parseerror attdeclename parseok xmlerr_errorparsingname parseerror attdeclaname parseok xmlerr_errorparsingatttype parseerror defreq parseok xmlerr_unexpectedcharacter parseerror defimp parseok xmlerr_unexpectedcharacter parseerror deffix parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_errorparsingattvalue parseerror xmlerr_letterexpected parseerror parseerror reportparseerror bool q xml simple reader parse att type const signed char init 0 const signed char st 1 string type const signed char tti 2 tokenized type starting with i const signed char tti2 3 tokenized type helpstate const signed char tti3 4 tokenized type helpstate const signed char tte 5 tokenized type starting with e const signed char ttey 6 tokenized type starting with entity const signed char ttei 7 tokenized type starting with entiti const signed char n 8 n read tokenized type or notation const signed char ttnm 9 tokenized type starting with nm const signed char ttnm2 10 tokenized type helpstate const signed char no 11 notation const signed char no2 12 notation helpstate const signed char no3 13 notation helpstate const signed char no name 14 notation read name const signed char no4 15 notation helpstate const signed char en 16 enumeration const signed char en nmt 17 enumeration read nmtoken const signed char en2 18 enumeration helpstate const signed char a done 19 almost done make next and accept const signed char done 20 const signed char inp ws 0 whitespace const signed char inp op 1 const signed char inp cp 2 const signed char inp pipe 3 const signed char inpc 4 c const signed char inpe 5 e const signed char inpi 6 i const signed char inpm 7 m const signed char inpn 8 n const signed char inpo 9 o const signed char inpr 10 r const signed char inps 11 s const signed char inpy 12 y const signed char inp unknown 13 use some kind of state machine for parsing static signed char table 19 14 inp ws inp op inp cp inp pipe inpc inpe inpi inpm inpn inpo inpr inps inpy inp unknown 1 en 1 1 st tte tti 1 n 1 1 1 1 1 init done done done done done done done done done done done done done done st done done done done done done done done done done tti2 done done done tti done done done done done done done done done done done tti3 done done tti2 done done done done done done done done done done done done done done tti3 1 1 1 1 1 1 ttei 1 1 1 1 1 ttey 1 tte done done done done done done done done done done done done done done ttey done done done done done done done done done done done done done done ttei 1 1 1 1 1 1 1 ttnm 1 no 1 1 1 1 n done done done done done done done done done done done ttnm2 done done ttnm done done done done done done done done done done done done done done ttnm2 no2 1 1 1 1 1 1 1 1 1 1 1 1 1 no 1 no3 1 1 1 1 1 1 1 1 1 1 1 1 no2 no name no name no name no name no name no name no name no name no name no name no name no name no name no name no3 no4 1 a done no3 1 1 1 1 1 1 1 1 1 1 no name 1 1 a done no3 1 1 1 1 1 1 1 1 1 1 no4 1 1 en nmt 1 en nmt en nmt en nmt en nmt en nmt en nmt en nmt en nmt en nmt en nmt en en2 1 a done en 1 1 1 1 1 1 1 1 1 1 en nmt 1 1 a done en 1 1 1 1 1 1 1 1 1 1 en2 signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inp op else if c input inp cp else if c input inp pipe else if c c input inpc else if c e input inpe else if c i input inpi else if c m input inpm else if c n input inpn else if c o input inpo else if c r input inpr else if c s input inps else if c y input inpy else input inp unknown set state according to input state table state input do some actions according to state switch state case st parse ok parse string cdata break case tti parse ok parse string id break case tti2 parse ok parse string ref break case tti3 next s break case tte parse ok parse string entit break case ttey next y break case ttei parse ok parse string ies break case n next n break case ttnm parse ok parse string mtoken break case ttnm2 next s break case no parse ok parse string otation break case no2 eat ws break case no3 next eat ws break case no name parse ok parse name break case no4 eat ws break case en next eat ws break case en nmt parse ok parse nmtoken break case en2 eat ws break case a done next break no input is read after this switch state case st if parse ok d error xmlerr unexpectedcharacter goto parse error break case tti if parse ok d error xmlerr unexpectedcharacter goto parse error break case tti2 if parse ok d error xmlerr unexpectedcharacter goto parse error break case tte if parse ok d error xmlerr unexpectedcharacter goto parse error break case ttei if parse ok d error xmlerr unexpectedcharacter goto parse error break case ttnm if parse ok d error xmlerr unexpectedcharacter goto parse error break case no if parse ok d error xmlerr unexpectedcharacter goto parse error break case no name if parse ok d error xmlerr errorparsingname goto parse error break case en nmt if parse ok d error xmlerr errorparsingnmtoken goto parse error break case a done return true case done return true case 1 error d error xmlerr letterexpected goto parse error return true parse error report parse error return false qxmlsimplereader parseatttype stringtype tokenizedtype tokenizedtype tokenizedtype tokenizedtype tokenizedtype tokenizedtype tokenizedtype tokenizedtype tokenizedtype noname ennmt adone inpws inpop inpcp inppipe inpunknown inpws inpop inpcp inppipe inpunknown noname noname noname noname noname noname noname noname noname noname noname noname noname noname adone noname adone ennmt ennmt ennmt ennmt ennmt ennmt ennmt ennmt ennmt ennmt ennmt adone ennmt adone parseok atend xmlerr_unexpectedeof parseerror is_s inpws inpop inpcp inppipe inpunknown parseok parsestring parseok parsestring parseok parsestring parseok parsestring parseok parsestring parseok parsestring parseok parsestring eat_ws next_eat_ws noname parseok parsename eat_ws next_eat_ws ennmt parseok parsenmtoken eat_ws adone parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror noname parseok xmlerr_errorparsingname parseerror ennmt parseok xmlerr_errorparsingnmtoken parseerror adone xmlerr_letterexpected parseerror parseerror reportparseerror bool q xml simple reader parse att value bool tmp const signed char init 0 const signed char dq 1 double quotes were read const signed char dq ref 2 read references in double quotes const signed char dqc 3 signed character read in double quotes const signed char sq 4 single quotes were read const signed char sq ref 5 read references in single quotes const signed char sqc 6 signed character read in single quotes const signed char done 7 const signed char inp dq 0 const signed char inp sq 1 const signed char inp amp 2 const signed char inp lt 3 const signed char inp unknown 4 use some kind of state machine for parsing static signed char table 7 5 inp dq inp sq inp amp inp lt inp unknown dq sq 1 1 1 init done dqc dq ref 1 dqc dq done dqc dq ref 1 dqc dq ref done dqc dq ref 1 dqc dqc sqc done sq ref 1 sqc sq sqc done sq ref 1 sqc sq ref sqc done sq ref 1 sqc sq ref signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if c input inp dq else if c input inp sq else if c input inp amp else if c input inp lt else input inp unknown set state according to input state table state input do some actions according to state switch state case dq case sq string clear next break case dq ref case sq ref parse ok parse reference tmp in attribute value break case dqc case sqc string addc next break case done next break no input is read after this switch state case dq ref case sq ref if parse ok d error xmlerr errorparsingreference goto parse error break case done return true case 1 error d error xmlerr unexpectedcharacter goto parse error return true parse error report parse error return false qxmlsimplereader parseattvalue dqref sqref inpdq inpsq inpamp inplt inpunknown inpdq inpsq inpamp inplt inpunknown dqref dqref dqref dqref sqref sqref sqref sqref sqref parseok atend xmlerr_unexpectedeof parseerror inpdq inpsq inpamp inplt inpunknown stringclear dqref sqref parseok parsereference inattributevalue stringaddc dqref sqref parseok xmlerr_errorparsingreference parseerror xmlerr_unexpectedcharacter parseerror parseerror reportparseerror bool q xml simple reader parse element decl const signed char init 0 const signed char elem 1 parse the beginning string const signed char ws1 2 whitespace required const signed char nam 3 parse name const signed char ws2 4 whitespace required const signed char empty 5 read empty const signed char any 6 read any const signed char cont 7 read contentspec except any or empty const signed char mix 8 read mixed const signed char mix2 9 const signed char mix3 10 const signed char mixn1 11 const signed char mixn2 12 const signed char mixn3 13 const signed char mixn4 14 const signed char cp 15 parse cp const signed char cp2 16 const signed char wsd 17 eat whitespace before done const signed char done 18 const signed char inp ws 0 const signed char inp gt 1 const signed char inp pipe 2 const signed char inp op 3 const signed char inp cp 4 const signed char inp hash 5 const signed char inp qm 6 const signed char inp ast 7 const signed char inp plus 8 const signed char inpa 9 a const signed char inpe 10 e const signed char inpl 11 l const signed char inp unknown 12 use some kind of state machine for parsing static signed char table 18 13 inp ws inp gt inp pipe inp op inp cp inp hash inp qm inp ast inp plus inpa inpe inpl inp unknown 1 1 1 1 1 1 1 1 1 1 1 elem 1 init ws1 1 1 1 1 1 1 1 1 1 1 1 1 elem 1 1 1 1 1 1 1 1 1 nam nam nam nam ws1 ws2 1 1 1 1 1 1 1 1 1 1 1 1 nam 1 1 1 cont 1 1 1 1 1 any empty 1 1 ws2 wsd done 1 1 1 1 1 1 1 1 1 1 1 empty wsd done 1 1 1 1 1 1 1 1 1 1 1 any 1 1 1 cp cp mix 1 1 1 cp cp cp cp cont mix2 1 mixn1 1 mix3 1 1 1 1 1 1 1 1 mix 1 1 mixn1 1 mix3 1 1 1 1 1 1 1 1 mix2 wsd done 1 1 1 1 1 wsd 1 1 1 1 1 mix3 1 1 1 1 1 1 1 1 1 mixn2 mixn2 mixn2 mixn2 mixn1 mixn3 1 mixn1 1 mixn4 1 1 1 1 1 1 1 1 mixn2 1 1 mixn1 1 mixn4 1 1 1 1 1 1 1 1 mixn3 1 1 1 1 1 1 1 wsd 1 1 1 1 1 mixn4 wsd done 1 1 1 1 cp2 cp2 cp2 1 1 1 1 cp wsd done 1 1 1 1 1 1 1 1 1 1 1 cp2 1 done 1 1 1 1 1 1 1 1 1 1 1 wsd signed char state init signed char input bool parse ok true while true read input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inp gt else if c input inp pipe else if c input inp op else if c input inp cp else if c input inp hash else if c input inp qm else if c input inp ast else if c input inp plus else if c a input inpa else if c e input inpe else if c l input inpl else input inp unknown get new state q debug d d c d state input c latin1 table state input state table state input in some cases do special actions depending on state switch state case elem parse ok parse string lement break case ws1 eat ws break case nam parse ok parse name break case ws2 eat ws break case empty parse ok parse string empty break case any parse ok parse string any break case cont next eat ws break case mix parse ok parse string pcdata break case mix2 eat ws break case mix3 next break case mixn1 next eat ws break case mixn2 parse ok parse name break case mixn3 eat ws break case mixn4 next break case cp parse ok parse choice seq break case cp2 next break case wsd next eat ws break case done next break no input is read after this switch state case elem if parse ok d error xmlerr unexpectedcharacter goto parse error break case nam if parse ok d error xmlerr errorparsingname goto parse error break case empty if parse ok d error xmlerr unexpectedcharacter goto parse error break case any if parse ok d error xmlerr unexpectedcharacter goto parse error break case mix if parse ok d error xmlerr unexpectedcharacter goto parse error break case mixn2 if parse ok d error xmlerr errorparsingname goto parse error break case cp if parse ok d error xmlerr errorparsingchoice goto parse error break case done return true case 1 d error xmlerr unexpectedcharacter goto parse error return true parse error report parse error return false qxmlsimplereader parseelementdecl inpws inpgt inppipe inpop inpcp inphash inpqm inpast inpplus inpunknown inpws inpgt inppipe inpop inpcp inphash inpqm inpast inpplus inpunknown parseok atend xmlerr_unexpectedeof parseerror is_s inpws inpgt inppipe inpop inpcp inphash inpqm inpast inpplus inpunknown qdebug parseok parsestring eat_ws parseok parsename eat_ws parseok parsestring parseok parsestring next_eat_ws parseok parsestring eat_ws next_eat_ws parseok parsename eat_ws parseok parsechoiceseq next_eat_ws parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_errorparsingname parseerror parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_errorparsingname parseerror parseok xmlerr_errorparsingchoice parseerror xmlerr_unexpectedcharacter parseerror parseerror reportparseerror bool q xml simple reader parse notation decl const signed char init 0 const signed char not 1 read notation const signed char ws1 2 eat whitespaces const signed char nam 3 read name const signed char ws2 4 eat whitespaces const signed char extid 5 parse externalid const signed char ws3 6 eat whitespaces const signed char done 7 const signed char inp ws 0 const signed char inp gt 1 const signed char inpn 2 n const signed char inp unknown 3 use some kind of state machine for parsing static signed char table 7 4 inp ws inp gt inpn inp unknown 1 1 not 1 init ws1 1 1 1 not 1 1 nam nam ws1 ws2 done 1 1 nam 1 done extid extid ws2 ws3 done 1 1 extid 1 done 1 1 ws3 signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inp gt else if c n input inpn else input inp unknown set state according to input state table state input do some actions according to state switch state case not parse ok parse string notation break case ws1 eat ws break case nam parse ok parse name break case ws2 eat ws break case extid parse ok parse externalid true break case ws3 eat ws break case done next break no input is read after this switch state case not if parse ok d error xmlerr unexpectedcharacter goto parse error break case nam if parse ok d error xmlerr errorparsingname goto parse error break case extid if parse ok d error xmlerr errorparsingexternalid goto parse error call the handler if dtd hnd if dtd hnd notation decl name d public id d system id d error dtd hnd error string goto parse error break case done return true case 1 error d error xmlerr unexpectedcharacter goto parse error return true parse error report parse error return false qxmlsimplereader parsenotationdecl inpws inpgt inpunknown inpws inpgt inpunknown parseok atend xmlerr_unexpectedeof parseerror is_s inpws inpgt inpunknown parseok parsestring eat_ws parseok parsename eat_ws parseok parseexternalid eat_ws parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_errorparsingname parseerror parseok xmlerr_errorparsingexternalid parseerror dtdhnd dtdhnd notationdecl publicid systemid dtdhnd errorstring parseerror xmlerr_unexpectedcharacter parseerror parseerror reportparseerror bool q xml simple reader parse choice seq const signed char init 0 const signed char ws1 1 eat whitespace const signed char cs 2 choice or set const signed char ws2 3 eat whitespace const signed char more 4 more cp to read const signed char name 5 read name const signed char done 6 const signed char inp ws 0 s const signed char inp op 1 const signed char inp cp 2 const signed char inp qm 3 const signed char inp ast 4 const signed char inp plus 5 const signed char inp pipe 6 const signed char inp comm 7 const signed char inp unknown 8 use some kind of state machine for parsing static signed char table 6 9 inp ws inp op inp cp inp qm inp ast inp plus inp pipe inp comm inp unknown 1 ws1 1 1 1 1 1 1 name init 1 cs 1 1 1 1 1 1 cs ws1 ws2 1 done ws2 ws2 ws2 more more 1 cs 1 1 done 1 1 1 more more 1 ws2 1 ws1 1 1 1 1 1 1 name more same as init ws2 1 done ws2 ws2 ws2 more more 1 name same as cs signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inp op else if c input inp cp else if c input inp qm else if c input inp ast else if c input inp plus else if c input inp pipe else if c input inp comm else input inp unknown set state according to input state table state input do some actions according to state switch state case ws1 next eat ws break case cs parse ok parse choice seq break case ws2 next eat ws break case more next eat ws break case name parse ok parse name break case done next break no input is read after this switch state case cs if parse ok d error xmlerr errorparsingchoice goto parse error break case name if parse ok d error xmlerr errorparsingname goto parse error break case done return true case 1 error d error xmlerr unexpectedcharacter goto parse error return true parse error report parse error return false qxmlsimplereader parsechoiceseq inpws inpop inpcp inpqm inpast inpplus inppipe inpcomm inpunknown inpws inpop inpcp inpqm inpast inpplus inppipe inpcomm inpunknown parseok atend xmlerr_unexpectedeof parseerror is_s inpws inpop inpcp inpqm inpast inpplus inppipe inpcomm inpunknown next_eat_ws parseok parsechoiceseq next_eat_ws next_eat_ws parseok parsename parseok xmlerr_errorparsingchoice parseerror parseok xmlerr_errorparsingname parseerror xmlerr_unexpectedcharacter parseerror parseerror reportparseerror bool q xml simple reader parse entity decl const signed char init 0 const signed char ent 1 parse entity const signed char ws1 2 white space read const signed char name 3 parse name const signed char ws2 4 white space read const signed char e value 5 parse entity value const signed char extid 6 parse externalid const signed char ws3 7 white space read const signed char ndata 8 parse ndata const signed char ws4 9 white space read const signed char n nam 10 parse name const signed char pe dec 11 parse pe decl const signed char ws6 12 white space read const signed char pe nam 13 parse name const signed char ws7 14 white space read const signed char pe val 15 parse entity value const signed char peeid 16 parse externalid const signed char wse 17 white space read const signed char ed done 19 done but also report an external unparsed entity decl const signed char done 18 const signed char inp ws 0 white space const signed char inp per 1 const signed char inp quot 2 or const signed char inp gt 3 const signed char inpn 4 n const signed char inp unknown 5 use some kind of state machine for parsing static signed char table 18 6 inp ws inp per inp quot inp gt inpn inp unknown 1 1 1 1 ent 1 init ws1 1 1 1 1 1 ent 1 pe dec 1 1 name name ws1 ws2 1 1 1 1 1 name 1 1 e value 1 1 extid ws2 wse 1 1 done 1 1 e value ws3 1 1 ed done 1 1 extid 1 1 1 ed done ndata 1 ws3 ws4 1 1 1 1 1 ndata 1 1 1 1 n nam n nam ws4 wse 1 1 done 1 1 n nam ws6 1 1 1 1 1 pe dec 1 1 1 1 pe nam pe nam ws6 ws7 1 1 1 1 1 pe nam 1 1 pe val 1 1 peeid ws7 wse 1 1 done 1 1 pe val wse 1 1 done 1 1 peeid 1 1 1 done 1 1 wse signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if is s c input inp ws else if c input inp per else if c c input inp quot else if c input inp gt else if c n input inpn else input inp unknown set state according to input state table state input do some actions according to state switch state case ent parse ok parse string ntity break case ws1 eat ws break case name parse ok parse name break case ws2 eat ws break case e value parse ok parse entity value break case extid parse ok parse externalid break case ws3 eat ws break case ndata parse ok parse string ndata break case ws4 eat ws break case n nam parse ok parse name true break case pe dec next break case ws6 eat ws break case pe nam parse ok parse name break case ws7 eat ws break case pe val parse ok parse entity value break case peeid parse ok parse externalid break case wse eat ws break case ed done next break case done next break no input is read after this switch state case ent if parse ok d error xmlerr unexpectedcharacter goto parse error break case name if parse ok d error xmlerr errorparsingname goto parse error break case e value if parse ok d error xmlerr errorparsingentityvalue goto parse error if entity exist name d entities insert name string if decl hnd if decl hnd internal entity decl name string d error decl hnd error string goto parse error break case extid if parse ok d error xmlerr errorparsingexternalid goto parse error break case ndata if parse ok d error xmlerr unexpectedcharacter goto parse error break case n nam if parse ok d error xmlerr errorparsingname goto parse error if entity exist name d extern entities insert name q xml simple reader private extern entity d public id d system id ref if dtd hnd if dtd hnd unparsed entity decl name d public id d system id ref d error decl hnd error string goto parse error break case pe nam if parse ok d error xmlerr errorparsingname goto parse error break case pe val if parse ok d error xmlerr errorparsingentityvalue goto parse error if entity exist name d parameter entities insert name string if decl hnd if decl hnd internal entity decl q string name string d error decl hnd error string goto parse error break case peeid if parse ok d error xmlerr errorparsingexternalid goto parse error if entity exist name d extern parameter entities insert name q xml simple reader private extern parameter entity d public id d system id if decl hnd if decl hnd external entity decl q string name d public id d system id d error decl hnd error string goto parse error break case ed done if entity exist name d extern entities insert name q xml simple reader private extern entity d public id d system id q string null if decl hnd if decl hnd external entity decl name d public id d system id d error decl hnd error string goto parse error return true case done return true case 1 error d error xmlerr letterexpected goto parse error return true parse error report parse error return false qxmlsimplereader parseentitydecl evalue nnam pedec pedecl penam peval eddone inpws inpper inpquot inpgt inpunknown inpws inpper inpquot inpgt inpunknown pedec evalue evalue eddone eddone nnam nnam nnam pedec penam penam penam peval peval parseok atend xmlerr_unexpectedeof parseerror is_s inpws inpper inpquot inpgt inpunknown parseok parsestring eat_ws parseok parsename eat_ws evalue parseok parseentityvalue parseok parseexternalid eat_ws parseok parsestring eat_ws nnam parseok parsename pedec eat_ws penam parseok parsename eat_ws peval parseok parseentityvalue parseok parseexternalid eat_ws eddone parseok xmlerr_unexpectedcharacter parseerror parseok xmlerr_errorparsingname parseerror evalue parseok xmlerr_errorparsingentityvalue parseerror entityexist declhnd declhnd internalentitydecl declhnd errorstring parseerror parseok xmlerr_errorparsingexternalid parseerror parseok xmlerr_unexpectedcharacter parseerror nnam parseok xmlerr_errorparsingname parseerror entityexist externentities qxmlsimplereaderprivate externentity publicid systemid dtdhnd dtdhnd unparsedentitydecl publicid systemid declhnd errorstring parseerror penam parseok xmlerr_errorparsingname parseerror peval parseok xmlerr_errorparsingentityvalue parseerror entityexist parameterentities declhnd declhnd internalentitydecl qstring declhnd errorstring parseerror parseok xmlerr_errorparsingexternalid parseerror entityexist externparameterentities qxmlsimplereaderprivate externparameterentity publicid systemid declhnd declhnd externalentitydecl qstring publicid systemid declhnd errorstring parseerror eddone entityexist externentities qxmlsimplereaderprivate externentity publicid systemid qstring declhnd declhnd externalentitydecl publicid systemid declhnd errorstring parseerror xmlerr_letterexpected parseerror parseerror reportparseerror bool q xml simple reader parse entity value bool tmp const signed char init 0 const signed char dq 1 entity value is double quoted const signed char dqc 2 signed character const signed char dqper 3 pe refence const signed char dq ref 4 reference const signed char sq 5 entity value is double quoted const signed char sqc 6 signed character const signed char sqper 7 pe refence const signed char sq ref 8 reference const signed char done 9 const signed char inp dq 0 const signed char inp sq 1 const signed char inp amp 2 const signed char inp per 3 const signed char inp unknown 4 use some kind of state machine for parsing static signed char table 9 5 inp dq inp sq inp amp inp per inp unknown dq sq 1 1 1 init done dqc dq ref dqper dqc dq done dqc dq ref dqper dqc dqc done dqc dq ref dqper dqc dqper done dqc dq ref dqper dqc dq ref sqc done sq ref sqper sqc sq sqc done sq ref sqper sqc sqc sqc done sq ref sqper sqc sqper sqc done sq ref sqper sqc sq ref signed char state init signed char input bool parse ok true while true get input if at end d error xmlerr unexpectedeof goto parse error if c input inp dq else if c input inp sq else if c input inp amp else if c input inp per else input inp unknown set state according to input state table state input do some actions according to state switch state case dq case sq string clear next break case dqc case sqc string addc next break case dqper case sqper parse ok parsepe reference in entity value break case dq ref case sq ref parse ok parse reference tmp in entity value break case done next break no input is read after this switch state case dqper case sqper if parse ok d error xmlerr errorparsingdoctype goto parse error break case dq ref case sq ref if parse ok d error xmlerr errorparsingreference goto parse error break case done return true case 1 error d error xmlerr letterexpected goto parse error return true parse error report parse error return false qxmlsimplereader parseentityvalue entityvalue perefence dqref entityvalue perefence sqref inpdq inpsq inpamp inpper inpunknown inpdq inpsq inpamp inpper inpunknown dqref dqref dqref dqref dqref sqref sqref sqref sqref sqref parseok atend xmlerr_unexpectedeof parseerror inpdq inpsq inpamp inpper inpunknown stringclear stringaddc parseok parsepereference inentityvalue dqref sqref parseok parsereference inentityvalue parseok xmlerr_errorparsingdoctype parseerror dqref sqref parseok xmlerr_errorparsingreference parseerror xmlerr_letterexpected parseerror parseerror reportparseerror bool q xml simple reader parse string const q string s signed char done s length const signed char inp char expected 0 the character that was expected const signed char inp unknown 1 signed char state 0 state in this function is the position in the string s signed char input while true get input if at end d error xmlerr unexpectedeof goto parse error if c s int state input inp char expected else input inp unknown set state according to input if input inp char expected state else error d error xmlerr unexpectedcharacter goto parse error do some actions according to state next no input is read after this if state done return true return true parse error report parse error return false qxmlsimplereader parsestring qstring inpcharexpected inpunknown atend xmlerr_unexpectedeof parseerror inpcharexpected inpunknown inpcharexpected xmlerr_unexpectedcharacter parseerror parseerror reportparseerror void q xml simple reader report parse error if error hnd error hnd fatal error q xml parse exception d error column nr 1 line nr 1 qxmlsimplereader reportparseerror errorhnd errorhnd fatalerror qxmlparseexception columnnr linenr inline q collection item qg dict iterator get const return cur node cur node get data 0 qcollection qgdictiterator curnode curnode getdata inline q string qg dict iterator get key string const return cur node q string bucket cur node get key q string null qstring qgdictiterator getkeystring curnode qstringbucket curnode getkey qstring inline const char qg dict iterator get key ascii const return cur node q ascii bucket cur node get key 0 qgdictiterator getkeyascii curnode qasciibucket curnode getkey inline long qg dict iterator get key int const return cur node q int bucket cur node get key 0 qgdictiterator getkeyint curnode qintbucket curnode getkey inline void qg dict iterator get key ptr const return cur node q ptr bucket cur node get key 0 qgdictiterator getkeyptr curnode qptrbucket curnode getkey inline q collection item qg dict iterator get const return cur node cur node get data 0 qcollection qgdictiterator curnode curnode getdata inline q string qg dict iterator get key string const return cur node q string bucket cur node get key q string null qstring qgdictiterator getkeystring curnode qstringbucket curnode getkey qstring inline const char qg dict iterator get key ascii const return cur node q ascii bucket cur node get key 0 qgdictiterator getkeyascii curnode qasciibucket curnode getkey inline long qg dict iterator get key int const return cur node q int bucket cur node get key 0 qgdictiterator getkeyint curnode qintbucket curnode getkey inline void qg dict iterator get key ptr const return cur node q ptr bucket cur node get key 0 qgdictiterator getkeyptr curnode qptrbucket curnode getkey qg dict iterator qg dict iterator const qg dict d dict qg dict d get reference to dict to first set to first noe if dict iterators dict iterators new qgd it list create iterator list check ptr dict iterators dict iterators append this attach iterator to dict qgdictiterator qgdictiterator qgdict qgdict tofirst qgditlist check_ptr qg dict iterator qg dict iterator const qg dict iterator it dict it dict cur node it cur node cur index it cur index if dict dict iterators append this attach iterator to dict qgdictiterator qgdictiterator qgdictiterator curnode curnode curindex curindex qg dict iterator qg dict iterator operator const qg dict iterator it if dict detach from old dict dict iterators remove ref this dict it dict cur node it cur node cur index it cur index if dict dict iterators append this attach to new list return this qgdictiterator qgdictiterator qgdictiterator removeref curnode curnode curindex curindex qg dict iterator qg dict iterator if dict detach iterator from dict dict iterators remove ref this qgdictiterator qgdictiterator removeref q collection item qg dict iterator to first if dict if defined check null q warning qg dict iterator to first dictionary has been deleted endif return 0 if dict count 0 empty dictionary cur node 0 return 0 register uint i 0 register q base bucket v dict vec while v i cur node dict vec i cur index i return cur node get data qcollection qgdictiterator tofirst check_null qwarning qgdictiterator tofirst curnode qbasebucket curnode curindex curnode getdata q collection item qg dict iterator operator if dict if defined check null q warning qg dict iterator operator dictionary has been deleted endif return 0 if cur node return 0 q collection item d cur node get data this operator return d qcollection qgdictiterator check_null qwarning qgdictiterator curnode qcollection curnode getdata q collection item qg dict iterator operator if dict if defined check null q warning qg dict iterator operator dictionary has been deleted endif return 0 if cur node return 0 cur node cur node get next if cur node no next bucket register uint i cur index 1 look from next vec element register q base bucket v dict vec i while i dict size v i if i dict size nothing found cur node 0 return 0 cur node dict vec i cur index i return cur node get data qcollection qgdictiterator check_null qwarning qgdictiterator curnode curnode curnode getnext curnode curindex qbasebucket curnode curnode curindex curnode getdata q collection item qg dict iterator operator uint jumps while cur node jumps operator return cur node cur node get data 0 qcollection qgdictiterator curnode curnode curnode getdata void compound handler start section const q xml attributes attrib section handler sect handler new section handler this sect handler start section attrib m sections append sect handler compoundhandler startsection qxmlattributes sectionhandler secthandler sectionhandler secthandler startsection m_sections secthandler void compound handler start compound const q xml attributes attrib m id attrib value id m kindstring attrib value kind m kind s typemap map m kindstring m protection attrib value prot debug 2 start compound id s type s n m id data m kindstring data compoundhandler startcompound qxmlattributes m_id m_kindstring m_kind s_typemap m_kindstring m_protection startcompound m_id m_kindstring void compound handler add super class const q xml attributes attrib i related compound protection prot i related compound public q string prot string attrib value prot if prot string protected prot i related compound protected else if prot string private prot i related compound private i related compound kind kind i related compound normal q string kind string attrib value virt if kind string virtual kind i related compound virtual related compound sc new related compound this attrib value refid prot kind debug 2 super class id s prot s virt s n attrib value refid data prot string data kind string data m superclasses append sc compoundhandler addsuperclass qxmlattributes irelatedcompound irelatedcompound qstring protstring protstring irelatedcompound protstring irelatedcompound irelatedcompound irelatedcompound qstring kindstring kindstring irelatedcompound relatedcompound relatedcompound protstring kindstring m_superclasses void compound handler add sub class const q xml attributes attrib i related compound protection prot i related compound public q string prot string attrib value prot if prot string protected prot i related compound protected else if prot string private prot i related compound private i related compound kind kind i related compound normal q string kind string attrib value virt if kind string virtual kind i related compound virtual related compound sc new related compound this attrib value refid prot kind debug 2 sub class id s prot s virt s n attrib value refid data prot string data kind string data m subclasses append sc compoundhandler addsubclass qxmlattributes irelatedcompound irelatedcompound qstring protstring protstring irelatedcompound protstring irelatedcompound irelatedcompound irelatedcompound qstring kindstring kindstring irelatedcompound relatedcompound relatedcompound protstring kindstring m_subclasses void compound handler end compound debug 2 end compound n compoundhandler endcompound endcompound void compound handler end compound name m name m curstring strip white space debug 2 compound name s n m name data compoundhandler endcompoundname m_name m_curstring stripwhitespace m_name void compound handler start brief desc const q xml attributes attrib doc handler doc handler new doc handler this doc handler start doc attrib m brief doc handler compoundhandler startbriefdesc qxmlattributes dochandler dochandler dochandler dochandler startdoc m_brief dochandler void compound handler start detailed desc const q xml attributes attrib doc handler doc handler new doc handler this doc handler start doc attrib m detailed doc handler compoundhandler startdetaileddesc qxmlattributes dochandler dochandler dochandler dochandler startdoc m_detailed dochandler void compound handler start location const q xml attributes attrib m deffile attrib value file m defline attrib value line to int m defbodystart attrib value bodystart to int m defbodyend attrib value bodyend to int compoundhandler startlocation qxmlattributes m_deffile m_defline toint m_defbodystart toint m_defbodyend toint void compound handler start program listing const q xml attributes attrib program listing handler pl handler new program listing handler this pl handler start program listing attrib m programlisting pl handler compoundhandler startprogramlisting qxmlattributes programlistinghandler plhandler programlistinghandler plhandler startprogramlisting m_programlisting plhandler void compound handler start inheritance graph const q xml attributes attrib m inheritancegraph new graph handler this inheritancegraph m inheritancegraph start graph attrib compoundhandler startinheritancegraph qxmlattributes m_inheritancegraph graphhandler m_inheritancegraph startgraph void compound handler start collaboration graph const q xml attributes attrib m collaborationgraph new graph handler this collaborationgraph m collaborationgraph start graph attrib compoundhandler startcollaborationgraph qxmlattributes m_collaborationgraph graphhandler m_collaborationgraph startgraph void compound handler start include dependency graph const q xml attributes attrib m includedependencygraph new graph handler this incdepgraph m includedependencygraph start graph attrib compoundhandler startincludedependencygraph qxmlattributes m_includedependencygraph graphhandler m_includedependencygraph startgraph void compound handler start included by dependency graph const q xml attributes attrib m includedbydependencygraph new graph handler this invincdepgraph m includedbydependencygraph start graph attrib compoundhandler startincludedbydependencygraph qxmlattributes m_includedbydependencygraph graphhandler m_includedbydependencygraph startgraph void compound handler start includes const q xml attributes attrib include handler inc new include handler this includes m includes append inc inc start include attrib compoundhandler startincludes qxmlattributes includehandler includehandler m_includes startinclude void compound handler start included by const q xml attributes attrib include handler inc new include handler this includedby m includedby append inc inc start include attrib compoundhandler startincludedby qxmlattributes includehandler includehandler m_includedby startinclude void compound handler start inner dir const q xml attributes attrib m innercompounds append new q string attrib value refid compoundhandler startinnerdir qxmlattributes m_innercompounds qstring void compound handler start inner class const q xml attributes attrib m innercompounds append new q string attrib value refid compoundhandler startinnerclass qxmlattributes m_innercompounds qstring void compound handler start inner namespace const q xml attributes attrib m innercompounds append new q string attrib value refid compoundhandler startinnernamespace qxmlattributes m_innercompounds qstring void compound handler start inner file const q xml attributes attrib m innercompounds append new q string attrib value refid compoundhandler startinnerfile qxmlattributes m_innercompounds qstring void compound handler start inner group const q xml attributes attrib m innercompounds append new q string attrib value refid compoundhandler startinnergroup qxmlattributes m_innercompounds qstring void compound handler start inner page const q xml attributes attrib m innercompounds append new q string attrib value refid compoundhandler startinnerpage qxmlattributes m_innercompounds qstring void compound handler start title const q xml attributes attrib assert m titlehandler 0 m titlehandler new title handler this m titlehandler start title attrib compoundhandler starttitle qxmlattributes m_titlehandler m_titlehandler titlehandler m_titlehandler starttitle void compound handler start template param list const q xml attributes attrib m templateparamlist new template param list handler this m templateparamlist start template param list attrib compoundhandler starttemplateparamlist qxmlattributes m_templateparamlist templateparamlisthandler m_templateparamlist starttemplateparamlist void compound handler start list of all members const q xml attributes attrib m members new list of all members handler this m members start list of all members attrib compoundhandler startlistofallmembers qxmlattributes m_members listofallmembershandler m_members startlistofallmembers m titlehandler 0 m members 0 m superclasses set auto delete true m subclasses set auto delete true m sections set auto delete true m membernamedict set auto delete true m innercompounds set auto delete true m params set auto delete true m includes set auto delete true m includedby set auto delete true add start handler doxygen add end handler doxygen add start handler compounddef this compound handler start compound add end handler compounddef this compound handler end compound add start handler compoundname add end handler compoundname this compound handler end compound name add start handler title this compound handler start title add start handler basecompoundref this compound handler add super class add end handler basecompoundref add start handler derivedcompoundref this compound handler add sub class add end handler derivedcompoundref add start handler includes this compound handler start includes add start handler includedby this compound handler start included by add start handler incdepgraph this compound handler start include dependency graph add start handler invincdepgraph this compound handler start included by dependency graph add start handler innerdir this compound handler start inner dir add end handler innerdir add start handler innerfile this compound handler start inner file add end handler innerfile add start handler innerclass this compound handler start inner class add end handler innerclass add start handler innernamespace this compound handler start inner namespace add end handler innernamespace add start handler innerpage this compound handler start inner page add end handler innerpage add start handler innergroup this compound handler start inner group add end handler innergroup add start handler templateparamlist this compound handler start template param list add start handler sectiondef this compound handler start section add start handler briefdescription this compound handler start brief desc add start handler detaileddescription this compound handler start detailed desc add start handler inheritancegraph this compound handler start inheritance graph add start handler collaborationgraph this compound handler start collaboration graph add start handler programlisting this compound handler start program listing add start handler location this compound handler start location add end handler location add start handler listofallmembers this compound handler start list of all members m_titlehandler m_members m_superclasses setautodelete m_subclasses setautodelete m_sections setautodelete m_membernamedict setautodelete m_innercompounds setautodelete m_params setautodelete m_includes setautodelete m_includedby setautodelete addstarthandler addendhandler addstarthandler compoundhandler startcompound addendhandler compoundhandler endcompound addstarthandler addendhandler compoundhandler endcompoundname addstarthandler compoundhandler starttitle addstarthandler compoundhandler addsuperclass addendhandler addstarthandler compoundhandler addsubclass addendhandler addstarthandler compoundhandler startincludes addstarthandler compoundhandler startincludedby addstarthandler compoundhandler startincludedependencygraph addstarthandler compoundhandler startincludedbydependencygraph addstarthandler compoundhandler startinnerdir addendhandler addstarthandler compoundhandler startinnerfile addendhandler addstarthandler compoundhandler startinnerclass addendhandler addstarthandler compoundhandler startinnernamespace addendhandler addstarthandler compoundhandler startinnerpage addendhandler addstarthandler compoundhandler startinnergroup addendhandler addstarthandler compoundhandler starttemplateparamlist addstarthandler compoundhandler startsection addstarthandler compoundhandler startbriefdesc addstarthandler compoundhandler startdetaileddesc addstarthandler compoundhandler startinheritancegraph addstarthandler compoundhandler startcollaborationgraph addstarthandler compoundhandler startprogramlisting addstarthandler compoundhandler startlocation addendhandler addstarthandler compoundhandler startlistofallmembers compound handler compound handler debug 2 compound handler compound handler n delete m titlehandler delete m brief delete m detailed delete m programlisting delete m inheritancegraph delete m collaborationgraph delete m includedependencygraph delete m includedbydependencygraph delete m templateparamlist delete m members compoundhandler compoundhandler compoundhandler compoundhandler m_titlehandler m_brief m_detailed m_programlisting m_inheritancegraph m_collaborationgraph m_includedependencygraph m_includedbydependencygraph m_templateparamlist m_members bool compound handler parsexml const char comp id q file xml file m xmldir comp id xml if xml file exists return false compound error handler error handler q xml input source source xml file q xml simple reader reader reader set content handler this reader set error handler error handler reader parse source return true compoundhandler compid qfile xmlfile m_xmldir compid xmlfile compounderrorhandler errorhandler qxmlinputsource xmlfile qxmlsimplereader setcontenthandler seterrorhandler errorhandler void compound handler initialize main handler mh m mainhandler mh q list iterator section handler msi m sections section handler sec for sec msi current msi sec initialize this if m members m members initialize mh compoundhandler mainhandler m_mainhandler qlistiterator sectionhandler m_sections sectionhandler m_members m_members void compound handler insert member member handler mh m memberdict insert mh id latin1 mh mh initialize m mainhandler q list member handler mhl m membernamedict find mh id latin1 if mhl 0 mhl new q list member handler m membernamedict insert mh name latin1 mhl mhl append mh compoundhandler insertmember memberhandler m_memberdict m_mainhandler qlist memberhandler m_membernamedict qlist memberhandler m_membernamedict i compound compound handler toi compound const switch m kind case i class class return i class this case i struct struct return i struct this case i union union return i union this case i exception exception return i exception this case i interface interface return i interface this case i namespace namespace return i namespace this case i file file return i file this case i group group return i group this case i page page return i page this default return 0 return 0 icompound compoundhandler toicompound m_kind iclass iclass istruct istruct iunion iunion iexception iexception iinterface iinterface inamespace inamespace ifile ifile igroup igroup ipage ipage i section iterator compound handler sections const return new section iterator m sections isectioniterator compoundhandler sectioniterator m_sections i doc root compound handler brief description const return m brief idocroot compoundhandler briefdescription m_brief i doc root compound handler detailed description const return m detailed idocroot compoundhandler detaileddescription m_detailed i member compound handler member by id const char id const return i function m memberdict id imember compoundhandler memberbyid ifunction m_memberdict i member iterator compound handler member by name const char name const q list member handler ml m membernamedict name if ml 0 return 0 return new member iterator ml imemberiterator compoundhandler memberbyname qlist memberhandler m_membernamedict memberiterator i param iterator compound handler template parameters const return m templateparamlist m templateparamlist template params 0 iparamiterator compoundhandler templateparameters m_templateparamlist m_templateparamlist templateparams void compound handler release debug 2 compound handler release d d n m refcount m refcount 1 if m refcount 0 m mainhandler unload compound this delete this compoundhandler compoundhandler m_refcount m_refcount m_refcount m_mainhandler unloadcompound i graph compound handler inheritance graph const return m inheritancegraph igraph compoundhandler inheritancegraph m_inheritancegraph i graph compound handler collaboration graph const return m collaborationgraph igraph compoundhandler collaborationgraph m_collaborationgraph i related compound iterator compound handler base compounds const return new related compound iterator m superclasses irelatedcompounditerator compoundhandler basecompounds relatedcompounditerator m_superclasses i related compound iterator compound handler derived compounds const return new related compound iterator m subclasses irelatedcompounditerator compoundhandler derivedcompounds relatedcompounditerator m_subclasses i compound iterator compound handler nested compounds const return new compound id iterator m mainhandler m innercompounds icompounditerator compoundhandler nestedcompounds compoundiditerator m_mainhandler m_innercompounds i member reference iterator compound handler members const return m members m members members 0 imemberreferenceiterator compoundhandler m_members m_members i graph compound handler include dependency graph const return m includedependencygraph igraph compoundhandler includedependencygraph m_includedependencygraph i graph compound handler included by dependency graph const return m includedbydependencygraph igraph compoundhandler includedbydependencygraph m_includedbydependencygraph i doc program listing compound handler source const return m programlisting idocprogramlisting compoundhandler m_programlisting i include iterator compound handler includes const return new include iterator m includes iincludeiterator compoundhandler includeiterator m_includes i include iterator compound handler included by const return new include iterator m includedby iincludeiterator compoundhandler includedby includeiterator m_includedby const i doc title compound handler title const return m titlehandler idoctitle compoundhandler m_titlehandler void main handler start compound const q xml attributes attrib m curcompound new compound entry 257 m curcompound id attrib value refid m compounds append m curcompound m compounddict insert m curcompound id m curcompound mainhandler startcompound qxmlattributes m_curcompound compoundentry m_curcompound m_compounds m_curcompound m_compounddict m_curcompound m_curcompound void main handler start member const q xml attributes attrib m insidemember true m curmember new member entry m curmember id attrib value refid m curmember compound m curcompound m memberdict insert m curmember id m curmember mainhandler startmember qxmlattributes m_insidemember m_curmember memberentry m_curmember m_curmember m_curcompound m_memberdict m_curmember m_curmember void main handler end member m curcompound member dict insert m curstring m curmember q list compound entry cel 0 if cel m membernamedict find m curstring 0 cel new q list compound entry m membernamedict insert m curstring cel cel append m curcompound m insidemember false mainhandler endmember m_curcompound memberdict m_curstring m_curmember qlist compoundentry m_membernamedict m_curstring qlist compoundentry m_membernamedict m_curstring m_curcompound m_insidemember void main handler start name const q xml attributes attrib m curstring mainhandler startname qxmlattributes m_curstring void main handler end name if m insidemember m curmember name m curstring else m curcompound name m curstring m compoundnamedict insert m curstring m curcompound mainhandler endname m_insidemember m_curmember m_curstring m_curcompound m_curstring m_compoundnamedict m_curstring m_curcompound m compoundsloaded 1009 m compounds set auto delete true m membernamedict set auto delete true add start handler doxygenindex add end handler doxygenindex add start handler compound this main handler start compound add end handler compound add start handler member this main handler start member add end handler member this main handler end member add start handler name this main handler start name add end handler name this main handler end name m curcompound 0 m insidemember false m_compoundsloaded m_compounds setautodelete m_membernamedict setautodelete addstarthandler addendhandler addstarthandler mainhandler startcompound addendhandler addstarthandler mainhandler startmember addendhandler mainhandler endmember addstarthandler mainhandler startname addendhandler mainhandler endname m_curcompound m_insidemember main handler main handler debug 2 main handler main handler n mainhandler mainhandler mainhandler mainhandler i compound iterator main handler compounds const return new compound entry iterator this m compounds icompounditerator mainhandler compoundentryiterator m_compounds i compound main handler compound by id const char id const q string ids id if ids is empty return 0 compound handler ch m compoundsloaded ids if ch compound already in memory ch addref returning alias increase reference counter return ch toi compound compound entry ce m compounddict find ids if ce 0 return 0 id not found create and load a new compound ch new compound handler m xmldirname if ch parsexml id compound could not be initialized delete ch return 0 we disregard the constness here because the object stays conceptually unchanged main handler that main handler this ch initialize that printf loading compound s in memory n id that m compoundsloaded insert id ch return ch toi compound icompound mainhandler compoundbyid qstring isempty compoundhandler m_compoundsloaded toicompound compoundentry m_compounddict compoundhandler m_xmldirname mainhandler mainhandler m_compoundsloaded toicompound i compound main handler compound by name const char name const q string name str name if name str is empty return 0 compound entry ce m compoundnamedict name if ce 0 return 0 name not found return compound by id ce id icompound mainhandler compoundbyname qstring namestr namestr isempty compoundentry m_compoundnamedict compoundbyid i compound main handler member by id const char id const q string ids id if ids is empty return 0 member entry me m memberdict id if me 0 return 0 id not found return compound by id me compound id icompound mainhandler memberbyid qstring isempty memberentry m_memberdict compoundbyid i compound iterator main handler member by name const char name const q string name str name if name str is empty return 0 q list compound entry cel m membernamedict name if cel 0 return 0 name not found return new compound entry iterator this cel icompounditerator mainhandler memberbyname qstring namestr namestr isempty qlist compoundentry m_membernamedict compoundentryiterator void main handler release printf main handler release n q dict iterator compound handler chi m compoundsloaded compound handler ch for chi to first ch chi current chi debug 1 compound s not released n ch name latin1 graphhandler exit dochandler exit memberhandler exit sectionhandler exit compoundhandler exit delete this mainhandler mainhandler qdictiterator compoundhandler m_compoundsloaded compoundhandler tofirst graphhandler_exit dochandler_exit memberhandler_exit sectionhandler_exit compoundhandler_exit void main handler set debug level int level set debug level level mainhandler setdebuglevel setdebuglevel bool main handler readxml dir const char xml dir name m xmldirname xml dir name q string xml file name m xmldirname index xml q file xml file xml file name printf trying s xml file exists d is readable d n xml file name data xml file exists xml file is readable if xml file exists error handler error handler q xml input source source xml file q xml simple reader reader reader set content handler this reader set error handler error handler reader parse source dump return true return false mainhandler readxmldir xmldirname m_xmldirname xmldirname qstring xmlfilename m_xmldirname qfile xmlfile xmlfilename xmlfile isreadable xmlfilename xmlfile xmlfile isreadable xmlfile errorhandler errorhandler qxmlinputsource xmlfile qxmlsimplereader setcontenthandler seterrorhandler errorhandler void main handler dump q list iterator compound entry cli m compounds compound entry ce for cli to first ce cli current cli debug 2 compound id s name s n ce id data ce name data q dict iterator member entry mdi ce member dict member entry me for mdi to first me mdi current mdi debug 2 member id s name s n me id data me name data mainhandler qlistiterator compoundentry m_compounds compoundentry tofirst qdictiterator memberentry memberdict memberentry tofirst void main handler unload compound compound handler ch printf unloading compound s from memory n ch id latin1 bool result m compoundsloaded remove ch id latin1 if result debug 1 failed to unload component n mainhandler unloadcompound compoundhandler m_compoundsloaded void doc handler start doc const q xml attributes attrib m parent set delegate this debug 2 start dochandler n dochandler startdoc qxmlattributes m_parent setdelegate void doc handler end doc debug 2 end dochandler n m parent set delegate 0 dochandler enddoc m_parent setdelegate void doc handler start paragraph const q xml attributes attrib paragraph handler par handler new paragraph handler this par handler start paragraph attrib m children append par handler dochandler startparagraph qxmlattributes paragraphhandler parhandler paragraphhandler parhandler startparagraph m_children parhandler void doc handler start sect1 const q xml attributes attrib doc section handler sec handler new doc section handler this 1 sec handler start doc section attrib m children append sec handler dochandler startsect1 qxmlattributes docsectionhandler sechandler docsectionhandler sechandler startdocsection m_children sechandler void doc handler start title const q xml attributes attrib title handler title handler new title handler this title handler start title attrib m children append title handler dochandler starttitle qxmlattributes titlehandler titlehandler titlehandler titlehandler starttitle m_children titlehandler doc handler doc handler i base handler parent m parent parent m children set auto delete true add end handler briefdescription this doc handler end doc add end handler detaileddescription this doc handler end doc add end handler inbodydescription this doc handler end doc add end handler internal add start handler para this doc handler start paragraph add start handler sect1 this doc handler start sect1 add start handler title this doc handler start title add start handler internal dochandler dochandler ibasehandler m_parent m_children setautodelete addendhandler dochandler enddoc addendhandler dochandler enddoc addendhandler dochandler enddoc addendhandler addstarthandler dochandler startparagraph addstarthandler dochandler startsect1 addstarthandler dochandler starttitle addstarthandler doc handler doc handler dochandler dochandler i doc iterator doc handler contents const return new doc iterator this idociterator dochandler dociterator void program listing handler start program listing const q xml attributes attrib m parent set delegate this debug 2 start programlisting n programlistinghandler startprogramlisting qxmlattributes m_parent setdelegate void program listing handler end program listing debug 2 end programlisting n m parent set delegate 0 programlistinghandler endprogramlisting m_parent setdelegate void program listing handler start code line const q xml attributes attrib code line handler clh 0 if m haslinenumber clh new code line handler this m children append clh else clh m children get last assert clh 0 clh start code line attrib m haslinenumber false programlistinghandler startcodeline qxmlattributes codelinehandler m_haslinenumber codelinehandler m_children m_children getlast startcodeline m_haslinenumber void program listing handler start line number const q xml attributes attrib code line handler clh new code line handler this m children append clh m haslinenumber true clh start line number attrib programlistinghandler startlinenumber qxmlattributes codelinehandler codelinehandler m_children m_haslinenumber startlinenumber m parent parent m children set auto delete true m haslinenumber false add end handler programlisting this program listing handler end program listing add start handler linenumber this program listing handler start line number add start handler codeline this program listing handler start code line m_parent m_children setautodelete m_haslinenumber addendhandler programlistinghandler endprogramlisting addstarthandler programlistinghandler startlinenumber addstarthandler programlistinghandler startcodeline program listing handler program listing handler programlistinghandler programlistinghandler i doc iterator program listing handler code lines const return new program listing iterator this idociterator programlistinghandler codelines programlistingiterator m parent parent add end handler end tag this graph handler end graph add start handler node this graph handler start node m nodes set auto delete true m nodedict new q dict node handler 1009 m_parent addendhandler endtag graphhandler endgraph addstarthandler graphhandler startnode m_nodes setautodelete m_nodedict qdict nodehandler graph handler graph handler delete m nodedict graphhandler graphhandler m_nodedict void graph handler start graph const q xml attributes debug 2 start graph n m parent set delegate this graphhandler startgraph qxmlattributes startgraph m_parent setdelegate void graph handler end graph debug 2 end graph n m parent set delegate 0 graphhandler endgraph endgraph m_parent setdelegate void graph handler start node const q xml attributes attrib node handler n new node handler this n start node attrib m nodes append n m nodedict insert attrib value id n graphhandler startnode qxmlattributes nodehandler nodehandler startnode m_nodes m_nodedict node handler graph handler get node by id const q string id const return m nodedict find id nodehandler graphhandler getnodebyid qstring m_nodedict i node iterator graph handler nodes const return new node iterator this inodeiterator graphhandler nodeiterator void member handler start member const q xml attributes attrib m parent set delegate this m kindstring attrib value kind printf start member kind string s n m kindstring data m kind s typemap map m kindstring m id attrib value id m protection attrib value prot m isstatic attrib value static yes m isconst attrib value const yes m isexplicit attrib value explicit yes m isinline attrib value inline yes m virtualness attrib value virt m isvolatile attrib value volatile yes m ismutable attrib value mutable yes m isreadable attrib value readable yes m iswritable attrib value writable yes debug 2 member kind s id s prot s virt s n m kindstring data m id data m protection data m virtualness data memberhandler startmember qxmlattributes m_parent setdelegate m_kindstring startmember kindstring m_kindstring m_kind s_typemap m_kindstring m_id m_protection m_isstatic m_isconst m_isexplicit m_isinline m_virtualness m_isvolatile m_ismutable m_isreadable m_iswritable m_kindstring m_id m_protection m_virtualness void member handler end member m parent set delegate 0 memberhandler endmember m_parent setdelegate void member handler start param const q xml attributes attrib param handler param handler new param handler this param handler start param attrib if m insidetemplateparamlist m templateparams append param handler else m params append param handler memberhandler startparam qxmlattributes paramhandler paramhandler paramhandler paramhandler startparam m_insidetemplateparamlist m_templateparams paramhandler m_params paramhandler void member handler start type const q xml attributes debug 2 start type n delete m linkedtexthandler m linkedtexthandler new linked text handler this m type m linkedtexthandler start type memberhandler starttype qxmlattributes starttype m_linkedtexthandler m_linkedtexthandler linkedtexthandler m_type m_linkedtexthandler void member handler start name const q xml attributes m curstring memberhandler startname qxmlattributes m_curstring void member handler end name m name m curstring strip white space debug 2 member name s n m name data memberhandler endname m_name m_curstring stripwhitespace m_name void member handler start read const q xml attributes m curstring memberhandler startread qxmlattributes m_curstring void member handler end read m read m curstring strip white space debug 2 member read s n m read data memberhandler endread m_read m_curstring stripwhitespace m_read void member handler start write const q xml attributes m curstring memberhandler startwrite qxmlattributes m_curstring void member handler end write m write m curstring strip white space debug 2 member write s n m write data memberhandler endwrite m_write m_curstring stripwhitespace m_write void member handler start definition const q xml attributes m curstring memberhandler startdefinition qxmlattributes m_curstring void member handler end definition m definition m curstring strip white space debug 2 definition s n m definition data memberhandler enddefinition m_definition m_curstring stripwhitespace m_definition void member handler start args string const q xml attributes m curstring memberhandler startargsstring qxmlattributes m_curstring void member handler end args string m argsstring m curstring strip white space debug 2 arggstring s n m argsstring data memberhandler endargsstring m_argsstring m_curstring stripwhitespace m_argsstring void member handler start brief desc const q xml attributes attrib doc handler doc handler new doc handler this doc handler start doc attrib m brief doc handler memberhandler startbriefdesc qxmlattributes dochandler dochandler dochandler dochandler startdoc m_brief dochandler void member handler start detailed desc const q xml attributes attrib doc handler doc handler new doc handler this doc handler start doc attrib m detailed doc handler memberhandler startdetaileddesc qxmlattributes dochandler dochandler dochandler dochandler startdoc m_detailed dochandler void member handler start inbody desc const q xml attributes attrib doc handler doc handler new doc handler this doc handler start doc attrib m inbody doc handler memberhandler startinbodydesc qxmlattributes dochandler dochandler dochandler dochandler startdoc m_inbody dochandler void member handler start location const q xml attributes attrib m deffile attrib value file qc string s s attrib value line if s is empty m defline s to int s attrib value bodystart if s is empty m bodystart s to int s attrib value bodyend if s is empty m bodyend s to int memberhandler startlocation qxmlattributes m_deffile qcstring isempty m_defline toint isempty m_bodystart toint isempty m_bodyend toint void member handler start references const q xml attributes attrib member reference mr new member reference mr m memid attrib value refid m references append mr m curstring memberhandler startreferences qxmlattributes memberreference memberreference m_memid m_references m_curstring void member handler end references m references get last m name m curstring memberhandler endreferences m_references getlast m_name m_curstring void member handler start referenced by const q xml attributes attrib member reference mr new member reference mr m memid attrib value refid m referencedby append mr m curstring memberhandler startreferencedby qxmlattributes memberreference memberreference m_memid m_referencedby m_curstring void member handler end referenced by m referencedby get last m name m curstring memberhandler endreferencedby m_referencedby getlast m_name m_curstring void member handler start reimplements const q xml attributes attrib m reimplements new member reference m reimplements m memid attrib value refid m curstring memberhandler startreimplements qxmlattributes m_reimplements memberreference m_reimplements m_memid m_curstring void member handler end reimplements m reimplements m name m curstring memberhandler endreimplements m_reimplements m_name m_curstring void member handler start reimplemented by const q xml attributes attrib member reference mr new member reference mr m memid attrib value refid m reimplementedby append mr m curstring memberhandler startreimplementedby qxmlattributes memberreference memberreference m_memid m_reimplementedby m_curstring void member handler end reimplemented by m reimplementedby get last m name m curstring memberhandler endreimplementedby m_reimplementedby getlast m_name m_curstring void member handler start initializer const q xml attributes debug 2 start initializer n delete m linkedtexthandler m linkedtexthandler new linked text handler this m initializer m linkedtexthandler start initializer memberhandler startinitializer qxmlattributes startinitializer m_linkedtexthandler m_linkedtexthandler linkedtexthandler m_initializer m_linkedtexthandler void member handler start exception const q xml attributes debug 2 start exception n delete m linkedtexthandler m linkedtexthandler new linked text handler this m exception m linkedtexthandler start exceptions memberhandler startexception qxmlattributes startexception m_linkedtexthandler m_linkedtexthandler linkedtexthandler m_exception m_linkedtexthandler void member handler start enum value const q xml attributes attrib m parent set delegate this m kindstring enumvalue printf start enum value kind string s n m kindstring data m kind s typemap map m kindstring m id attrib value id m protection attrib value prot m isstatic false m isconst false m isexplicit false m isinline false m virtualness non virtual m isvolatile false m ismutable false m isreadable false m iswritable false debug 2 member kind s id s prot s virt s n m kindstring data m id data m protection data m virtualness data memberhandler startenumvalue qxmlattributes m_parent setdelegate m_kindstring startenumvalue kindstring m_kindstring m_kind s_typemap m_kindstring m_id m_protection m_isstatic m_isconst m_isexplicit m_isinline m_virtualness m_isvolatile m_ismutable m_isreadable m_iswritable m_kindstring m_id m_protection m_virtualness void member handler start enum value2 const q xml attributes attrib member handler mh new member handler this mh start enum value attrib m enumvalues append mh memberhandler startenumvalue2 qxmlattributes memberhandler memberhandler startenumvalue m_enumvalues void member handler start template param list const q xml attributes m insidetemplateparamlist true m hastemplateparamlist true memberhandler starttemplateparamlist qxmlattributes m_insidetemplateparamlist m_hastemplateparamlist void member handler end template param list m insidetemplateparamlist false memberhandler endtemplateparamlist m_insidetemplateparamlist m parent parent m compound 0 m brief 0 m detailed 0 m inbody 0 printf member handler member handler p n this add end handler memberdef this member handler end member add start handler templateparamlist this member handler start template param list add end handler templateparamlist this member handler end template param list add start handler type this member handler start type add start handler definition this member handler start definition add end handler definition this member handler end definition add start handler argsstring this member handler start args string add end handler argsstring this member handler end args string add start handler name this member handler start name add end handler name this member handler end name add start handler read this member handler start read add end handler read this member handler end read add start handler write this member handler start write add end handler write this member handler end write add start handler reimplements this member handler start reimplements add end handler reimplements this member handler end reimplements add start handler reimplementedby this member handler start reimplemented by add end handler reimplementedby this member handler end reimplemented by add start handler param this member handler start param add start handler enumvalue this member handler start enum value2 add end handler enumvalue this member handler end member add start handler initializer this member handler start initializer add start handler exceptions this member handler start exception add start handler briefdescription this member handler start brief desc add start handler detaileddescription this member handler start detailed desc add start handler inbodydescription this member handler start inbody desc add start handler location this member handler start location add end handler location add start handler references this member handler start references add end handler references this member handler end references add start handler referencedby this member handler start referenced by add end handler referencedby this member handler end referenced by m type set auto delete true m initializer set auto delete true m exception set auto delete true m params set auto delete true m references set auto delete true m referencedby set auto delete true m reimplements 0 m reimplementedby set auto delete true m enumvalues set auto delete true m linkedtexthandler 0 m defline 0 m bodystart 0 m bodyend 0 m insidetemplateparamlist false m hastemplateparamlist false m_parent m_compound m_brief m_detailed m_inbody memberhandler memberhandler addendhandler memberhandler endmember addstarthandler memberhandler starttemplateparamlist addendhandler memberhandler endtemplateparamlist addstarthandler memberhandler starttype addstarthandler memberhandler startdefinition addendhandler memberhandler enddefinition addstarthandler memberhandler startargsstring addendhandler memberhandler endargsstring addstarthandler memberhandler startname addendhandler memberhandler endname addstarthandler memberhandler startread addendhandler memberhandler endread addstarthandler memberhandler startwrite addendhandler memberhandler endwrite addstarthandler memberhandler startreimplements addendhandler memberhandler endreimplements addstarthandler memberhandler startreimplementedby addendhandler memberhandler endreimplementedby addstarthandler memberhandler startparam addstarthandler memberhandler startenumvalue2 addendhandler memberhandler endmember addstarthandler memberhandler startinitializer addstarthandler memberhandler startexception addstarthandler memberhandler startbriefdesc addstarthandler memberhandler startdetaileddesc addstarthandler memberhandler startinbodydesc addstarthandler memberhandler startlocation addendhandler addstarthandler memberhandler startreferences addendhandler memberhandler endreferences addstarthandler memberhandler startreferencedby addendhandler memberhandler endreferencedby m_type setautodelete m_initializer setautodelete m_exception setautodelete m_params setautodelete m_references setautodelete m_referencedby setautodelete m_reimplements m_reimplementedby setautodelete m_enumvalues setautodelete m_linkedtexthandler m_defline m_bodystart m_bodyend m_insidetemplateparamlist m_hastemplateparamlist member handler member handler debug 2 member handler member handler p n this delete m brief delete m detailed delete m inbody delete m linkedtexthandler delete m reimplements memberhandler memberhandler memberhandler memberhandler m_brief m_detailed m_inbody m_linkedtexthandler m_reimplements i compound member handler compound const m compound addref return m compound toi compound icompound memberhandler m_compound m_compound toicompound i section member handler section const return m section isection memberhandler m_section i linked text iterator member handler type const return new linked text iterator m type ilinkedtextiterator memberhandler linkedtextiterator m_type const i string member handler type string const member handler that member handler this that m typestring linked text handler to string m type return m typestring istring memberhandler typestring memberhandler memberhandler m_typestring linkedtexthandler tostring m_type m_typestring i param iterator member handler parameters const return new param iterator m params iparamiterator memberhandler paramiterator m_params i param iterator member handler template parameters const return m hastemplateparamlist new param iterator m templateparams 0 iparamiterator memberhandler templateparameters m_hastemplateparamlist paramiterator m_templateparams i member reference iterator member handler references const return new member reference iterator m references imemberreferenceiterator memberhandler memberreferenceiterator m_references i member reference iterator member handler referenced by const return new member reference iterator m referencedby imemberreferenceiterator memberhandler referencedby memberreferenceiterator m_referencedby i linked text iterator member handler initializer const return new linked text iterator m initializer ilinkedtextiterator memberhandler linkedtextiterator m_initializer i linked text iterator member handler exceptions const return new linked text iterator m exception ilinkedtextiterator memberhandler linkedtextiterator m_exception i member reference iterator member handler reimplemented by const return new member reference iterator m reimplementedby imemberreferenceiterator memberhandler reimplementedby memberreferenceiterator m_reimplementedby i doc root member handler brief description const return m brief idocroot memberhandler briefdescription m_brief i doc root member handler detailed description const return m detailed idocroot memberhandler detaileddescription m_detailed i doc root member handler inbody description const return m inbody idocroot memberhandler inbodydescription m_inbody i member iterator member handler enum values const return new member iterator m enumvalues imemberiterator memberhandler enumvalues memberiterator m_enumvalues void member handler initialize main handler mh q list iterator member reference mli m references member reference mr for mr mli current mli mr initialize mh q list iterator member reference mli m referencedby member reference mr for mr mli current mli mr initialize mh q list iterator member reference mli m reimplementedby member reference mr for mr mli current mli mr initialize mh if m reimplements m reimplements initialize mh memberhandler mainhandler qlistiterator memberreference m_references memberreference qlistiterator memberreference m_referencedby memberreference qlistiterator memberreference m_reimplementedby memberreference m_reimplements m_reimplements void member handler set compound handler compound handler c m compound c memberhandler setcompoundhandler compoundhandler m_compound void member handler set section handler section handler c m section c memberhandler setsectionhandler sectionhandler m_section virtual bool is static const return m kind pub stat funcs m kind pub stat attribs m kind pro stat funcs m kind pro stat attribs m kind pri stat funcs m kind pri stat attribs isstatic m_kind pubstatfuncs m_kind pubstatattribs m_kind prostatfuncs m_kind prostatattribs m_kind pristatfuncs m_kind pristatattribs virtual bool is public const return is protected is private ispublic isprotected isprivate virtual bool is protected const return m kind pro types m kind pro funcs m kind pro attribs m kind pro slots m kind pro stat funcs m kind pro stat attribs isprotected m_kind protypes m_kind profuncs m_kind proattribs m_kind proslots m_kind prostatfuncs m_kind prostatattribs virtual bool is private const return m kind pri types m kind pri funcs m kind pri attribs m kind pri slots m kind pri stat funcs m kind pri stat attribs isprivate m_kind pritypes m_kind prifuncs m_kind priattribs m_kind prislots m_kind pristatfuncs m_kind pristatattribs virtual const i string header const return m header istring m_header void section handler start member const q xml attributes attrib member handler mem handler new member handler this mem handler start member attrib m members append mem handler sectionhandler startmember qxmlattributes memberhandler memhandler memberhandler memhandler startmember m_members memhandler void section handler start header const q xml attributes m header m curstring sectionhandler startheader qxmlattributes m_header m_curstring void section handler start section const q xml attributes attrib m parent set delegate this m kindstring attrib value kind m kind s typemap map m kindstring debug 2 section kind s n m kindstring data sectionhandler startsection qxmlattributes m_parent setdelegate m_kindstring m_kind s_typemap m_kindstring m_kindstring void section handler end section m parent set delegate 0 sectionhandler endsection m_parent setdelegate void section handler end header m header m curstring strip white space debug 2 member header s n m header data sectionhandler endheader m_header m_curstring stripwhitespace m_header section handler section handler i base handler parent m parent parent printf section handler section handler n m members set auto delete true add end handler sectiondef this section handler end section add start handler memberdef this section handler start member add start handler header this section handler start header add end handler header this section handler end header sectionhandler sectionhandler ibasehandler m_parent sectionhandler sectionhandler m_members setautodelete addendhandler sectionhandler endsection addstarthandler sectionhandler startmember addstarthandler sectionhandler startheader addendhandler sectionhandler endheader section handler section handler debug 2 section handler section handler n sectionhandler sectionhandler sectionhandler sectionhandler i member iterator section handler members const return new member iterator m members imemberiterator sectionhandler memberiterator m_members void section handler initialize compound handler ch q list iterator member handler mli m members member handler mh for mh mli current mli mh set compound handler ch ch insert member mh mh set section handler this sectionhandler compoundhandler qlistiterator memberhandler m_members memberhandler setcompoundhandler insertmember setsectionhandler void param handler start param const q xml attributes attrib m parent set delegate this debug 2 param n paramhandler startparam qxmlattributes m_parent setdelegate void param handler end param m parent set delegate 0 paramhandler endparam m_parent setdelegate void param handler start type const q xml attributes attrib delete m linkedtexthandler m linkedtexthandler new linked text handler this m type m linkedtexthandler start type debug 2 param type n paramhandler starttype qxmlattributes m_linkedtexthandler m_linkedtexthandler linkedtexthandler m_type m_linkedtexthandler void param handler end decl name m declname m curstring strip white space debug 2 member decl name s n m declname data paramhandler enddeclname m_declname m_curstring stripwhitespace declname m_declname void param handler end def name m defname m curstring strip white space debug 2 member def name s n m defname data paramhandler enddefname m_defname m_curstring stripwhitespace defname m_defname void param handler end attrib m attrib m curstring strip white space debug 2 member attrib s n m attrib data paramhandler endattrib m_attrib m_curstring stripwhitespace m_attrib void param handler end array m array m curstring strip white space debug 2 member array s n m array data paramhandler endarray m_array m_curstring stripwhitespace m_array void param handler start def val const q xml attributes attrib delete m linkedtexthandler m linkedtexthandler new linked text handler this m defval m linkedtexthandler start defval debug 2 member def val n paramhandler startdefval qxmlattributes m_linkedtexthandler m_linkedtexthandler linkedtexthandler m_defval m_linkedtexthandler defval void param handler start brief desc const q xml attributes attrib doc handler doc handler new doc handler this doc handler start doc attrib m brief doc handler paramhandler startbriefdesc qxmlattributes dochandler dochandler dochandler dochandler startdoc m_brief dochandler param handler param handler i base handler parent m parent parent m brief 0 add end handler param this param handler end param add start handler type this param handler start type add start handler declname add end handler declname this param handler end decl name add start handler defname add end handler defname this param handler end def name add start handler array add end handler array this param handler end array add start handler attribute add end handler attribute this param handler end attrib add start handler briefdescription this param handler start brief desc add start handler defval this param handler start def val m linkedtexthandler 0 paramhandler paramhandler ibasehandler m_parent m_brief addendhandler paramhandler endparam addstarthandler paramhandler starttype addstarthandler addendhandler paramhandler enddeclname addstarthandler addendhandler paramhandler enddefname addstarthandler addendhandler paramhandler endarray addstarthandler addendhandler paramhandler endattrib addstarthandler paramhandler startbriefdesc addstarthandler paramhandler startdefval m_linkedtexthandler param handler param handler delete m brief delete m linkedtexthandler paramhandler paramhandler m_brief m_linkedtexthandler i linked text iterator param handler type const return new linked text iterator m type ilinkedtextiterator paramhandler linkedtextiterator m_type i linked text iterator param handler default value const return new linked text iterator m defval ilinkedtextiterator paramhandler defaultvalue linkedtextiterator m_defval i doc root param handler brief description const return m brief idocroot paramhandler briefdescription m_brief void template param list handler start param const q xml attributes attrib param handler ph new param handler this ph start param attrib m templateparams append ph templateparamlisthandler startparam qxmlattributes paramhandler paramhandler startparam m_templateparams void template param list handler end param templateparamlisthandler endparam void template param list handler start template param list const q xml attributes attrib m parent set delegate this debug 2 templateparamlist n templateparamlisthandler starttemplateparamlist qxmlattributes m_parent setdelegate void template param list handler end template param list m parent set delegate 0 templateparamlisthandler endtemplateparamlist m_parent setdelegate template param list handler template param list handler i base handler parent m parent parent add start handler param this template param list handler start param add end handler templateparamlist this template param list handler end template param list templateparamlisthandler templateparamlisthandler ibasehandler m_parent addstarthandler templateparamlisthandler startparam addendhandler templateparamlisthandler endtemplateparamlist m parent parent m children set auto delete true m markuphandler new markup handler m children m curstring set fall back handler m markuphandler add start handler ref this title handler start ref add end handler title this title handler end title m_parent m_children setautodelete m_markuphandler markuphandler m_children m_curstring setfallbackhandler m_markuphandler addstarthandler titlehandler startref addendhandler titlehandler endtitle title handler title handler delete m markuphandler titlehandler titlehandler m_markuphandler void title handler start title const q xml attributes attrib m parent set delegate this debug 2 start title n m curstring titlehandler starttitle qxmlattributes m_parent setdelegate m_curstring void title handler end title add text node m parent set delegate 0 debug 2 end title n titlehandler endtitle addtextnode m_parent setdelegate void title handler start ref const q xml attributes attrib ref handler ref new ref handler this ref start ref attrib m children append ref titlehandler startref qxmlattributes refhandler refhandler startref m_children void title handler add text node if m curstring is empty m children append new text node m curstring m markuphandler markup m markuphandler heading level debug 2 add text node text s markup x heading level d n m curstring data m markuphandler markup m markuphandler heading level m curstring titlehandler addtextnode m_curstring isempty m_children textnode m_curstring m_markuphandler m_markuphandler headinglevel addtextnode headinglevel m_curstring m_markuphandler m_markuphandler headinglevel m_curstring i doc iterator title handler title const return new title iterator this idociterator titlehandler titleiterator void list of all members handler start member const q xml attributes attrib member reference mr new member reference mr m memid attrib value refid mr m virtualness attrib value virt mr m protection attrib value prot mr m ambiguityscope attrib value ambiguityscope m members append new member reference listofallmembershandler startmember qxmlattributes memberreference memberreference m_memid m_virtualness m_protection m_ambiguityscope m_members memberreference void list of all members handler start name const q xml attributes m curstring listofallmembershandler startname qxmlattributes m_curstring void list of all members handler end name assert m members get last m members get last m name m curstring listofallmembershandler endname m_members getlast m_members getlast m_name m_curstring void list of all members handler start scope const q xml attributes m curstring listofallmembershandler startscope qxmlattributes m_curstring void list of all members handler end scope assert m members get last m members get last m scope m curstring listofallmembershandler endscope m_members getlast m_members getlast m_scope m_curstring void list of all members handler start list of all members const q xml attributes attrib m parent set delegate this debug 2 listofallmembers start n listofallmembershandler startlistofallmembers qxmlattributes m_parent setdelegate void list of all members handler end list of all members m parent set delegate 0 debug 2 listofallmembers end n listofallmembershandler endlistofallmembers m_parent setdelegate list of all members handler list of all members handler i base handler parent m parent parent m members set auto delete true add start handler member this list of all members handler start member add start handler name this list of all members handler start name add end handler name this list of all members handler end name add start handler scope this list of all members handler start scope add end handler scope this list of all members handler end scope add end handler listofallmembers this list of all members handler end list of all members listofallmembershandler listofallmembershandler ibasehandler m_parent m_members setautodelete addstarthandler listofallmembershandler startmember addstarthandler listofallmembershandler startname addendhandler listofallmembershandler endname addstarthandler listofallmembershandler startscope addendhandler listofallmembershandler endscope addendhandler listofallmembershandler endlistofallmembers void list of all members handler initialize main handler mh q list iterator member reference mli m members member reference mr for mr mli current mli mr initialize mh listofallmembershandler mainhandler qlistiterator memberreference m_members memberreference i member reference iterator list of all members handler members const return new member reference iterator m members imemberreferenceiterator listofallmembershandler memberreferenceiterator m_members m parent parent add end handler endtag this include handler end include m_parent addendhandler includehandler endinclude include handler include handler includehandler includehandler void include handler start include const q xml attributes attrib m curstring m refid attrib value refid m islocal attrib value local yes m parent set delegate this includehandler startinclude qxmlattributes m_curstring m_refid m_islocal m_parent setdelegate void include handler end include m name m curstring m parent set delegate 0 debug 2 found include s n m name data includehandler endinclude m_name m_curstring m_parent setdelegate m_name i compound related compound compound const return m parent m mainhandler compound by id m id icompound relatedcompound m_parent m_mainhandler compoundbyid m_id void paragraph handler start paragraph const q xml attributes attrib m parent set delegate this debug 2 para n paragraphhandler startparagraph qxmlattributes m_parent setdelegate void paragraph handler end paragraph add text node debug 2 end para n m parent set delegate 0 paragraphhandler endparagraph addtextnode m_parent setdelegate void paragraph handler start itemized list const q xml attributes attrib add text node itemized list handler list handler new itemized list handler this list handler start itemized list attrib m children append list handler paragraphhandler startitemizedlist qxmlattributes addtextnode itemizedlisthandler listhandler itemizedlisthandler listhandler startitemizedlist m_children listhandler void paragraph handler start ordered list const q xml attributes attrib add text node ordered list handler list handler new ordered list handler this list handler start ordered list attrib m children append list handler paragraphhandler startorderedlist qxmlattributes addtextnode orderedlisthandler listhandler orderedlisthandler listhandler startorderedlist m_children listhandler void paragraph handler start parameter list const q xml attributes attrib add text node parameter list handler list handler new parameter list handler this list handler start parameter list attrib m children append list handler paragraphhandler startparameterlist qxmlattributes addtextnode parameterlisthandler listhandler parameterlisthandler listhandler startparameterlist m_children listhandler void paragraph handler start simple sect const q xml attributes attrib add text node simple sect handler sect handler new simple sect handler this sect handler start simple sect attrib m children append sect handler paragraphhandler startsimplesect qxmlattributes addtextnode simplesecthandler secthandler simplesecthandler secthandler startsimplesect m_children secthandler void paragraph handler start ref const q xml attributes attrib add text node ref handler ref new ref handler this ref start ref attrib m children append ref paragraphhandler startref qxmlattributes addtextnode refhandler refhandler startref m_children void paragraph handler start variable list const q xml attributes attrib add text node variable list handler vl new variable list handler this vl start variable list attrib m children append vl paragraphhandler startvariablelist qxmlattributes addtextnode variablelisthandler variablelisthandler startvariablelist m_children void paragraph handler starth ruler const q xml attributes attrib add text node h ruler handler hr new h ruler handler this hr starth ruler attrib m children append hr paragraphhandler starthruler qxmlattributes addtextnode hrulerhandler hrulerhandler starthruler m_children void paragraph handler start line break const q xml attributes attrib add text node line break handler lb new line break handler this lb start line break attrib m children append lb paragraphhandler startlinebreak qxmlattributes addtextnode linebreakhandler linebreakhandler startlinebreak m_children void paragraph handler startu link const q xml attributes attrib add text node u link handler uh new u link handler this uh startu link attrib m children append uh paragraphhandler startulink qxmlattributes addtextnode ulinkhandler ulinkhandler startulink m_children void paragraph handler starte mail const q xml attributes attrib add text node e mail handler eh new e mail handler this eh starte mail attrib m children append eh paragraphhandler startemail qxmlattributes addtextnode emailhandler emailhandler startemail m_children void paragraph handler start link const q xml attributes attrib add text node link handler lh new link handler this lh start link attrib m children append lh paragraphhandler startlink qxmlattributes addtextnode linkhandler linkhandler startlink m_children void paragraph handler start program listing const q xml attributes attrib add text node program listing handler pl new program listing handler this pl start program listing attrib m children append pl paragraphhandler startprogramlisting qxmlattributes addtextnode programlistinghandler programlistinghandler startprogramlisting m_children void paragraph handler start formula const q xml attributes attrib add text node formula handler fh new formula handler this fh start formula attrib m children append fh paragraphhandler startformula qxmlattributes addtextnode formulahandler formulahandler startformula m_children void paragraph handler start image const q xml attributes attrib add text node image handler ih new image handler this ih start image attrib m children append ih paragraphhandler startimage qxmlattributes addtextnode imagehandler imagehandler startimage m_children void paragraph handler start dot file const q xml attributes attrib add text node dot file handler df new dot file handler this df start dot file attrib m children append df paragraphhandler startdotfile qxmlattributes addtextnode dotfilehandler dotfilehandler startdotfile m_children void paragraph handler start index entry const q xml attributes attrib add text node index entry handler df new index entry handler this df start index entry attrib m children append df paragraphhandler startindexentry qxmlattributes addtextnode indexentryhandler indexentryhandler startindexentry m_children void paragraph handler start table const q xml attributes attrib add text node table handler th new table handler this th start table attrib m children append th paragraphhandler starttable qxmlattributes addtextnode tablehandler tablehandler starttable m_children void paragraph handler start verbatim const q xml attributes attrib add text node verbatim handler vh new verbatim handler this vh start verbatim attrib i doc verbatim verbatim m children append vh paragraphhandler startverbatim qxmlattributes addtextnode verbatimhandler verbatimhandler startverbatim idocverbatim m_children void paragraph handler start html only const q xml attributes attrib add text node verbatim handler vh new verbatim handler this vh start verbatim attrib i doc verbatim html only m children append vh paragraphhandler starthtmlonly qxmlattributes addtextnode verbatimhandler verbatimhandler startverbatim idocverbatim htmlonly m_children void paragraph handler start latex only const q xml attributes attrib add text node verbatim handler vh new verbatim handler this vh start verbatim attrib i doc verbatim latex only m children append vh paragraphhandler startlatexonly qxmlattributes addtextnode verbatimhandler verbatimhandler startverbatim idocverbatim latexonly m_children void paragraph handler start umlaut const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol umlaut sh start symbol attrib m children append sh paragraphhandler startumlaut qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start acute const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol acute sh start symbol attrib m children append sh paragraphhandler startacute qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start grave const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol grave sh start symbol attrib m children append sh paragraphhandler startgrave qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start circ const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol circ sh start symbol attrib m children append sh paragraphhandler startcirc qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start tilde const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol tilde sh start symbol attrib m children append sh paragraphhandler starttilde qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start szlig const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol szlig sh start symbol attrib m children append sh paragraphhandler startszlig qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start cedil const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol cedil sh start symbol attrib m children append sh paragraphhandler startcedil qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start ring const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol ring sh start symbol attrib m children append sh paragraphhandler startring qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start nbsp const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol nbsp sh start symbol attrib m children append sh paragraphhandler startnbsp qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start copy const q xml attributes attrib add text node symbol handler sh new symbol handler this i doc symbol copy sh start symbol attrib m children append sh paragraphhandler startcopy qxmlattributes addtextnode symbolhandler symbolhandler idocsymbol startsymbol m_children void paragraph handler start anchor const q xml attributes attrib add text node anchor handler ah new anchor handler this ah start anchor attrib m children append ah paragraphhandler startanchor qxmlattributes addtextnode anchorhandler anchorhandler startanchor m_children void paragraph handler start copy doc const q xml attributes attrib add text node copy handler ch new copy handler this ch start copy attrib m children append ch paragraphhandler startcopydoc qxmlattributes addtextnode copyhandler copyhandler startcopy m_children void paragraph handler start toc list const q xml attributes attrib add text node toc list handler th new toc list handler this th start toc list attrib m children append th paragraphhandler starttoclist qxmlattributes addtextnode toclisthandler toclisthandler starttoclist m_children m parent parent m children set auto delete true m markuphandler new markup handler m children m curstring set fall back handler m markuphandler add end handler para this paragraph handler end paragraph add start handler itemizedlist this paragraph handler start itemized list add start handler orderedlist this paragraph handler start ordered list add start handler parameterlist this paragraph handler start parameter list add start handler simplesect this paragraph handler start simple sect add start handler ref this paragraph handler start ref add start handler variablelist this paragraph handler start variable list add start handler hruler this paragraph handler starth ruler add start handler linebreak this paragraph handler start line break add start handler ulink this paragraph handler startu link add start handler email this paragraph handler starte mail add start handler link this paragraph handler start link add start handler programlisting this paragraph handler start program listing add start handler formula this paragraph handler start formula add start handler image this paragraph handler start image add start handler dotfile this paragraph handler start dot file add start handler indexentry this paragraph handler start index entry add start handler table this paragraph handler start table add start handler verbatim this paragraph handler start verbatim add start handler latexonly this paragraph handler start html only add start handler htmlonly this paragraph handler start latex only add start handler umlaut this paragraph handler start umlaut add start handler acute this paragraph handler start acute add start handler grave this paragraph handler start grave add start handler circ this paragraph handler start circ add start handler tilde this paragraph handler start tilde add start handler szlig this paragraph handler start szlig add start handler cedil this paragraph handler start cedil add start handler ring this paragraph handler start ring add start handler nbsp this paragraph handler start nbsp add start handler copy this paragraph handler start copy add start handler anchor this paragraph handler start anchor add start handler copydoc this paragraph handler start copy doc add start handler toclist this paragraph handler start toc list m_parent m_children setautodelete m_markuphandler markuphandler m_children m_curstring setfallbackhandler m_markuphandler addendhandler paragraphhandler endparagraph addstarthandler paragraphhandler startitemizedlist addstarthandler paragraphhandler startorderedlist addstarthandler paragraphhandler startparameterlist addstarthandler paragraphhandler startsimplesect addstarthandler paragraphhandler startref addstarthandler paragraphhandler startvariablelist addstarthandler paragraphhandler starthruler addstarthandler paragraphhandler startlinebreak addstarthandler paragraphhandler startulink addstarthandler paragraphhandler startemail addstarthandler paragraphhandler startlink addstarthandler paragraphhandler startprogramlisting addstarthandler paragraphhandler startformula addstarthandler paragraphhandler startimage addstarthandler paragraphhandler startdotfile addstarthandler paragraphhandler startindexentry addstarthandler paragraphhandler starttable addstarthandler paragraphhandler startverbatim addstarthandler paragraphhandler starthtmlonly addstarthandler paragraphhandler startlatexonly addstarthandler paragraphhandler startumlaut addstarthandler paragraphhandler startacute addstarthandler paragraphhandler startgrave addstarthandler paragraphhandler startcirc addstarthandler paragraphhandler starttilde addstarthandler paragraphhandler startszlig addstarthandler paragraphhandler startcedil addstarthandler paragraphhandler startring addstarthandler paragraphhandler startnbsp addstarthandler paragraphhandler startcopy addstarthandler paragraphhandler startanchor addstarthandler paragraphhandler startcopydoc addstarthandler paragraphhandler starttoclist paragraph handler paragraph handler delete m markuphandler paragraphhandler paragraphhandler m_markuphandler i doc iterator paragraph handler contents const return new paragraph iterator this idociterator paragraphhandler paragraphiterator void paragraph handler add text node if m curstring is empty m children append new text node m curstring m markuphandler markup m markuphandler heading level debug 2 add text node text s markup x heading level d n m curstring data m markuphandler markup m markuphandler heading level m curstring paragraphhandler addtextnode m_curstring isempty m_children textnode m_curstring m_markuphandler m_markuphandler headinglevel addtextnode headinglevel m_curstring m_markuphandler m_markuphandler headinglevel m_curstring m parent parent m level level m paragraphs set auto delete true m subsections set auto delete true add start handler para this doc internal handler start paragraph q string section key section key sprintf sect d level 1 add start handler section key this doc internal handler start sub section add end handler internal this doc internal handler end internal m_parent m_level m_paragraphs setautodelete m_subsections setautodelete addstarthandler docinternalhandler startparagraph qstring sectionkey sectionkey addstarthandler sectionkey docinternalhandler startsubsection addendhandler docinternalhandler endinternal doc internal handler doc internal handler docinternalhandler docinternalhandler void doc internal handler start internal const q xml attributes m parent set delegate this debug 2 start internal n docinternalhandler startinternal qxmlattributes m_parent setdelegate void doc internal handler end internal m parent set delegate 0 debug 2 end internal n docinternalhandler endinternal m_parent setdelegate void doc internal handler start sub section const q xml attributes attrib doc section handler sec handler new doc section handler this m level 1 sec handler start doc section attrib m subsections append sec handler docinternalhandler startsubsection qxmlattributes docsectionhandler sechandler docsectionhandler m_level sechandler startdocsection m_subsections sechandler void doc internal handler start paragraph const q xml attributes attrib paragraph handler par handler new paragraph handler this par handler start paragraph attrib m paragraphs append par handler docinternalhandler startparagraph qxmlattributes paragraphhandler parhandler paragraphhandler parhandler startparagraph m_paragraphs parhandler i doc iterator doc internal handler paragraphs const return new doc internal para iterator this idociterator docinternalhandler docinternalparaiterator i doc iterator doc internal handler sub sections const return new doc internal sub iterator this idociterator docinternalhandler subsections docinternalsubiterator m curmarkup i doc markup normal m headinglevel 0 add start handler bold this markup handler start bold add end handler bold this markup handler end bold add start handler emphasis this markup handler start emphasis add end handler emphasis this markup handler end emphasis add start handler computeroutput this markup handler start computer output add end handler computeroutput this markup handler end computer output add start handler center this markup handler start center add end handler center this markup handler end center add start handler small this markup handler start small font add end handler small this markup handler end small font add start handler subscript this markup handler start subscript add end handler subscript this markup handler end subscript add start handler superscript this markup handler start superscript add end handler superscript this markup handler end superscript add start handler preformatted this markup handler start preformatted add end handler preformatted this markup handler end preformatted add start handler heading1 this markup handler start heading1 add end handler heading1 this markup handler end heading1 add start handler heading2 this markup handler start heading2 add end handler heading2 this markup handler end heading2 add start handler heading3 this markup handler start heading3 add end handler heading3 this markup handler end heading3 add start handler heading4 this markup handler start heading4 add end handler heading4 this markup handler end heading4 add start handler heading5 this markup handler start heading5 add end handler heading5 this markup handler end heading5 add start handler heading6 this markup handler start heading6 add end handler heading6 this markup handler end heading6 m_curmarkup idocmarkup m_headinglevel addstarthandler markuphandler startbold addendhandler markuphandler endbold addstarthandler markuphandler startemphasis addendhandler markuphandler endemphasis addstarthandler markuphandler startcomputeroutput addendhandler markuphandler endcomputeroutput addstarthandler markuphandler startcenter addendhandler markuphandler endcenter addstarthandler markuphandler startsmallfont addendhandler markuphandler endsmallfont addstarthandler markuphandler startsubscript addendhandler markuphandler endsubscript addstarthandler markuphandler startsuperscript addendhandler markuphandler endsuperscript addstarthandler markuphandler startpreformatted addendhandler markuphandler endpreformatted addstarthandler markuphandler startheading1 addendhandler markuphandler endheading1 addstarthandler markuphandler startheading2 addendhandler markuphandler endheading2 addstarthandler markuphandler startheading3 addendhandler markuphandler endheading3 addstarthandler markuphandler startheading4 addendhandler markuphandler endheading4 addstarthandler markuphandler startheading5 addendhandler markuphandler endheading5 addstarthandler markuphandler startheading6 addendhandler markuphandler endheading6 markup handler markup handler markuphandler markuphandler void markup handler start bold const q xml attributes attrib add text node m children append new markup modifier node i doc markup bold true m curmarkup i doc markup bold markuphandler startbold qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler end bold add text node m children append new markup modifier node i doc markup bold false m curmarkup i doc markup bold markuphandler endbold addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler start emphasis const q xml attributes attrib add text node m children append new markup modifier node i doc markup emphasis true m curmarkup i doc markup emphasis markuphandler startemphasis qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler end emphasis add text node m children append new markup modifier node i doc markup emphasis false m curmarkup i doc markup emphasis markuphandler endemphasis addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler start computer output const q xml attributes attrib add text node m children append new markup modifier node i doc markup computer output true m curmarkup i doc markup computer output markuphandler startcomputeroutput qxmlattributes addtextnode m_children markupmodifiernode idocmarkup computeroutput m_curmarkup idocmarkup computeroutput void markup handler end computer output add text node m children append new markup modifier node i doc markup computer output false m curmarkup i doc markup computer output markuphandler endcomputeroutput addtextnode m_children markupmodifiernode idocmarkup computeroutput m_curmarkup idocmarkup computeroutput void markup handler start center const q xml attributes attrib add text node m children append new markup modifier node i doc markup center true m curmarkup i doc markup center markuphandler startcenter qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler end center add text node m children append new markup modifier node i doc markup center false m curmarkup i doc markup center markuphandler endcenter addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler start small font const q xml attributes attrib add text node m children append new markup modifier node i doc markup small font true m curmarkup i doc markup small font markuphandler startsmallfont qxmlattributes addtextnode m_children markupmodifiernode idocmarkup smallfont m_curmarkup idocmarkup smallfont void markup handler end small font add text node m children append new markup modifier node i doc markup small font false m curmarkup i doc markup small font markuphandler endsmallfont addtextnode m_children markupmodifiernode idocmarkup smallfont m_curmarkup idocmarkup smallfont void markup handler start subscript const q xml attributes attrib add text node m children append new markup modifier node i doc markup subscript true m curmarkup i doc markup subscript markuphandler startsubscript qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler end subscript add text node m children append new markup modifier node i doc markup subscript false m curmarkup i doc markup subscript markuphandler endsubscript addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler start superscript const q xml attributes attrib add text node m children append new markup modifier node i doc markup superscript true m curmarkup i doc markup superscript markuphandler startsuperscript qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler end superscript add text node m children append new markup modifier node i doc markup superscript false m curmarkup i doc markup superscript markuphandler endsuperscript addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler start preformatted const q xml attributes attrib add text node m children append new markup modifier node i doc markup preformatted true m curmarkup i doc markup preformatted markuphandler startpreformatted qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler end preformatted add text node m children append new markup modifier node i doc markup preformatted false m curmarkup i doc markup preformatted markuphandler endpreformatted addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup void markup handler start heading1 const q xml attributes attrib add text node m children append new markup modifier node i doc markup heading true 1 m curmarkup i doc markup heading m headinglevel 1 markuphandler startheading1 qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler end heading1 add text node m children append new markup modifier node i doc markup heading false 1 m curmarkup i doc markup heading m headinglevel 0 markuphandler endheading1 addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler start heading2 const q xml attributes attrib add text node m children append new markup modifier node i doc markup heading true 2 m curmarkup i doc markup heading m headinglevel 2 markuphandler startheading2 qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler end heading2 add text node m children append new markup modifier node i doc markup heading false 2 m curmarkup i doc markup heading m headinglevel 0 markuphandler endheading2 addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler start heading3 const q xml attributes attrib add text node m children append new markup modifier node i doc markup heading true 3 m curmarkup i doc markup heading m headinglevel 3 markuphandler startheading3 qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler end heading3 add text node m children append new markup modifier node i doc markup heading false 3 m curmarkup i doc markup heading m headinglevel 0 markuphandler endheading3 addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler start heading4 const q xml attributes attrib add text node m children append new markup modifier node i doc markup heading true 4 m curmarkup i doc markup heading m headinglevel 4 markuphandler startheading4 qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler end heading4 add text node m children append new markup modifier node i doc markup heading false 4 m curmarkup i doc markup heading m headinglevel 0 markuphandler endheading4 addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler start heading5 const q xml attributes attrib add text node m children append new markup modifier node i doc markup heading true 5 m curmarkup i doc markup heading m headinglevel 5 markuphandler startheading5 qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler end heading5 add text node m children append new markup modifier node i doc markup heading false 5 m curmarkup i doc markup heading m headinglevel 0 markuphandler endheading5 addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler start heading6 const q xml attributes attrib add text node m children append new markup modifier node i doc markup heading true 6 m curmarkup i doc markup heading m headinglevel 6 markuphandler startheading6 qxmlattributes addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler end heading6 add text node m children append new markup modifier node i doc markup heading false 6 m curmarkup i doc markup heading m headinglevel 0 markuphandler endheading6 addtextnode m_children markupmodifiernode idocmarkup m_curmarkup idocmarkup m_headinglevel void markup handler add text node if m curstring is empty m children append new text node m curstring m curmarkup m headinglevel debug 2 add text node text s markup x n m curstring data m curmarkup m curstring markuphandler addtextnode m_curstring isempty m_children textnode m_curstring m_curmarkup m_headinglevel addtextnode m_curstring m_curmarkup m_curstring m parent parent m children set auto delete true add end handler listitem this list item handler end list item add start handler para this list item handler start paragraph m_parent m_children setautodelete addendhandler listitemhandler endlistitem addstarthandler listitemhandler startparagraph list item handler list item handler listitemhandler listitemhandler void list item handler start list item const q xml attributes attrib m parent set delegate this debug 2 start list item handler n listitemhandler startlistitem qxmlattributes m_parent setdelegate void list item handler end list item debug 2 end list item handler n m parent set delegate 0 listitemhandler endlistitem m_parent setdelegate void list item handler start paragraph const q xml attributes attrib paragraph handler par handler new paragraph handler this par handler start paragraph attrib m children append par handler listitemhandler startparagraph qxmlattributes paragraphhandler parhandler paragraphhandler parhandler startparagraph m_children parhandler i doc iterator list item handler contents const return new list item iterator this idociterator listitemhandler listitemiterator ordered list handler ordered list handler i base handler parent m parent parent m children set auto delete true add end handler orderedlist this ordered list handler end ordered list add start handler listitem this ordered list handler start ordered list item orderedlisthandler orderedlisthandler ibasehandler m_parent m_children setautodelete addendhandler orderedlisthandler endorderedlist addstarthandler orderedlisthandler startorderedlistitem ordered list handler ordered list handler orderedlisthandler orderedlisthandler void ordered list handler start ordered list const q xml attributes attrib m parent set delegate this orderedlisthandler startorderedlist qxmlattributes m_parent setdelegate void ordered list handler end ordered list m parent set delegate 0 orderedlisthandler endorderedlist m_parent setdelegate void ordered list handler start ordered list item const q xml attributes attrib list item handler li handler new list item handler this li handler start list item attrib m children append li handler orderedlisthandler startorderedlistitem qxmlattributes listitemhandler lihandler listitemhandler lihandler startlistitem m_children lihandler i doc iterator ordered list handler elements const return new ordered list iterator this idociterator orderedlisthandler orderedlistiterator toc list handler toc list handler i base handler parent m parent parent m children set auto delete true add end handler toclist this toc list handler end toc list add start handler tocitem this toc list handler start toc item toclisthandler toclisthandler ibasehandler m_parent m_children setautodelete addendhandler toclisthandler endtoclist addstarthandler toclisthandler starttocitem toc list handler toc list handler toclisthandler toclisthandler void toc list handler start toc list const q xml attributes attrib m parent set delegate this toclisthandler starttoclist qxmlattributes m_parent setdelegate void toc list handler end toc list m parent set delegate 0 toclisthandler endtoclist m_parent setdelegate void toc list handler start toc item const q xml attributes attrib toc item handler ti handler new toc item handler this ti handler start toc item attrib m children append ti handler toclisthandler starttocitem qxmlattributes tocitemhandler tihandler tocitemhandler tihandler starttocitem m_children tihandler i doc iterator toc list handler elements const return new toc list iterator this idociterator toclisthandler toclistiterator toc item handler toc item handler i base handler parent m parent parent add end handler tocitem this toc item handler end toc item tocitemhandler tocitemhandler ibasehandler m_parent addendhandler tocitemhandler endtocitem toc item handler toc item handler tocitemhandler tocitemhandler void toc item handler start toc item const q xml attributes attrib m parent set delegate this m id attrib value id m curstring tocitemhandler starttocitem qxmlattributes m_parent setdelegate m_id m_curstring void toc item handler end toc item m title m curstring m parent set delegate 0 tocitemhandler endtocitem m_title m_curstring m_parent setdelegate itemized list handler itemized list handler i base handler parent m parent parent m children set auto delete true add end handler itemizedlist this itemized list handler end itemized list add start handler listitem this itemized list handler start itemized list item itemizedlisthandler itemizedlisthandler ibasehandler m_parent m_children setautodelete addendhandler itemizedlisthandler enditemizedlist addstarthandler itemizedlisthandler startitemizedlistitem itemized list handler itemized list handler itemizedlisthandler itemizedlisthandler void itemized list handler start itemized list const q xml attributes attrib m parent set delegate this itemizedlisthandler startitemizedlist qxmlattributes m_parent setdelegate void itemized list handler end itemized list m parent set delegate 0 itemizedlisthandler enditemizedlist m_parent setdelegate void itemized list handler start itemized list item const q xml attributes attrib list item handler li handler new list item handler this li handler start list item attrib m children append li handler itemizedlisthandler startitemizedlistitem qxmlattributes listitemhandler lihandler listitemhandler lihandler startlistitem m_children lihandler i doc iterator itemized list handler elements const return new itemized list iterator this idociterator itemizedlisthandler itemizedlistiterator m parent parent add end handler parametername this parameter handler end parameter name m_parent addendhandler parameterhandler endparametername parameter handler parameter handler parameterhandler parameterhandler void parameter handler start parameter name const q xml attributes attrib m parent set delegate this parameterhandler startparametername qxmlattributes m_parent setdelegate void parameter handler end parameter name m name m curstring debug 2 parameter s n m name data m curstring m parent set delegate 0 parameterhandler endparametername m_name m_curstring m_name m_curstring m_parent setdelegate m parent parent add end handler parameteritem this parameter item handler end parameter item add start handler parameternamelist add end handler parameternamelist add start handler parametername this parameter item handler start parameter name add start handler parameterdescription add end handler parameterdescription add start handler para this parameter item handler start paragraph m parameters set auto delete true m description 0 m_parent addendhandler parameteritemhandler endparameteritem addstarthandler addendhandler addstarthandler parameteritemhandler startparametername addstarthandler addendhandler addstarthandler parameteritemhandler startparagraph m_parameters setautodelete m_description parameter item handler parameter item handler delete m description parameteritemhandler parameteritemhandler m_description void parameter item handler start parameter item const q xml attributes m parent set delegate this parameteritemhandler startparameteritem qxmlattributes m_parent setdelegate void parameter item handler end parameter item m parent set delegate 0 parameteritemhandler endparameteritem m_parent setdelegate void parameter item handler start parameter name const q xml attributes attrib parameter handler param new parameter handler this m parameters append param param start parameter name attrib parameteritemhandler startparametername qxmlattributes parameterhandler parameterhandler m_parameters startparametername void parameter item handler start paragraph const q xml attributes attrib m description new paragraph handler this m description start paragraph attrib parameteritemhandler startparagraph qxmlattributes m_description paragraphhandler m_description startparagraph i doc iterator parameter item handler param names const return new parameter item iterator this idociterator parameteritemhandler paramnames parameteritemiterator m parent parent add end handler parameterlist this parameter list handler end parameter list add start handler parameteritem this parameter list handler start parameter item m paramitems set auto delete true m_parent addendhandler parameterlisthandler endparameterlist addstarthandler parameterlisthandler startparameteritem m_paramitems setautodelete parameter list handler parameter list handler parameterlisthandler parameterlisthandler void parameter list handler start parameter list const q xml attributes attrib q string kind attrib value kind if kind retval m type ret val else if kind exception m type exception else if kind param m type param else debug 1 error invalid parameterlist type s n kind data debug 2 parameterlist kind s n kind data m parent set delegate this parameterlisthandler startparameterlist qxmlattributes qstring m_type retval m_type m_type m_parent setdelegate void parameter list handler end parameter list m parent set delegate 0 parameterlisthandler endparameterlist m_parent setdelegate void parameter list handler start parameter item const q xml attributes attrib parameter item handler param item new parameter item handler this m paramitems append param item param item start parameter item attrib parameterlisthandler startparameteritem qxmlattributes parameteritemhandler paramitem parameteritemhandler m_paramitems paramitem paramitem startparameteritem i doc iterator parameter list handler params const return new parameter list iterator this idociterator parameterlisthandler parameterlistiterator m parent parent add end handler linebreak this line break handler end line break m_parent addendhandler linebreakhandler endlinebreak line break handler line break handler linebreakhandler linebreakhandler void line break handler start line break const q xml attributes attrib m parent set delegate this debug 2 start linebreak n linebreakhandler startlinebreak qxmlattributes m_parent setdelegate void line break handler end line break m parent set delegate 0 debug 2 end linebreak n linebreakhandler endlinebreak m_parent setdelegate m parent parent add end handler link this link handler end link m_parent addendhandler linkhandler endlink link handler link handler linkhandler linkhandler void link handler start link const q xml attributes attrib m parent set delegate this debug 2 start link n m ref attrib value linkend m curstring linkhandler startlink qxmlattributes m_parent setdelegate m_ref m_curstring void link handler end link m text m curstring m curstring m parent set delegate 0 debug 2 end link n linkhandler endlink m_text m_curstring m_curstring m_parent setdelegate m parent parent add end handler email this e mail handler ende mail m_parent addendhandler emailhandler endemail e mail handler e mail handler emailhandler emailhandler void e mail handler starte mail const q xml attributes attrib m parent set delegate this debug 2 start email n m curstring emailhandler startemail qxmlattributes m_parent setdelegate m_curstring void e mail handler ende mail m address m curstring m curstring m parent set delegate 0 debug 2 end email n emailhandler endemail m_address m_curstring m_curstring m_parent setdelegate m parent parent add end handler ulink this u link handler endu link m_parent addendhandler ulinkhandler endulink u link handler u link handler ulinkhandler ulinkhandler void u link handler startu link const q xml attributes attrib m parent set delegate this debug 2 start ulink n m url attrib value url m curstring ulinkhandler startulink qxmlattributes m_parent setdelegate m_url m_curstring void u link handler endu link m text m curstring m curstring m parent set delegate 0 debug 2 end ulink n ulinkhandler endulink m_text m_curstring m_curstring m_parent setdelegate m parent parent add end handler hruler this h ruler handler endh ruler m_parent addendhandler hrulerhandler endhruler h ruler handler h ruler handler hrulerhandler hrulerhandler void h ruler handler starth ruler const q xml attributes attrib m parent set delegate this debug 2 start hruler n hrulerhandler starthruler qxmlattributes m_parent setdelegate void h ruler handler endh ruler m parent set delegate 0 debug 2 end hruler n hrulerhandler endhruler m_parent setdelegate m parent parent add end handler ref this ref handler end ref m_parent addendhandler refhandler endref ref handler ref handler refhandler refhandler void ref handler start ref const q xml attributes attrib m parent set delegate this m refid attrib value refid m extid attrib value external assert attrib value kindref compound attrib value kindref member m targetkind attrib value kindref compound compound member debug 2 start ref ref id s n m refid data m curstring refhandler startref qxmlattributes m_parent setdelegate m_refid m_extid m_targetkind refid m_refid m_curstring void ref handler end ref m linktext m curstring m parent set delegate 0 debug 2 end ref text s n m linktext data refhandler endref m_linktext m_curstring m_parent setdelegate m_linktext m parent parent m paragraph 0 m title 0 add start handler title this simple sect handler start title add start handler para this simple sect handler start paragraph add end handler simplesect this simple sect handler end simple sect m_parent m_paragraph m_title addstarthandler simplesecthandler starttitle addstarthandler simplesecthandler startparagraph addendhandler simplesecthandler endsimplesect simple sect handler simple sect handler simplesecthandler simplesecthandler void simple sect handler start simple sect const q xml attributes attrib m typestring attrib value kind m type s typemapper string to type m typestring debug 2 start simple section s n m typestring data m parent set delegate this simplesecthandler startsimplesect qxmlattributes m_typestring m_type s_typemapper stringtotype m_typestring m_typestring m_parent setdelegate void simple sect handler end simple sect debug 2 end simple section n m parent set delegate 0 simplesecthandler endsimplesect m_parent setdelegate void simple sect handler start title const q xml attributes attrib assert m title 0 m title new title handler this m title start title attrib simplesecthandler starttitle qxmlattributes m_title m_title titlehandler m_title starttitle void simple sect handler start paragraph const q xml attributes attrib assert m paragraph 0 m paragraph new paragraph handler this m paragraph start paragraph attrib simplesecthandler startparagraph qxmlattributes m_paragraph m_paragraph paragraphhandler m_paragraph startparagraph void variable list entry handler start var list entry const q xml attributes attrib m parent set delegate this debug 2 start varlistentry n variablelistentryhandler startvarlistentry qxmlattributes m_parent setdelegate void variable list entry handler end var list entry m parent set delegate 0 debug 2 end varlistentry n variablelistentryhandler endvarlistentry m_parent setdelegate void variable list entry handler start list item const q xml attributes attrib m parent set delegate this debug 2 start listitem n variablelistentryhandler startlistitem qxmlattributes m_parent setdelegate void variable list entry handler end list item m parent set delegate 0 debug 2 end listitem n variablelistentryhandler endlistitem m_parent setdelegate void variable list entry handler start term const q xml attributes attrib m curstring m linkedtexthandler new linked text handler this m term m linkedtexthandler start term variablelistentryhandler startterm qxmlattributes m_curstring m_linkedtexthandler linkedtexthandler m_term m_linkedtexthandler void variable list entry handler end term delete m linkedtexthandler variablelistentryhandler endterm m_linkedtexthandler void variable list entry handler start paragraph const q xml attributes attrib assert m description 0 m description new paragraph handler this m description start paragraph attrib variablelistentryhandler startparagraph qxmlattributes m_description m_description paragraphhandler m_description startparagraph m parent parent m description 0 m linkedtexthandler 0 add start handler term this variable list entry handler start term add end handler term this variable list entry handler end term add start handler para this variable list entry handler start paragraph add end handler varlistentry this variable list entry handler end var list entry add end handler listitem this variable list entry handler end list item m_parent m_description m_linkedtexthandler addstarthandler variablelistentryhandler startterm addendhandler variablelistentryhandler endterm addstarthandler variablelistentryhandler startparagraph addendhandler variablelistentryhandler endvarlistentry addendhandler variablelistentryhandler endlistitem variable list entry handler variable list entry handler delete m description variablelistentryhandler variablelistentryhandler m_description i linked text iterator variable list entry handler term const return new linked text iterator m term ilinkedtextiterator variablelistentryhandler linkedtextiterator m_term void variable list handler start variable list const q xml attributes attrib m parent set delegate this debug 2 start variablelist n variablelisthandler startvariablelist qxmlattributes m_parent setdelegate void variable list handler end variable list debug 2 end variablelist n m parent set delegate 0 variablelisthandler endvariablelist m_parent setdelegate void variable list handler start var list entry const q xml attributes attrib variable list entry handler vle new variable list entry handler this vle start var list entry attrib m curentry vle m entries append vle variablelisthandler startvarlistentry qxmlattributes variablelistentryhandler variablelistentryhandler startvarlistentry m_curentry m_entries void variable list handler start list item const q xml attributes attrib assert m curentry 0 m curentry start list item attrib variablelisthandler startlistitem qxmlattributes m_curentry m_curentry startlistitem m parent parent m entries set auto delete true add start handler varlistentry this variable list handler start var list entry add start handler listitem this variable list handler start list item add end handler variablelist this variable list handler end variable list m_parent m_entries setautodelete addstarthandler variablelisthandler startvarlistentry addstarthandler variablelisthandler startlistitem addendhandler variablelisthandler endvariablelist variable list handler variable list handler variablelisthandler variablelisthandler i doc iterator variable list handler entries const return new variable list iterator this idociterator variablelisthandler variablelistiterator m parent parent m children set auto delete true add end handler highlight this highlight handler end highlight add start handler ref this highlight handler start ref add start handler sp this highlight handler start space m hl i doc highlight invalid m_parent m_children setautodelete addendhandler highlighthandler endhighlight addstarthandler highlighthandler startref addstarthandler highlighthandler startspace m_hl idochighlight highlight handler highlight handler highlighthandler highlighthandler void highlight handler start highlight const q xml attributes attrib m hlstring attrib value class m hl s highlightmapper string to kind m hlstring m curstring m parent set delegate this debug 2 start highlight n highlighthandler starthighlight qxmlattributes m_hlstring m_hl s_highlightmapper stringtokind m_hlstring m_curstring m_parent setdelegate void highlight handler end highlight add text node debug 2 end highlight class s n m hlstring data m parent set delegate 0 highlighthandler endhighlight addtextnode m_hlstring m_parent setdelegate void highlight handler start ref const q xml attributes attrib add text node ref handler rh new ref handler this m children append rh rh start ref attrib highlighthandler startref qxmlattributes addtextnode refhandler refhandler m_children startref void highlight handler start space const q xml attributes m curstring add text node highlighthandler startspace qxmlattributes m_curstring addtextnode i doc iterator highlight handler code elements const return new highlight iterator this idociterator highlighthandler codeelements highlightiterator void highlight handler add text node printf m curstring s n m curstring data if m curstring is empty m children append new text node m curstring i doc markup normal 0 debug 2 add text node text s n m curstring data m curstring highlighthandler addtextnode m_curstring m_curstring m_curstring isempty m_children textnode m_curstring idocmarkup addtextnode m_curstring m_curstring void code line handler start code line const q xml attributes attrib m parent set delegate this debug 2 start codeline n codelinehandler startcodeline qxmlattributes m_parent setdelegate void code line handler end code line add text node debug 2 end codeline n m parent set delegate 0 codelinehandler endcodeline addtextnode m_parent setdelegate void code line handler start line number const q xml attributes attrib m parent set delegate this debug 2 start linenumber n m linenumber attrib value line to int m refid attrib value refid codelinehandler startlinenumber qxmlattributes m_parent setdelegate m_linenumber toint m_refid void code line handler end line number m parent set delegate 0 codelinehandler endlinenumber m_parent setdelegate void code line handler start highlight const q xml attributes attrib add text node highlight handler hlh new highlight handler this m children append hlh hlh start highlight attrib codelinehandler starthighlight qxmlattributes addtextnode highlighthandler highlighthandler m_children starthighlight void code line handler start ref const q xml attributes attrib add text node ref handler rh new ref handler this m children append rh rh start ref attrib codelinehandler startref qxmlattributes addtextnode refhandler refhandler m_children startref m parent parent m children set auto delete true add end handler codeline this code line handler end code line add end handler linenumber this code line handler end line number add start handler highlight this code line handler start highlight add start handler ref this code line handler start ref m linenumber 0 m_parent m_children setautodelete addendhandler codelinehandler endcodeline addendhandler codelinehandler endlinenumber addstarthandler codelinehandler starthighlight addstarthandler codelinehandler startref m_linenumber code line handler code line handler codelinehandler codelinehandler i doc iterator code line handler code elements const return new code line iterator this idociterator codelinehandler codeelements codelineiterator void code line handler add text node if m curstring is empty m children append new text node m curstring i doc markup normal 0 debug 2 add text node text s n m curstring data m curstring codelinehandler addtextnode m_curstring isempty m_children textnode m_curstring idocmarkup addtextnode m_curstring m_curstring m parent parent add end handler formula this formula handler end formula m_parent addendhandler formulahandler endformula formula handler formula handler formulahandler formulahandler void formula handler start formula const q xml attributes attrib m id attrib value id m curstring m parent set delegate this formulahandler startformula qxmlattributes m_id m_curstring m_parent setdelegate void formula handler end formula m text m curstring debug 2 formula id s text s n m id data m text data m parent set delegate 0 formulahandler endformula m_text m_curstring m_id m_text m_parent setdelegate m parent parent add end handler image this image handler end image m_parent addendhandler imagehandler endimage image handler image handler imagehandler imagehandler void image handler start image const q xml attributes attrib m name attrib value name m curstring m parent set delegate this imagehandler startimage qxmlattributes m_name m_curstring m_parent setdelegate void image handler end image m caption m curstring debug 2 image name s caption s n m name data m caption data m parent set delegate 0 imagehandler endimage m_caption m_curstring m_name m_caption m_parent setdelegate m parent parent add end handler anchor this anchor handler end anchor m_parent addendhandler anchorhandler endanchor anchor handler anchor handler anchorhandler anchorhandler void anchor handler start anchor const q xml attributes attrib m id attrib value id m parent set delegate this anchorhandler startanchor qxmlattributes m_id m_parent setdelegate void anchor handler end anchor debug 2 anchor id s n m id data m parent set delegate 0 anchorhandler endanchor m_id m_parent setdelegate m parent parent add end handler dotfile this dot file handler end dot file m_parent addendhandler dotfilehandler enddotfile dot file handler dot file handler dotfilehandler dotfilehandler void dot file handler start dot file const q xml attributes attrib m name attrib value name m curstring m parent set delegate this dotfilehandler startdotfile qxmlattributes m_name m_curstring m_parent setdelegate void dot file handler end dot file m caption m curstring debug 2 image name s caption s n m name data m caption data m parent set delegate 0 dotfilehandler enddotfile m_caption m_curstring m_name m_caption m_parent setdelegate m parent parent add end handler indexentry this index entry handler end index entry add start handler primaryie this index entry handler start primaryie add end handler primaryie this index entry handler end primaryie add start handler secondaryie this index entry handler start secondaryie add end handler secondaryie this index entry handler end secondaryie m_parent addendhandler indexentryhandler endindexentry addstarthandler indexentryhandler startprimaryie addendhandler indexentryhandler endprimaryie addstarthandler indexentryhandler startsecondaryie addendhandler indexentryhandler endsecondaryie index entry handler index entry handler indexentryhandler indexentryhandler void index entry handler start index entry const q xml attributes attrib debug 2 start index entry n m parent set delegate this indexentryhandler startindexentry qxmlattributes m_parent setdelegate void index entry handler end index entry debug 2 index entry primary s secondary s n m primary data m secondary data m parent set delegate 0 indexentryhandler endindexentry m_primary m_secondary m_parent setdelegate void index entry handler start primaryie const q xml attributes attrib m curstring indexentryhandler startprimaryie qxmlattributes m_curstring void index entry handler end primaryie m primary m curstring indexentryhandler endprimaryie m_primary m_curstring void index entry handler start secondaryie const q xml attributes attrib m curstring indexentryhandler startsecondaryie qxmlattributes m_curstring void index entry handler end secondaryie m secondary m curstring indexentryhandler endsecondaryie m_secondary m_curstring m parent parent m children set auto delete true add end handler entry this entry handler end entry add start handler para this entry handler start paragraph m_parent m_children setautodelete addendhandler entryhandler endentry addstarthandler entryhandler startparagraph entry handler entry handler entryhandler entryhandler void entry handler start entry const q xml attributes m parent set delegate this entryhandler startentry qxmlattributes m_parent setdelegate void entry handler end entry m parent set delegate 0 entryhandler endentry m_parent setdelegate void entry handler start paragraph const q xml attributes attrib paragraph handler ph new paragraph handler this ph start paragraph attrib m children append ph entryhandler startparagraph qxmlattributes paragraphhandler paragraphhandler startparagraph m_children i doc iterator entry handler contents const return new entry iterator this idociterator entryhandler entryiterator m parent parent m children set auto delete true add end handler row this row handler end row add start handler entry this row handler start entry m_parent m_children setautodelete addendhandler rowhandler endrow addstarthandler rowhandler startentry row handler row handler rowhandler rowhandler void row handler start row const q xml attributes m parent set delegate this rowhandler startrow qxmlattributes m_parent setdelegate void row handler end row m parent set delegate 0 rowhandler endrow m_parent setdelegate void row handler start entry const q xml attributes attrib entry handler eh new entry handler this eh start entry attrib m children append eh rowhandler startentry qxmlattributes entryhandler entryhandler startentry m_children i doc iterator row handler entries const return new row iterator this idociterator rowhandler rowiterator m parent parent m children set auto delete true add end handler table this table handler end table add start handler row this table handler start row add start handler caption this table handler start caption add end handler caption this table handler end caption m_parent m_children setautodelete addendhandler tablehandler endtable addstarthandler tablehandler startrow addstarthandler tablehandler startcaption addendhandler tablehandler endcaption table handler table handler tablehandler tablehandler void table handler start table const q xml attributes attrib m parent set delegate this m numcolumns attrib value cols to int debug 2 table cols d n m numcolumns tablehandler starttable qxmlattributes m_parent setdelegate m_numcolumns toint m_numcolumns void table handler end table m parent set delegate 0 tablehandler endtable m_parent setdelegate void table handler start row const q xml attributes attrib row handler rh new row handler this rh start row attrib m children append rh tablehandler startrow qxmlattributes rowhandler rowhandler startrow m_children void table handler start caption const q xml attributes attrib m curstring tablehandler startcaption qxmlattributes m_curstring void table handler end caption m caption m curstring tablehandler endcaption m_caption m_curstring i doc iterator table handler rows const return new table iterator this idociterator tablehandler tableiterator m parent parent m children set auto delete true add end handler copydoc this copy handler end copy add start handler para this copy handler start paragraph m_parent m_children setautodelete addendhandler copyhandler endcopy addstarthandler copyhandler startparagraph copy handler copy handler copyhandler copyhandler void copy handler start copy const q xml attributes attrib m parent set delegate this debug 2 start copy handler n copyhandler startcopy qxmlattributes m_parent setdelegate void copy handler end copy debug 2 end copy handler n m parent set delegate 0 copyhandler endcopy m_parent setdelegate void copy handler start paragraph const q xml attributes attrib paragraph handler par handler new paragraph handler this par handler start paragraph attrib m children append par handler copyhandler startparagraph qxmlattributes paragraphhandler parhandler paragraphhandler parhandler startparagraph m_children parhandler i doc iterator copy handler contents const return new copy iterator this idociterator copyhandler copyiterator m parent parent m type i doc verbatim invalid add end handler verbatim this verbatim handler end verbatim add end handler latexonly this verbatim handler end verbatim add end handler htmlonly this verbatim handler end verbatim m_parent m_type idocverbatim addendhandler verbatimhandler endverbatim addendhandler verbatimhandler endverbatim addendhandler verbatimhandler endverbatim verbatim handler verbatim handler verbatimhandler verbatimhandler void verbatim handler start verbatim const q xml attributes types type m type type m parent set delegate this m curstring verbatimhandler startverbatim qxmlattributes m_type m_parent setdelegate m_curstring void verbatim handler end verbatim m text m curstring m parent set delegate 0 verbatimhandler endverbatim m_text m_curstring m_parent setdelegate m parent parent m letter 0 m type type add end handler symbol switch type case i doc symbol invalid m typestring invalid break case i doc symbol umlaut m typestring umlaut break case i doc symbol acute m typestring acute break case i doc symbol grave m typestring grave break case i doc symbol circ m typestring circ break case i doc symbol tilde m typestring tilde break case i doc symbol szlig m typestring szlig break case i doc symbol cedil m typestring cedil break case i doc symbol ring m typestring ring break case i doc symbol nbsp m typestring nbsp break case i doc symbol copy m typestring copy break m_parent m_letter m_type addendhandler idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring idocsymbol m_typestring symbol handler symbol handler symbolhandler symbolhandler void symbol handler start symbol const q xml attributes attrib q string ls attrib value char if ls is empty m letter ls latin1 0 symbolhandler startsymbol qxmlattributes qstring isempty m_letter m parent parent m internal 0 m level level m title 0 q string section key m paragraphs set auto delete true m subsections set auto delete true add start handler title this doc section handler start title add start handler para this doc section handler start paragraph if level 6 section key sprintf sect d level 1 add start handler section key this doc section handler start sub section add start handler internal this doc section handler start internal section key sprintf sect d level add end handler section key this doc section handler end doc section m_parent m_internal m_level m_title qstring sectionkey m_paragraphs setautodelete m_subsections setautodelete addstarthandler docsectionhandler starttitle addstarthandler docsectionhandler startparagraph sectionkey addstarthandler sectionkey docsectionhandler startsubsection addstarthandler docsectionhandler startinternal sectionkey addendhandler sectionkey docsectionhandler enddocsection doc section handler doc section handler docsectionhandler docsectionhandler void doc section handler start doc section const q xml attributes attrib m parent set delegate this debug 2 start docsection n m id attrib value id docsectionhandler startdocsection qxmlattributes m_parent setdelegate m_id void doc section handler end doc section m parent set delegate 0 debug 2 end docsection n docsectionhandler enddocsection m_parent setdelegate void doc section handler start title const q xml attributes attrib m title new title handler this m title start title attrib docsectionhandler starttitle qxmlattributes m_title titlehandler m_title starttitle void doc section handler start sub section const q xml attributes attrib doc section handler sec handler new doc section handler this m level 1 sec handler start doc section attrib m subsections append sec handler docsectionhandler startsubsection qxmlattributes docsectionhandler sechandler docsectionhandler m_level sechandler startdocsection m_subsections sechandler void doc section handler start paragraph const q xml attributes attrib paragraph handler par handler new paragraph handler this par handler start paragraph attrib m paragraphs append par handler docsectionhandler startparagraph qxmlattributes paragraphhandler parhandler paragraphhandler parhandler startparagraph m_paragraphs parhandler void doc section handler start internal const q xml attributes attrib m internal new doc internal handler this m level m internal start internal attrib docsectionhandler startinternal qxmlattributes m_internal docinternalhandler m_level m_internal startinternal i doc iterator doc section handler paragraphs const return new doc section para iterator this idociterator docsectionhandler docsectionparaiterator i doc iterator doc section handler sub sections const return new doc section sub iterator this idociterator docsectionhandler subsections docsectionsubiterator i doc internal doc section handler internal const return m internal idocinternal docsectionhandler m_internal m parent gh m graph gh add end handler node this node handler end node add start handler link this node handler start link add end handler link this node handler end link add start handler label this node handler start label add end handler label this node handler end label add start handler childnode this node handler start child node m children set auto delete true m_parent m_graph addendhandler nodehandler endnode addstarthandler nodehandler startlink addendhandler nodehandler endlink addstarthandler nodehandler startlabel addendhandler nodehandler endlabel addstarthandler nodehandler startchildnode m_children setautodelete node handler node handler nodehandler nodehandler void node handler start node const q xml attributes attrib debug 2 start node n m parent set delegate this m id attrib value id nodehandler startnode qxmlattributes startnode m_parent setdelegate m_id void node handler end node debug 2 end node n m parent set delegate 0 nodehandler endnode endnode m_parent setdelegate void node handler start label const q xml attributes attrib m curstring nodehandler startlabel qxmlattributes m_curstring void node handler end label m label m curstring nodehandler endlabel m_label m_curstring void node handler start link const q xml attributes attrib m link attrib value refid nodehandler startlink qxmlattributes m_link void node handler end link nodehandler endlink void node handler start child node const q xml attributes attrib child node handler cnh new child node handler this m graph cnh start child node attrib m children append cnh nodehandler startchildnode qxmlattributes childnodehandler childnodehandler m_graph startchildnode m_children i child node iterator node handler children const return new child node iterator this ichildnodeiterator nodehandler childnodeiterator m parent parent m graph gh add end handler childnode this child node handler end child node add start handler edgelabel this child node handler start edge label m edgelabels set auto delete true m_parent m_graph addendhandler childnodehandler endchildnode addstarthandler childnodehandler startedgelabel m_edgelabels setautodelete child node handler child node handler childnodehandler childnodehandler void child node handler start child node const q xml attributes attrib debug 2 start child node n m id attrib value refid m relationstring attrib value relation m relation s edgerelationmapper string to node relation m relationstring m parent set delegate this childnodehandler startchildnode qxmlattributes startchildnode m_id m_relationstring m_relation s_edgerelationmapper stringtonoderelation m_relationstring m_parent setdelegate void child node handler end child node debug 2 end child node n m parent set delegate 0 childnodehandler endchildnode endchildnode m_parent setdelegate void child node handler start edge label const q xml attributes attrib edge label handler elh new edge label handler this elh start edge label attrib m edgelabels append elh childnodehandler startedgelabel qxmlattributes edgelabelhandler edgelabelhandler startedgelabel m_edgelabels i node child node handler node const return m graph get node by id m id inode childnodehandler m_graph getnodebyid m_id i edge label iterator child node handler edge labels const return new edge label iterator this iedgelabeliterator childnodehandler edgelabels edgelabeliterator m parent parent add end handler edgelabel this edge label handler end edge label m_parent addendhandler edgelabelhandler endedgelabel edge label handler edge label handler edgelabelhandler edgelabelhandler void edge label handler start edge label const q xml attributes m parent set delegate this m curstring edgelabelhandler startedgelabel qxmlattributes m_parent setdelegate m_curstring void edge label handler end edge label m label m curstring m parent set delegate 0 edgelabelhandler endedgelabel m_label m_curstring m_parent setdelegate i member member reference member const return m mainhandler member by id m memid return 0 imember memberreference m_mainhandler memberbyid m_memid void member reference initialize main handler mh m mainhandler mh memberreference mainhandler m_mainhandler virtual void to first q list iterator q string to first tofirst qlistiterator qstring tofirst virtual void to last q list iterator q string to last tolast qlistiterator qstring tolast virtual void to next q list iterator q string operator tonext qlistiterator qstring virtual void to prev q list iterator q string operator toprev qlistiterator qstring virtual i compound current const q string id q list iterator q string current return id m mainhandler compound by id id 0 icompound qstring qlistiterator qstring m_mainhandler compoundbyid bool warning const q xml parse exception return false qxmlparseexception bool error const q xml parse exception return false qxmlparseexception bool fatal error const q xml parse exception exception debug 1 fatal error at line d column d s n exception line number exception column number exception message data return false fatalerror qxmlparseexception linenumber columnnumber compound type map m map set auto delete true m map insert class new int i compound class m map insert struct new int i compound struct m map insert union new int i compound union m map insert interface new int i compound interface m map insert protocol new int i compound interface m map insert category new int i compound interface m map insert exception new int i compound exception m map insert file new int i compound file m map insert namespace new int i compound namespace m map insert group new int i compound group m map insert page new int i compound page m map insert example new int i compound page m map insert dir new int i compound page compoundtypemap m_map setautodelete m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound m_map icompound virtual compound type map compoundtypemap i compound compound kind map const q string s int val m map find s if val 0 debug 1 warning s is an invalid compound type n s data return i compound invalid else return i compound compound kind val icompound compoundkind qstring m_map icompound icompound compoundkind m parent parent m children children add start handler ref this linked text handler start ref add end handler ref this linked text handler end ref m children set auto delete true m ref 0 m_parent m_children addstarthandler linkedtexthandler startref addendhandler linkedtexthandler endref m_children setautodelete m_ref linked text handler linked text handler linkedtexthandler linkedtexthandler void linked text handler start const char end tag add end handler end tag this linked text handler end m parent set delegate this m curstring linkedtexthandler endtag addendhandler endtag linkedtexthandler m_parent setdelegate m_curstring void linked text handler end if m curstring is empty m children append new lt text m curstring debug 2 linked text handler add text s n m curstring data m curstring m parent set delegate 0 linkedtexthandler m_curstring isempty m_children lt_text m_curstring linkedtexthandler m_curstring m_curstring m_parent setdelegate void linked text handler start ref const q xml attributes attrib if m curstring is empty m children append new lt text m curstring debug 2 linked text handler add text s n m curstring data m curstring assert m ref 0 m ref new lt ref m ref set ref id attrib value refid m ref set ext id attrib value external assert attrib value kindref compound attrib value kindref member m ref set target kind attrib value kindref compound ilt ref compound ilt ref member linkedtexthandler startref qxmlattributes m_curstring isempty m_children lt_text m_curstring linkedtexthandler m_curstring m_curstring m_ref m_ref lt_ref m_ref setrefid m_ref setextid m_ref settargetkind ilt_ref ilt_ref void linked text handler end ref m ref set text m curstring m children append m ref debug 2 linked text handler add ref s n m ref text latin1 m ref 0 linkedtexthandler endref m_ref settext m_curstring m_children m_ref linkedtexthandler m_ref m_ref q string linked text handler to string const q list linked text impl list q list iterator linked text impl li list q string result linked text impl lt for li to first lt li current li switch lt kind case i linked text kind text result dynamic cast ilt text lt text latin1 break case i linked text kind ref result dynamic cast ilt ref lt text latin1 break return result qstring linkedtexthandler tostring qlist linkedtextimpl qlistiterator linkedtextimpl qstring linkedtextimpl tofirst ilinkedtext kind_text dynamic_cast ilt_text ilinkedtext kind_ref dynamic_cast ilt_ref inline bool q file info caching const return cache qfileinfo inline bool q file info caching const return cache qfileinfo q string q file info file name const int p fn find rev if p 1 return fn else return fn mid p 1 qstring qfileinfo filename findrev q string q file info abs file path const if q dir is relative path fn q string tmp q dir current dir path tmp tmp fn make abs tmp return q dir clean dir path tmp else q string tmp fn make abs tmp return q dir clean dir path tmp qstring qfileinfo absfilepath qdir isrelativepath qstring qdir currentdirpath makeabs qdir cleandirpath qstring makeabs qdir cleandirpath q string q file info dir path bool abs path const q string s if abs path s abs file path else s fn int pos s find rev if pos 1 return q string from latin1 else if pos 0 return q string from latin1 return s left pos qstring qfileinfo dirpath abspath qstring abspath absfilepath findrev qstring fromlatin1 qstring fromlatin1 bool q file info is file const if fic cache do stat return fic fic st st mode stat mask stat reg false qfileinfo isfile dostat st_mode stat_mask stat_reg bool q file info is dir const if fic cache do stat return fic fic st st mode stat mask stat dir false qfileinfo isdir dostat st_mode stat_mask stat_dir bool q file info is sym link const if fic cache do stat return fic fic is sym link false qfileinfo issymlink dostat issymlink q string q file info read link const q string r return r qstring qfileinfo readlink qstring q string q file info owner const return q string null qstring qfileinfo qstring uint q file info owner id const return uint 2 qfileinfo ownerid q string q file info group const return q string null qstring qfileinfo qstring uint q file info group id const return uint 2 qfileinfo groupid bool q file info permission int permission spec const return true qfileinfo permissionspec uint q file info size const if fic cache do stat if fic return uint fic st st size else return 0 qfileinfo dostat st_size q date time q file info last modified const q date time dt if fic cache do stat if fic dt settime t fic st st mtime return dt qdatetime qfileinfo lastmodified qdatetime dostat settime_t st_mtime q date time q file info last read const q date time dt if fic cache do stat if fic dt settime t fic st st atime return dt qdatetime qfileinfo lastread qdatetime dostat settime_t st_atime void q file info do stat const q file info that q file info this mutable function if that fic that fic new q file info cache statbuf b that fic st that fic is sym link false int r r stat q file encode name fn b if r 0 delete that fic that fic 0 qfileinfo dostat qfileinfo qfileinfo qfileinfocache issymlink qfile encodename void q file info slashify q string n for int i 0 i int n length i if n i n i qfileinfo qstring void q file info make abs q string todo what to do here return qfileinfo makeabs qstring q string q file info file name const int p fn find rev if p 1 return fn else return fn mid p 1 qstring qfileinfo filename findrev q string q file info abs file path const if q dir is relative path fn q string tmp q dir current dir path tmp tmp fn make abs tmp return q dir clean dir path tmp else q string tmp fn make abs tmp return q dir clean dir path tmp qstring qfileinfo absfilepath qdir isrelativepath qstring qdir currentdirpath makeabs qdir cleandirpath qstring makeabs qdir cleandirpath q string q file info dir path bool abs path const q string s if abs path s abs file path else s fn int pos s find rev if pos 1 return q string from latin1 else if pos 0 return q string from latin1 return s left pos qstring qfileinfo dirpath abspath qstring abspath absfilepath findrev qstring fromlatin1 qstring fromlatin1 bool q file info is file const if fic cache do stat return fic fic st st mode stat mask stat reg false qfileinfo isfile dostat st_mode stat_mask stat_reg bool q file info is dir const if fic cache do stat return fic fic st st mode stat mask stat dir false qfileinfo isdir dostat st_mode stat_mask stat_dir bool q file info is sym link const if fic cache do stat return fic fic is sym link false qfileinfo issymlink dostat issymlink q string q file info read link const q string r if defined os unix defined os os2emx char s path max 1 if is sym link return q string int len readlink q file encode name fn data s path max if len 0 s len 0 r q file decode name s endif return r qstring qfileinfo readlink qstring _os_unix_ _os_os2emx_ path_max issymlink qstring qfile encodename path_max qfile decodename q string q file info owner const passwd pw getpwuid owner id if pw return q file decode name pw pw name return q string null qstring qfileinfo ownerid qfile decodename pw_name qstring uint q file info owner id const if fic cache do stat if fic return fic st st uid return nobodyid qfileinfo ownerid dostat st_uid q string q file info group const struct group gr getgrgid group id if gr return q file decode name gr gr name return q string null qstring qfileinfo groupid qfile decodename gr_name qstring uint q file info group id const if fic cache do stat if fic return fic st st gid return nobodyid qfileinfo groupid dostat st_gid bool q file info permission int permission spec const if fic cache do stat if fic uint mask 0 if permission spec read user mask s irusr if permission spec write user mask s iwusr if permission spec exe user mask s ixusr if permission spec read group mask s irgrp if permission spec write group mask s iwgrp if permission spec exe group mask s ixgrp if permission spec read other mask s iroth if permission spec write other mask s iwoth if permission spec exe other mask s ixoth if mask return fic st st mode mask mask else if defined check null q warning q file info permission permission spec is 0 endif return true else return false qfileinfo permissionspec dostat permissionspec readuser s_irusr permissionspec writeuser s_iwusr permissionspec exeuser s_ixusr permissionspec readgroup s_irgrp permissionspec writegroup s_iwgrp permissionspec exegroup s_ixgrp permissionspec readother s_iroth permissionspec writeother s_iwoth permissionspec exeother s_ixoth st_mode check_null qwarning qfileinfo permissionspec uint q file info size const if fic cache do stat if fic return uint fic st st size else return 0 qfileinfo dostat st_size q date time q file info last modified const q date time dt if fic cache do stat if fic dt settime t fic st st mtime return dt qdatetime qfileinfo lastmodified qdatetime dostat settime_t st_mtime q date time q file info last read const q date time dt if fic cache do stat if fic dt settime t fic st st atime return dt qdatetime qfileinfo lastread qdatetime dostat settime_t st_atime void q file info do stat const q file info that q file info this mutable function if that fic that fic new q file info cache statbuf b that fic st that fic is sym link false if defined os unix defined s iflnk if lstat q file encode name fn b 0 if s islnk b st mode that fic is sym link true else return endif int r r stat q file encode name fn b if r 0 delete that fic that fic 0 qfileinfo dostat qfileinfo qfileinfo qfileinfocache issymlink _os_unix_ s_iflnk qfile encodename s_islnk st_mode issymlink qfile encodename void q file info slashify q string return qfileinfo qstring void q file info make abs q string return qfileinfo makeabs qstring q file info q file info fic 0 cache true qfileinfo qfileinfo q file info q file info const q string file fn file slashify fn fic 0 cache true qfileinfo qfileinfo qstring q file info q file info const q file file fn file name slashify fn fic 0 cache true qfileinfo qfileinfo qfile q file info q file info const q dir d const q string file name fn d file path file name slashify fn fic 0 cache true qfileinfo qfileinfo qdir qstring filename filepath filename q file info q file info const q file info fi fn fi fn if fi fic fic new q file info cache fic fi fic else fic 0 cache fi cache qfileinfo qfileinfo qfileinfo qfileinfocache q file info q file info delete fic qfileinfo qfileinfo q file info q file info operator const q file info fi fn fi fn if fi fic delete fic fic 0 else if fic fic new q file info cache check ptr fic fic fi fic cache fi cache return this qfileinfo qfileinfo qfileinfo qfileinfocache check_ptr void q file info set file const q string file fn file slashify fn delete fic fic 0 qfileinfo setfile qstring void q file info set file const q file file fn file name slashify fn delete fic fic 0 qfileinfo setfile qfile void q file info set file const q dir d const q string file name fn d file path file name slashify fn delete fic fic 0 qfileinfo setfile qdir qstring filename filepath filename bool q file info exists const return qt file access fn f ok qfileinfo qt_file_access f_ok void q file info refresh const q file info that q file info this mutable function delete that fic that fic 0 qfileinfo qfileinfo qfileinfo void q file info set caching bool enable if cache enable return cache enable if cache delete fic fic 0 qfileinfo setcaching q string q file info file path const return fn qstring qfileinfo filepath q string q file info base name const q string tmp file name int pos tmp find if pos 1 return tmp else return tmp left pos qstring qfileinfo basename qstring filename q string q file info extension bool complete const q string s file name int pos complete s find s find rev if pos 0 return q string from latin1 else return s right s length pos 1 qstring qfileinfo qstring filename findrev qstring fromlatin1 q dir q file info dir bool abs path const return q dir dir path abs path qdir qfileinfo abspath qdir dirpath abspath bool q file info is readable const return qt file access fn r ok qfileinfo isreadable qt_file_access r_ok bool q file info is writable const return qt file access fn w ok qfileinfo iswritable qt_file_access w_ok bool q file info is executable const return qt file access fn x ok qfileinfo isexecutable qt_file_access x_ok bool q file info is relative const return q dir is relative path fn qfileinfo isrelative qdir isrelativepath bool q file info convert to abs if is relative fn abs file path return q dir is relative path fn qfileinfo converttoabs isrelative absfilepath qdir isrelativepath q str list base str list dc false operator str list qstrlistbase strlist strlist inline q str list q str list operator const q str list str list clear dc str list dc del item dc q str list base operator str list return this qstrlist qstrlist qstrlist strlist strlist del_item qstrlistbase strlist q collection item new item q collection item d return dc qstrdup const char d d void delete item q collection item d if del item delete char d int compare items q collection item s1 q collection item s2 return qstrcmp const char s1 const char s2 qcollection newitem qcollection deleteitem qcollection del_item compareitems qcollection qcollection q str list base str list dc false operator str list qstrlistbase strlist strlist inline q str list q str list operator const q str list str list clear dc str list dc del item dc q str list base operator str list return this qstrlist qstrlist qstrlist strlist strlist del_item qstrlistbase strlist q collection item new item q collection item d return dc qstrdup const char d d void delete item q collection item d if del item delete char d int compare items q collection item s1 q collection item s2 return qstrcmp const char s1 const char s2 qcollection newitem qcollection deleteitem qcollection del_item compareitems qcollection qcollection private int compare items q collection item s1 q collection item s2 return qstricmp const char s1 const char s2 compareitems qcollection qcollection private int compare items q collection item s1 q collection item s2 return qstricmp const char s1 const char s2 compareitems qcollection qcollection inline q string q dir path const return d path qstring qdir dpath inline q string q dir name filter const return name filt qstring qdir namefilter namefilt inline q dir filter spec q dir filter const return filts qdir filterspec qdir inline q dir sort spec q dir sorting const return sorts qdir sortspec qdir inline bool q dir match all dirs const return all dirs qdir matchalldirs alldirs inline bool q dir operator const q dir d const return this d qdir qdir inline q string q dir path const return d path qstring qdir dpath inline q string q dir name filter const return name filt qstring qdir namefilter namefilt inline q dir filter spec q dir filter const return filts qdir filterspec qdir inline q dir sort spec q dir sorting const return sorts qdir sortspec qdir inline bool q dir match all dirs const return all dirs qdir matchalldirs alldirs inline bool q dir operator const q dir d const return this d qdir qdir q string q dir canonical path const q string r char cur path max char tmp path max getcwd cur path max if chdir q file encode name d path 0 getcwd tmp path max r q file decode name tmp chdir cur slashify r return r qstring qdir canonicalpath qstring path_max path_max path_max qfile encodename dpath path_max qfile decodename const q file info list q dir drives at most one instance of q file info list is leaked and this variable points to that list static q file info list known memory leak 0 if known memory leak known memory leak new q file info list if defined os win32 q uint32 drive bits q uint32 get logical drives 0x3ffffff elif defined os os2emx q uint32 drive bits cur if dos query current disk cur drive bits no error exit 1 drive bits 0x3ffffff endif char drive name 4 qstrcpy drive name a while drive bits if drive bits 1 known memory leak append new q file info drive name drive name 0 drive bits drive bits 1 return known memory leak qfileinfolist qdir qfileinfolist qfileinfolist knownmemoryleak knownmemoryleak knownmemoryleak qfileinfolist _os_win32_ q_uint32 drivebits q_uint32 getlogicaldrives _os_os2emx_ q_uint32 drivebits dosquerycurrentdisk drivebits no_error drivebits drivename drivename drivebits drivebits knownmemoryleak qfileinfo drivename drivename drivebits drivebits knownmemoryleak bool q dir mkdir const q string dir name bool accept abs path const if defined cygwin32 return mkdir q file encode name file path dir name accept abs path 0777 0 else return mkdir q file encode name file path dir name accept abs path 0 endif qdir qstring dirname acceptabspath __cygwin32_ qfile encodename filepath dirname acceptabspath qfile encodename filepath dirname acceptabspath bool q dir rmdir const q string dir name bool accept abs path const return rmdir q file encode name file path dir name accept abs path 0 qdir qstring dirname acceptabspath qfile encodename filepath dirname acceptabspath bool q dir is readable const return access q file encode name d path r ok 0 qdir isreadable qfile encodename dpath r_ok bool q dir is root const return d path q string from latin1 qdir isroot dpath qstring fromlatin1 bool accept abs paths if name is empty new name is empty if defined check null q warning q dir rename empty or null file name s endif return false q string fn1 file path name accept abs paths q string fn2 file path new name accept abs paths return rename q file encode name fn1 q file encode name fn2 0 acceptabspaths isempty newname isempty check_null qwarning qdir qstring filepath acceptabspaths qstring filepath newname acceptabspaths qfile encodename qfile encodename bool q dir set current const q string path int r r chdir q file encode name path return r 0 qdir setcurrent qstring qfile encodename q string q dir current dir path q string result statbuf st if stat st 0 char current name path max if getcwd current name path max 0 result q file decode name current name if defined debug if result is null q warning q dir current dir path getcwd failed endif else if defined debug q warning q dir current dir path stat failed endif slashify result return result qstring qdir currentdirpath qstring currentname path_max currentname path_max qfile decodename currentname isnull qwarning qdir currentdirpath qwarning qdir currentdirpath q string q dir home dir path q string d d q file decode name getenv home slashify d if d is null d root dir path return d qstring qdir homedirpath qstring qfile decodename isnull rootdirpath q string q dir root dir path q string d q string from latin1 return d qstring qdir rootdirpath qstring qstring fromlatin1 bool q dir is relative path const q string path int len path length if len 0 return true int i 0 if isalpha path 0 path 1 drive e g a i 2 return path i path i qdir isrelativepath qstring int filter spec int sort spec int i if f list f list new q string list check ptr f list fi list new q file info list check ptr fi list fi list set auto delete true else f list clear fi list clear q string list filters qt makefilterlist name filter bool do dirs filter spec dirs 0 bool do files filter spec files 0 bool no sym links filter spec no sym links 0 bool do readable filter spec readable 0 bool do writable filter spec writable 0 bool do execable filter spec executable 0 bool do hidden filter spec hidden 0 show hidden files if the user asks explicitly for e g if do hidden name filter is empty name filter 0 do hidden true bool do modified filter spec modified 0 bool do system filter spec system 0 q reg exp wc name filter false true wild card case insensitive bool first true q string p d path copy int plen p length if defined os win32 handle ff win32 find data finfo else long ff finddata t finfo endif q file info fi if plen 0 if defined check null warning q dir read dir entries no directory name specified endif return false if p at plen 1 p at plen 1 p p ff ff getfirst p data finfo if ff ff error if defined debug warning q dir read dir entries cannot read the directory s const char d path endif return false while true if first first false else if defined os win32 if ff getnext ff finfo break else if ff getnext ff finfo 1 break endif if defined os win32 int attrib finfo dw file attributes else int attrib finfo attrib endif bool is dir attrib is subdir 0 bool is file is dir bool is sym link false bool is readable true bool is writable attrib is rdonly 0 bool is execable false bool is modified attrib is arch 0 bool is hidden attrib is hidden 0 bool is system attrib is system 0 if defined os win32 const char fname finfo c file name else const char fname finfo name endif if wc match fname 1 all dirs is dir continue q string name fname if do execable q string ext name right 4 lower if ext exe ext com ext bat ext pif ext cmd is execable true if do dirs is dir do files is file if no sym links is sym link continue if filter spec rwe mask 0 if do readable is readable do writable is writable do execable is execable continue if do modified is modified continue if do hidden is hidden continue if do system is system continue fi set file this name fi list append new q file info fi if defined os win32 find close ff else findclose ff endif sort q dir sort item si new q dir sort item fi list count q file info itm i 0 for itm fi list first itm itm fi list next si i item itm qt cmp si sortspec sort spec qsort si i sizeof si 0 qt cmp si put them back in the list fi list set auto delete false fi list clear int j for j 0 j i j fi list append si j item f list append si j item file name delete si fi list set auto delete true if filter spec filter spec filts sort spec sort spec sorts name filter name filt dirty false else dirty true return true filterspec sortspec flist flist qstringlist check_ptr flist filist qfileinfolist check_ptr filist filist setautodelete flist filist qstringlist qt_makefilterlist namefilter dodirs filterspec dofiles filterspec nosymlinks filterspec nosymlinks doreadable filterspec dowritable filterspec doexecable filterspec dohidden filterspec dohidden namefilter isempty namefilter dohidden domodified filterspec dosystem filterspec qregexp namefilter qstring dpath _os_win32_ win32_find_data _finddata_t qfileinfo check_null qdir readdirentries ff_getfirst ff_error qdir readdirentries dpath _os_win32_ ff_getnext ff_getnext _os_win32_ dwfileattributes isdir is_subdir isfile isdir issymlink isreadable iswritable is_rdonly isexecable ismodified is_arch ishidden is_hidden issystem is_system _os_win32_ cfilename alldirs isdir qstring doexecable qstring isexecable dodirs isdir dofiles isfile nosymlinks issymlink filterspec rwemask doreadable isreadable dowritable iswritable doexecable isexecable domodified ismodified dohidden ishidden dosystem issystem setfile filist qfileinfo _os_win32_ findclose _findclose qdirsortitem qdirsortitem filist qfileinfo filist filist qt_cmp_si_sortspec sortspec qt_cmp_si filist setautodelete filist filist flist filename filist setautodelete filterspec filterspec sortspec sortspec namefilter namefilt void q dir slashify q string n for int i 0 i int n length i if n i n i qdir qstring q string q dir canonical path const q string r char cur path max char tmp path max getcwd cur path max if chdir q file encode name d path 0 getcwd tmp path max r q file decode name tmp chdir cur slashify r return r qstring qdir canonicalpath qstring path_max path_max path_max qfile encodename dpath path_max qfile decodename const q file info list q dir drives at most one instance of q file info list is leaked and this variable points to that list static q file info list known memory leak 0 if known memory leak known memory leak new q file info list non win32 versions both use just one root directory known memory leak append new q file info root dir path return known memory leak qfileinfolist qdir qfileinfolist qfileinfolist knownmemoryleak knownmemoryleak knownmemoryleak qfileinfolist knownmemoryleak qfileinfo rootdirpath knownmemoryleak bool q dir mkdir const q string dir name bool accept abs path const return mkdir q file encode name file path dir name accept abs path 0777 0 qdir qstring dirname acceptabspath qfile encodename filepath dirname acceptabspath bool q dir rmdir const q string dir name bool accept abs path const return rmdir q file encode name file path dir name accept abs path 0 qdir qstring dirname acceptabspath qfile encodename filepath dirname acceptabspath bool q dir is readable const return access q file encode name d path r ok x ok 0 qdir isreadable qfile encodename dpath r_ok x_ok bool q dir is root const return d path q string from latin1 qdir isroot dpath qstring fromlatin1 bool accept abs paths if name is empty new name is empty if defined check null q warning q dir rename empty or null file name s endif return false q string fn1 file path name accept abs paths q string fn2 file path new name accept abs paths return rename q file encode name fn1 q file encode name fn2 0 acceptabspaths isempty newname isempty check_null qwarning qdir qstring filepath acceptabspaths qstring filepath newname acceptabspaths qfile encodename qfile encodename bool q dir set current const q string path int r r chdir q file encode name path return r 0 qdir setcurrent qstring qfile encodename q string q dir current dir path q string result statbuf st if stat st 0 char current name path max if getcwd current name path max 0 result q file decode name current name if defined debug if result is null q warning q dir current dir path getcwd failed endif else if defined debug q warning q dir current dir path stat failed endif slashify result return result qstring qdir currentdirpath qstring currentname path_max currentname path_max qfile decodename currentname isnull qwarning qdir currentdirpath qwarning qdir currentdirpath q string q dir home dir path q string d d q file decode name getenv home slashify d if d is null d root dir path return d qstring qdir homedirpath qstring qfile decodename isnull rootdirpath q string q dir root dir path q string d q string from latin1 return d qstring qdir rootdirpath qstring qstring fromlatin1 bool q dir is relative path const q string path int len path length if len 0 return true return path 0 qdir isrelativepath qstring int filter spec int sort spec int i if f list f list new q string list check ptr f list fi list new q file info list check ptr fi list fi list set auto delete true else f list clear fi list clear q string list filters qt makefilterlist name filter bool do dirs filter spec dirs 0 bool do files filter spec files 0 bool no sym links filter spec no sym links 0 bool do readable filter spec readable 0 bool do writable filter spec writable 0 bool do execable filter spec executable 0 bool do hidden filter spec hidden 0 if defined os os2emx q reg exp wc name filter false true wild card case insensitive else q reg exp wc name filter true true wild card case sensitive endif q file info fi dir dir dirent file dir opendir q file encode name d path if dir if defined check null q warning q dir read dir entries cannot read the directory s q file encode name d path data endif return false while file readdir dir q string fn q file decode name file d name fi set file this fn if match filters fn all dirs fi is dir continue if do dirs fi is dir do files fi is file if no sym links fi is sym link continue if filter spec rwe mask 0 if do readable fi is readable do writable fi is writable do execable fi is executable continue if do hidden fn 0 fn q string from latin1 fn q string from latin1 continue fi list append new q file info fi if closedir dir 0 if defined check null q warning q dir read dir entries cannot close the directory s d path local8 bit data endif sort if fi list count q dir sort item si new q dir sort item fi list count q file info itm i 0 for itm fi list first itm itm fi list next si i item itm qt cmp si sortspec sort spec qsort si i sizeof si 0 qt cmp si put them back in the list fi list set auto delete false fi list clear int j for j 0 j i j fi list append si j item f list append si j item file name delete si fi list set auto delete true if filter spec filter spec filts sort spec sort spec sorts name filter name filt dirty false else dirty true return true filterspec sortspec flist flist qstringlist check_ptr flist filist qfileinfolist check_ptr filist filist setautodelete flist filist qstringlist qt_makefilterlist namefilter dodirs filterspec dofiles filterspec nosymlinks filterspec nosymlinks doreadable filterspec dowritable filterspec doexecable filterspec dohidden filterspec _os_os2emx_ qregexp namefilter qregexp namefilter qfileinfo qfile encodename dpath check_null qwarning qdir readdirentries qfile encodename dpath qstring qfile decodename d_name setfile alldirs isdir dodirs isdir dofiles isfile nosymlinks issymlink filterspec rwemask doreadable isreadable dowritable iswritable doexecable isexecutable dohidden qstring fromlatin1 qstring fromlatin1 filist qfileinfo check_null qwarning qdir readdirentries dpath local8bit filist qdirsortitem qdirsortitem filist qfileinfo filist filist qt_cmp_si_sortspec sortspec qt_cmp_si filist setautodelete filist filist flist filename filist setautodelete filterspec filterspec sortspec sortspec namefilter namefilt void q dir slashify q string qdir qstring while fi it current for each file printf 10li s n fi size fi file name data it goto next list element filename for int i 0 i d count i printf s n d i endcode if e path is or null the directory is set to the current directory if e name filter is or null it is set to all files no check is made to ensure that the directory exists sa exists set path set name filter set filter set sorting namefilter setpath setnamefilter setfilter setsorting if d path is empty d path q string from latin1 name filt name filter if name filt is empty name filt q string from latin1 filts filter spec filter spec sorts sort spec sort spec dpath isempty dpath qstring fromlatin1 namefilt namefilter namefilt isempty namefilt qstring fromlatin1 filterspec filterspec sortspec sortspec f list 0 fi list 0 name filt q string from latin1 dirty true all dirs false flist filist namefilt qstring fromlatin1 alldirs absolute nothing is done sa is relative void q dir convert to abs d path abs path makes a copy of d and assigns it to this q dir isrelative qdir converttoabs dpath abspath qdir delete fi list fi list 0 name filt d name filt dirty true all dirs d all dirs filist filist namefilt namefilt alldirs alldirs the path can be either absolute or relative absolute paths begin with the directory separator or a drive specification not applicable to unix relative file names begin with a directory name or a file name and specify a path relative to the current directory an example of an absolute path is the string tmp quartz a relative path might look like sa set path abs path exists clean dir path dir name abs file path convert separators returns the absolute a path that starts with path which may contain symbolic links but never contains redundant or multiple separators sa set path canonical path exists clean dir path dir name setpath abspath cleandirpath dirname absfilepath convertseparators setpath canonicalpath cleandirpath dirname returns the name of the directory this is not the same as the path e g a directory with the name mail might have the path var spool mail the file actually exists in the directory if the q dir is relative the returned path name will also be relative redundant multiple separators or and directories in e file name will not be removed see clean dir path if e accept abs path is true a e file name starting with a separator will be returned without change if e accept abs path is false an absolute path will be appended to the directory path sa abs file path is relative canonical path qdir filename cleandirpath acceptabspath filename acceptabspath absfilepath isrelative canonicalpath returns the absolute path name of a file in the directory does not check if the file actually exists in the directory redundant multiple separators or and directories in e file name will not be removed see clean dir path if e accept abs path is true a e file name starting with a separator will be returned without change if e accept abs path is false an absolute path will be appended to the directory path sa file path filename cleandirpath acceptabspath filename acceptabspath filepath return tmp converts the separators in a path name to system native separators returns the translated string on windows convert separators c winnt system32 returns c winnt system32 pathname convertseparators if d mkdir c q warning could not create directory s const char d abs file path c return endcode calling cd is equivalent to calling cd up sa cd up is readable exists path bool q dir cd const q string dir name bool accept abs path if dir name is empty dir name q string from latin1 return true q string old d path if accept abs path is relative path dir name d path clean dir path dir name else qwarning absfilepath cdup cdup isreadable qdir qstring dirname acceptabspath dirname isempty dirname qstring fromlatin1 qstring dpath acceptabspath isrelativepath dirname dpath cleandirpath dirname return true sets the name filter used by entry list and entry info list the name filter is a wildcarding filter that understands and entrylist entryinfolist application has read access write access or both c dirs drives means list drives directories all files that the application can read write or execute and also symlinks to such files directories dt name dd sort by name alphabetical order dt time dd sort by time most recent first dt size dd sort by size largest first dt unsorted dd use the operating system order unix does not sort alphabetically sa set match all dirs if e enable is true all directories will be listed even if they do not match the filter or the name filter otherwise only matched directories setmatchalldirs if bool all dirs enable return alldirs return entry list count returns the file name at position e index in the list of found file entrylist entry list return f list index 0 index int f list count f list index q string null entrylist flist flist flist qstring r append q file encode name it return r this function is included to easy porting from qt 1 x to qt 2 0 it is the same as entry list but encodes the filenames as 8 bit qfile encodename entrylist returns a list of the names of all files and directories in the directory indicated by the set sorting set filter and set name filter specifications the the filter and sorting specifications can be overridden using the setsorting setfilter setnamefilter returns a list of the names of all files and directories in the directory indicated by the set sorting set filter and set name filter specifications the the filter and sorting specifications can be overridden using the e name filter e filter spec and e sort spec arguments returns and empty list if the directory is unreadable or does not exist sa entry info list set name filter set sorting set filter encoded entry list setsorting setfilter setnamefilter namefilter filterspec sortspec entryinfolist setnamefilter setsorting setfilter encodedentrylist the the filter and sorting specifications can be overridden using the e filter spec and e sort spec arguments returns 0 if the directory is unreadable or does not exist the returned pointer is a const pointer to a q file info list the list is filterspec sortspec qfileinfolist e name filter e filter spec and e sort spec arguments returns 0 if the directory is unreadable or does not exist the returned pointer is a const pointer to a q file info list the list is owned by the q dir object and will be reused on the next call to entry info list for the same q dir instance if you want to keep the entries of the list after a subsequent call to this function you will need to copy them sa entry list set name filter set sorting set filter namefilter filterspec sortspec qfileinfolist qdir entryinfolist qdir entrylist setnamefilter setsorting setfilter q dir that q dir this mutable function if that read dir entries name filter filter spec sort spec return that fi list else qdir qdir readdirentries namefilter filterspec sortspec filist q file info fi d path return fi exists fi is dir qfileinfo dpath isdir bool q dir is relative const qdir isrelative fn bool q dir operator const q dir d const returns true if the e d and this dir have different path or different sort filter settings otherwise false qdir qdir sorts d sorts removes a file if e accept abs path is true a path starting with a separator will remove the file with the absolute path if e accept abs path is false any number of separators at the beginning of e file name will be removed acceptabspath acceptabspath filename checks for existence of a file if e accept abs paths is true a path starting with a separator will check the file with the absolute path if e accept abs path is false any number of separators at the beginning of e name will be removed returns true if the file exists otherwise false acceptabspaths acceptabspath q string tmp file path name accept abs path return q file exists tmp returns the native directory separator under unix and under ms dos windows nt and os 2 you do not need to use this function to build file paths if you always use qt will translate your paths to conform to the underlying qstring filepath acceptabspath qfile elif defined os fatfs return elif defined os mac _os_fatfs_ _os_mac_ returns the current directory sa current dir path q dir q dir currentdirpath qdir qdir returns the home directory sa home dir path homedirpath q string list iterator it lst begin for it lst end it q string s it lst2 s strip white space return lst2 returns true if the e file name matches one of the wildcards in the list e filters sa q reg exp qstringlist qstring stripwhitespace filename qregexp break removes all multiple directory separators and resolves any or found in the path symbolic links are kept this function does not return the canonical path but rather the most simplified version of the input stuff becomes stuff stuff nonsense becomes nonsense and stuff more nonsense becomes stuff nonsense sa abs path canonical path q string q dir clean dir path const q string file path q string name file path q string new path if name is empty return name slashify name bool added separator if is relative path name added separator true name insert 0 else added separator false int e pos pos up level pos e pos name length up level 0 int len while pos pos name find rev pos 1 len e pos pos 1 if len 2 name at pos 1 name at pos 2 up level else if len 0 len 1 name at pos 1 if up level new path q string from latin1 name mid pos 1 len new path else up level e pos pos if added separator while up level new path insert 0 q string from latin1 if new path is empty new path remove 0 1 else abspath canonicalpath qstring qdir cleandirpath qstring filepath qstring filepath qstring newpath isempty addedseparator isrelativepath addedseparator addedseparator epos uplevel epos uplevel findrev epos uplevel uplevel newpath qstring fromlatin1 newpath uplevel epos addedseparator uplevel newpath qstring fromlatin1 newpath isempty newpath q dir q dir const q dir d d path d d path f list 0 fi list 0 name filt d name filt dirty true all dirs d all dirs qdir qdir qdir dpath dpath flist filist namefilt namefilt alldirs alldirs m parent parent m word word printf new word s url s n word data g searchurl data if g searchurl is empty doxygen search index add word word false m_parent m_word g_searchurl g_searchurl isempty searchindex addword int doc auto list parse int retval retval ok int num 1 g nodestack push this first item or sub list create new list do doc auto list item li new doc auto list item this num m children append li retval li parse while retval tk listitem new list item m indent g token indent at same indent level m isenumlist g token is enum list of the same kind doc node n g nodestack pop assert n this return retval docautolist retval_ok g_nodestack docautolistitem docautolistitem m_children tk_listitem m_indent g_token m_isenumlist g_token isenumlist docnode g_nodestack void accept doc visitor v v visit pre this m paragraph accept v v visit post this docvisitor visitpre m_paragraph visitpost int doc auto list item parse int retval retval ok g nodestack push this retval m paragraph parse m paragraph mark first m paragraph mark last doc node n g nodestack pop assert n this return retval docautolistitem retval_ok g_nodestack m_paragraph m_paragraph markfirst m_paragraph marklast docnode g_nodestack int doc para parse dbg doc para parse start n g nodestack push this handle style commands inherited from the previous paragraph handle initial style commands this m children int tok int retval 0 while tok doctokenizery ylex get the next token reparsetoken dbg token s at d tok to string tok doctokenizery ylineno if tok tk word tok tk lnkword tok tk symbol tok tk url tok tk command tok tk htmltag dbg name s g token name data dbg n switch tok case tk word m children append new doc word this g token name break case tk lnkword handle linked word this m children break case tk url m children append new docurl this g token name g token ise mail addr break case tk whitespace prevent leading whitespace and collapse multiple whitespace areas doc node kind k if insidepre this all whitespace is relevant remove leading whitespace m children is empty and whitespace after certain constructs k m children last kind doc node kind htmldesclist k doc node kind htmltable k doc node kind htmllist k doc node kind simplesect k doc node kind autolist k doc node kind simplelist k doc node kind verbatim k doc node kind htmlheader k doc node kind paramsect k doc node kind xrefitem m children append new doc white space this g token chars break case tk listitem dbg found list item at d parent d n g token indent parent kind doc node n parent while n n kind doc node kind autolist n n parent if n we found an auto list up in the hierarchy doc auto list al doc auto list n dbg previous list item at d n al indent if al indent g token indent new item at the same or lower indent level retval tk listitem goto endparagraph determine list depth int depth 0 n parent while n if n kind doc node kind autolist depth n n parent first item or sub list create new list doc auto list al 0 do al new doc auto list this g token indent g token is enum list depth m children append al retval al parse while retval tk listitem new list al indent g token indent at same indent level check the return value if retval retval simplesec auto list ended due to simple section command reparse the token that ended the section at this level so a new simple section will be started at this level this is the same as unputting the last read token and continuing g token name g token simple sect name tok tk command dbg reparsing command s n g token name data goto reparsetoken else if retval tk endlist if al indent g token indent end list goto endparagraph else continue with current paragraph else paragraph ended due to tk newpara tk listitem or eof goto endparagraph break case tk endlist dbg found end of list inside of paragraph at line d n doctokenizery ylineno if parent kind doc node kind autolistitem assert parent parent kind doc node kind autolist doc auto list al doc auto list parent parent if al indent g token indent end of list marker ends this paragraph retval tk endlist goto endparagraph else warn doc error g filename doctokenizery ylineno warning end of list marker found has invalid indent level else warn doc error g filename doctokenizery ylineno warning end of list marker found without any preceding list items break case tk command see if we have to start a simple section int cmd cmd mapper map g token name doc node n parent while n n kind doc node kind simplesect n kind doc node kind paramsect n n parent if cmd simplesect bit if n already in a simple section simple section cannot start in this paragraph need to unwind the stack and remember the command g token simple sect name g token name copy retval retval simplesec goto endparagraph see if we are in a simple list n parent while n n kind doc node kind simplelistitem n n parent if n if cmd cmd li retval retval listitem goto endparagraph handle the command retval handle command g token name copy dbg handle command returns x n retval check the return value if retval retval simplesec reparse the token that ended the section at this level so a new simple section will be started at this level this is the same as unputting the last read token and continuing g token name g token simple sect name tok tk command dbg reparsing command s n g token name data goto reparsetoken else if retval retval ok the command ended normally keep scanning for new tokens retval 0 else if retval tk listitem retval tk endlist retval tk word tok retval goto reparsetoken else end of file end of paragraph start or end of section or some auto list marker goto endparagraph break case tk htmltag if g token end tag found a start tag retval handle html start tag g token name g token attribs else found an end tag retval handle html end tag g token name if retval retval ok the command ended normally keep scanner for new tokens retval 0 else goto endparagraph break case tk symbol char letter 0 doc symbol sym type s doc symbol decode symbol g token name letter if s doc symbol unknown m children append new doc symbol this s letter else warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break case tk newpara retval tk newpara goto endparagraph case tk rcstag doc simple sect ss new doc simple sect this doc simple sect rcs m children append ss ss parse rcs break default warn doc error g filename doctokenizery ylineno warning found unexpected token id x n tok break retval 0 endparagraph handle pending style commands this m children doc node n g nodestack pop assert n this dbg doc para parse end retval x n retval internal assert retval 0 retval tk newpara retval tk listitem retval tk endlist retval retval ok return retval docpara docpara g_nodestack handleinitialstylecommands m_children doctokenizeryylex toktostring doctokenizeryylineno tk_word tk_lnkword tk_symbol tk_url tk_command tk_htmltag g_token tk_word m_children docword g_token tk_lnkword handlelinkedword m_children tk_url m_children g_token g_token isemailaddr tk_whitespace docnode m_children isempty m_children docnode kind_htmldesclist docnode kind_htmltable docnode kind_htmllist docnode kind_simplesect docnode kind_autolist docnode kind_simplelist docnode kind_verbatim docnode kind_htmlheader docnode kind_paramsect docnode kind_xrefitem m_children docwhitespace g_token tk_listitem g_token docnode docnode kind_autolist docautolist docautolist g_token tk_listitem docnode kind_autolist docautolist docautolist g_token g_token isenumlist m_children tk_listitem g_token retval_simplesec g_token g_token simplesectname tk_command g_token tk_endlist g_token tk_newpara tk_listitem tk_endlist doctokenizeryylineno docnode kind_autolistitem docnode kind_autolist docautolist docautolist g_token tk_endlist warn_doc_error g_filename doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno tk_command cmdmapper g_token docnode docnode kind_simplesect docnode kind_paramsect simplesect_bit g_token simplesectname g_token retval_simplesec docnode kind_simplelistitem cmd_li retval_listitem handlecommand g_token handlecommand retval_simplesec g_token g_token simplesectname tk_command g_token retval_ok tk_listitem tk_endlist tk_word tk_htmltag g_token endtag handlehtmlstarttag g_token g_token handlehtmlendtag g_token retval_ok tk_symbol docsymbol symtype docsymbol decodesymbol g_token docsymbol m_children docsymbol warn_doc_error g_filename doctokenizeryylineno g_token tk_newpara tk_newpara tk_rcstag docsimplesect docsimplesect docsimplesect m_children parsercs warn_doc_error g_filename doctokenizeryylineno handlependingstylecommands m_children docnode g_nodestack docpara internal_assert tk_newpara tk_listitem tk_endlist retval_ok int doc para handle command const q string cmd name dbg handle command s n cmd name data int retval retval ok switch cmd mapper map cmd name case cmd unknown warn doc error g filename doctokenizery ylineno warning found unknown command s cmd name data break case cmd emphasis m children append new doc style change this g nodestack count doc style change italic true retval handle style argument this m children cmd name m children append new doc style change this g nodestack count doc style change italic false if retval tk word m children append new doc white space this break case cmd bold m children append new doc style change this g nodestack count doc style change bold true retval handle style argument this m children cmd name m children append new doc style change this g nodestack count doc style change bold false if retval tk word m children append new doc white space this break case cmd code m children append new doc style change this g nodestack count doc style change code true retval handle style argument this m children cmd name m children append new doc style change this g nodestack count doc style change code false if retval tk word m children append new doc white space this break case cmd bslash m children append new doc symbol this doc symbol b slash break case cmd at m children append new doc symbol this doc symbol at break case cmd less m children append new doc symbol this doc symbol less break case cmd greater m children append new doc symbol this doc symbol greater break case cmd amp m children append new doc symbol this doc symbol amp break case cmd dollar m children append new doc symbol this doc symbol dollar break case cmd hash m children append new doc symbol this doc symbol hash break case cmd percent m children append new doc symbol this doc symbol percent break case cmd sa g inseeblock true retval handle simple section doc simple sect see g inseeblock false break case cmd return retval handle simple section doc simple sect return g hasreturncommand true break case cmd author retval handle simple section doc simple sect author break case cmd authors retval handle simple section doc simple sect authors break case cmd version retval handle simple section doc simple sect version break case cmd since retval handle simple section doc simple sect since break case cmd date retval handle simple section doc simple sect date break case cmd note retval handle simple section doc simple sect note break case cmd warning retval handle simple section doc simple sect warning break case cmd pre retval handle simple section doc simple sect pre break case cmd post retval handle simple section doc simple sect post break case cmd invariant retval handle simple section doc simple sect invar break case cmd remark retval handle simple section doc simple sect remark break case cmd attention retval handle simple section doc simple sect attention break case cmd par retval handle simple section doc simple sect user break case cmd li doc simple list sl new doc simple list this m children append sl retval sl parse break case cmd section handle section cmd name retval retval section break case cmd subsection handle section cmd name retval retval subsection break case cmd subsubsection handle section cmd name retval retval subsubsection break case cmd paragraph handle section cmd name retval retval paragraph break case cmd startcode doctokenizery yset state code retval doctokenizery ylex search for the first non whitespace line index is stored in li int i 0 li 0 l g token verb length while i l g token verb at i g token verb at i n if g token verb at i n li i 1 i m children append new doc verbatim this g context g token verb mid li doc verbatim code g isexample g examplename if retval 0 warn doc error g filename doctokenizery ylineno warning code section ended without end marker doctokenizery yset state para break case cmd htmlonly doctokenizery yset state html only retval doctokenizery ylex m children append new doc verbatim this g context g token verb doc verbatim html only g isexample g examplename if retval 0 warn doc error g filename doctokenizery ylineno warning htmlonly section ended without end marker doctokenizery yset state para break case cmd manonly doctokenizery yset state man only retval doctokenizery ylex m children append new doc verbatim this g context g token verb doc verbatim man only g isexample g examplename if retval 0 warn doc error g filename doctokenizery ylineno warning manonly section ended without end marker doctokenizery yset state para break case cmd latexonly doctokenizery yset state latex only retval doctokenizery ylex m children append new doc verbatim this g context g token verb doc verbatim latex only g isexample g examplename if retval 0 warn doc error g filename doctokenizery ylineno warning latexonly section ended without end marker doctokenizery yset state para break case cmd xmlonly doctokenizery yset state xml only retval doctokenizery ylex m children append new doc verbatim this g context g token verb doc verbatim xml only g isexample g examplename if retval 0 warn doc error g filename doctokenizery ylineno warning xmlonly section ended without end marker doctokenizery yset state para break case cmd verbatim doctokenizery yset state verbatim retval doctokenizery ylex m children append new doc verbatim this g context g token verb doc verbatim verbatim g isexample g examplename if retval 0 warn doc error g filename doctokenizery ylineno warning verbatim section ended without end marker doctokenizery yset state para break case cmd dot doctokenizery yset state dot retval doctokenizery ylex m children append new doc verbatim this g context g token verb doc verbatim dot g isexample g examplename if retval 0 warn doc error g filename doctokenizery ylineno warning dot section ended without end marker doctokenizery yset state para break case cmd endcode case cmd endhtmlonly case cmd endmanonly case cmd endlatexonly case cmd endxmlonly case cmd endlink case cmd endverbatim case cmd enddot warn doc error g filename doctokenizery ylineno warning unexpected command s g token name data break case cmd param retval handle param section cmd name doc param sect param g token param dir break case cmd retval retval handle param section cmd name doc param sect ret val break case cmd exception retval handle param section cmd name doc param sect exception break case cmd xrefitem retval handlex ref item break case cmd linebreak doc line break lb new doc line break this m children append lb break case cmd anchor int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data break tok doctokenizery ylex if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment block while parsing the argument of command s cmd name data break else if tok tk word tok tk lnkword warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data break doc anchor anchor new doc anchor this g token name false m children append anchor break case cmd addindex doc index entry ie new doc index entry this m children append ie retval ie parse break case cmd internal retval retval internal break case cmd copydoc int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data break tok doctokenizery ylex if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment block while parsing the argument of command s n cmd name data break else if tok tk word tok tk lnkword warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data break doc copy cpy new doc copy this g token name m children append cpy cpy par docpara handlecommand qstring cmdname handlecommand cmdname retval_ok cmdmapper cmdname cmd_unknown warn_doc_error g_filename doctokenizeryylineno cmdname cmd_emphasis m_children docstylechange g_nodestack docstylechange handlestyleargument m_children cmdname m_children docstylechange g_nodestack docstylechange tk_word m_children docwhitespace cmd_bold m_children docstylechange g_nodestack docstylechange handlestyleargument m_children cmdname m_children docstylechange g_nodestack docstylechange tk_word m_children docwhitespace cmd_code m_children docstylechange g_nodestack docstylechange handlestyleargument m_children cmdname m_children docstylechange g_nodestack docstylechange tk_word m_children docwhitespace cmd_bslash m_children docsymbol docsymbol bslash cmd_at m_children docsymbol docsymbol cmd_less m_children docsymbol docsymbol cmd_greater m_children docsymbol docsymbol cmd_amp m_children docsymbol docsymbol cmd_dollar m_children docsymbol docsymbol cmd_hash m_children docsymbol docsymbol cmd_percent m_children docsymbol docsymbol cmd_sa g_inseeblock handlesimplesection docsimplesect g_inseeblock cmd_return handlesimplesection docsimplesect g_hasreturncommand cmd_author handlesimplesection docsimplesect cmd_authors handlesimplesection docsimplesect cmd_version handlesimplesection docsimplesect cmd_since handlesimplesection docsimplesect cmd_date handlesimplesection docsimplesect cmd_note handlesimplesection docsimplesect cmd_warning handlesimplesection docsimplesect cmd_pre handlesimplesection docsimplesect cmd_post handlesimplesection docsimplesect cmd_invariant handlesimplesection docsimplesect cmd_remark handlesimplesection docsimplesect cmd_attention handlesimplesection docsimplesect cmd_par handlesimplesection docsimplesect cmd_li docsimplelist docsimplelist m_children cmd_section handlesection cmdname retval_section cmd_subsection handlesection cmdname retval_subsection cmd_subsubsection handlesection cmdname retval_subsubsection cmd_paragraph handlesection cmdname retval_paragraph cmd_startcode doctokenizeryysetstatecode doctokenizeryylex g_token g_token g_token g_token m_children docverbatim g_context g_token docverbatim g_isexample g_examplename warn_doc_error g_filename doctokenizeryylineno doctokenizeryysetstatepara cmd_htmlonly doctokenizeryysetstatehtmlonly doctokenizeryylex m_children docverbatim g_context g_token docverbatim htmlonly g_isexample g_examplename warn_doc_error g_filename doctokenizeryylineno doctokenizeryysetstatepara cmd_manonly doctokenizeryysetstatemanonly doctokenizeryylex m_children docverbatim g_context g_token docverbatim manonly g_isexample g_examplename warn_doc_error g_filename doctokenizeryylineno doctokenizeryysetstatepara cmd_latexonly doctokenizeryysetstatelatexonly doctokenizeryylex m_children docverbatim g_context g_token docverbatim latexonly g_isexample g_examplename warn_doc_error g_filename doctokenizeryylineno doctokenizeryysetstatepara cmd_xmlonly doctokenizeryysetstatexmlonly doctokenizeryylex m_children docverbatim g_context g_token docverbatim xmlonly g_isexample g_examplename warn_doc_error g_filename doctokenizeryylineno doctokenizeryysetstatepara cmd_verbatim doctokenizeryysetstateverbatim doctokenizeryylex m_children docverbatim g_context g_token docverbatim g_isexample g_examplename warn_doc_error g_filename doctokenizeryylineno doctokenizeryysetstatepara cmd_dot doctokenizeryysetstatedot doctokenizeryylex m_children docverbatim g_context g_token docverbatim g_isexample g_examplename warn_doc_error g_filename doctokenizeryylineno doctokenizeryysetstatepara cmd_endcode cmd_endhtmlonly cmd_endmanonly cmd_endlatexonly cmd_endxmlonly cmd_endlink cmd_endverbatim cmd_enddot warn_doc_error g_filename doctokenizeryylineno g_token cmd_param handleparamsection cmdname docparamsect g_token paramdir cmd_retval handleparamsection cmdname docparamsect retval cmd_exception handleparamsection cmdname docparamsect cmd_xrefitem handlexrefitem cmd_linebreak doclinebreak doclinebreak m_children cmd_anchor doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryylex warn_doc_error g_filename doctokenizeryylineno cmdname tk_word tk_lnkword warn_doc_error g_filename doctokenizeryylineno toktostring cmdname docanchor docanchor g_token m_children cmd_addindex docindexentry docindexentry m_children cmd_internal retval_internal cmd_copydoc doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryylex warn_doc_error g_filename doctokenizeryylineno cmdname tk_word tk_lnkword warn_doc_error g_filename doctokenizeryylineno toktostring cmdname doccopy doccopy g_token m_children int doc para handle html start tag const q string tag name const html attrib list tag html attribs dbg handle html start tag s d n tag name data tag html attribs count int retval retval ok int tag id html tag mapper map tag name switch tag id case html ul doc html list list new doc html list this tag html attribs doc html list unordered m children append list retval list parse break case html ol doc html list list new doc html list this tag html attribs doc html list ordered m children append list retval list parse break case html li if insideul this insideol this warn doc error g filename doctokenizery ylineno warning lonely li tag found else retval retval listitem break case html bold handle style enter this m children doc style change bold g token attribs break case html code handle style enter this m children doc style change code g token attribs break case html emphasis handle style enter this m children doc style change italic g token attribs break case html div handle style enter this m children doc style change div g token attribs break case html span handle style enter this m children doc style change span g token attribs break case html sub handle style enter this m children doc style change subscript g token attribs break case html sup handle style enter this m children doc style change superscript g token attribs break case html center handle style enter this m children doc style change center g token attribs break case html small handle style enter this m children doc style change small g token attribs break case html pre handle style enter this m children doc style change preformatted g token attribs set inside preformatted true doctokenizery yset inside pre true break case html p retval tk newpara break case html dl doc html desc list list new doc html desc list this tag html attribs m children append list retval list parse break case html dt retval retval desctitle break case html dd warn doc error g filename doctokenizery ylineno warning unexpected tag dd found break case html table doc html table table new doc html table this tag html attribs m children append table retval table parse break case html tr retval retval tablerow break case html td retval retval tablecell break case html th retval retval tablehcell break case html caption warn doc error g filename doctokenizery ylineno warning unexpected tag caption found break case html br doc line break lb new doc line break this m children append lb break case html hr doc hor ruler hr new doc hor ruler this m children append hr break case html a retval handlea href this m children tag html attribs break case html h1 retval handle html header tag html attribs 1 break case html h2 retval handle html header tag html attribs 2 break case html h3 retval handle html header tag html attribs 3 break case html h4 retval handle html header tag html attribs 4 break case html h5 retval handle html header tag html attribs 5 break case html h6 retval handle html header tag html attribs 6 break case html img html attrib list iterator li tag html attribs html attrib opt bool found false int index 0 for li to first opt li current li index printf option name s value s n opt name data opt value data if opt name src opt value is empty copy attributes html attrib list attr list tag html attribs and remove the href attribute bool result attr list remove index assert result doc image img new doc image this attr list opt value doc image html m children append img found true if found warn doc error g filename doctokenizery ylineno warning img tag does not have a src attribute n break case html unknown warn doc error g filename doctokenizery ylineno warning unsupported html tag s found tag name data m children append new doc word this tag name tag html attribs to string break break default we should not get here assert 0 break return retval docpara handlehtmlstarttag qstring tagname htmlattriblist taghtmlattribs handlehtmlstarttag tagname taghtmlattribs retval_ok tagid htmltagmapper tagname tagid html_ul dochtmllist dochtmllist taghtmlattribs dochtmllist m_children html_ol dochtmllist dochtmllist taghtmlattribs dochtmllist m_children html_li warn_doc_error g_filename doctokenizeryylineno retval_listitem html_bold handlestyleenter m_children docstylechange g_token html_code handlestyleenter m_children docstylechange g_token html_emphasis handlestyleenter m_children docstylechange g_token html_div handlestyleenter m_children docstylechange g_token html_span handlestyleenter m_children docstylechange g_token html_sub handlestyleenter m_children docstylechange g_token html_sup handlestyleenter m_children docstylechange g_token html_center handlestyleenter m_children docstylechange g_token html_small handlestyleenter m_children docstylechange g_token html_pre handlestyleenter m_children docstylechange g_token setinsidepreformatted doctokenizeryysetinsidepre html_p tk_newpara html_dl dochtmldesclist dochtmldesclist taghtmlattribs m_children html_dt retval_desctitle html_dd warn_doc_error g_filename doctokenizeryylineno html_table dochtmltable dochtmltable taghtmlattribs m_children html_tr retval_tablerow html_td retval_tablecell html_th retval_tablehcell html_caption warn_doc_error g_filename doctokenizeryylineno html_br doclinebreak doclinebreak m_children html_hr dochorruler dochorruler m_children html_a handleahref m_children taghtmlattribs html_h1 handlehtmlheader taghtmlattribs html_h2 handlehtmlheader taghtmlattribs html_h3 handlehtmlheader taghtmlattribs html_h4 handlehtmlheader taghtmlattribs html_h5 handlehtmlheader taghtmlattribs html_h6 handlehtmlheader taghtmlattribs html_img htmlattriblistiterator taghtmlattribs htmlattrib tofirst isempty htmlattriblist attrlist taghtmlattribs attrlist docimage docimage attrlist docimage m_children warn_doc_error g_filename doctokenizeryylineno html_unknown warn_doc_error g_filename doctokenizeryylineno tagname m_children docword tagname taghtmlattribs tostring int doc para handle html end tag const q string tag name dbg handle html end tag s n tag name data int tag id html tag mapper map tag name int retval retval ok switch tag id case html ul if insideul this warn doc error g filename doctokenizery ylineno warning found ul tag without matching ul else retval retval endlist break case html ol if insideol this warn doc error g filename doctokenizery ylineno warning found ol tag without matching ol else retval retval endlist break case html li if insideli this warn doc error g filename doctokenizery ylineno warning found li tag without matching li else ignore li tags break case html pre if insidepre this warn doc error g filename doctokenizery ylineno warning found pre tag without matching pre else retval retval endpre break case html bold handle style leave this m children doc style change bold b break case html code handle style leave this m children doc style change code code break case html emphasis handle style leave this m children doc style change italic em break case html div handle style leave this m children doc style change div div break case html span handle style leave this m children doc style change span span break case html sub handle style leave this m children doc style change subscript sub break case html sup handle style leave this m children doc style change superscript sup break case html center handle style leave this m children doc style change center center break case html small handle style leave this m children doc style change small small break case html pre handle style leave this m children doc style change preformatted pre set inside preformatted false doctokenizery yset inside pre false break case html p ignore p tag break case html dl retval retval enddesc break case html dt ignore dt tag break case html dd ignore dd tag break case html table retval retval endtable break case html tr ignore tr tag break case html td ignore td tag break case html th ignore th tag break case html caption warn doc error g filename doctokenizery ylineno warning unexpected tag caption found break case html br warn doc error g filename doctokenizery ylineno warning illegal br tag found n break case html h1 warn doc error g filename doctokenizery ylineno warning unexpected tag h1 found break case html h2 warn doc error g filename doctokenizery ylineno warning unexpected tag h2 found break case html h3 warn doc error g filename doctokenizery ylineno warning unexpected tag h3 found break case html img warn doc error g filename doctokenizery ylineno warning unexpected tag img found break case html hr warn doc error g filename doctokenizery ylineno warning unexpected tag hr found break case html a warn doc error g filename doctokenizery ylineno warning unexpected tag a found ignore a tag can be part of a name a break case html unknown warn doc error g filename doctokenizery ylineno warning unsupported html tag s found tag name data m children append new doc word this tag name break default we should not get here warn doc error g filename doctokenizery ylineno unexpected end tag s n tag name data assert 0 break return retval docpara handlehtmlendtag qstring tagname handlehtmlendtag tagname tagid htmltagmapper tagname retval_ok tagid html_ul warn_doc_error g_filename doctokenizeryylineno retval_endlist html_ol warn_doc_error g_filename doctokenizeryylineno retval_endlist html_li warn_doc_error g_filename doctokenizeryylineno html_pre warn_doc_error g_filename doctokenizeryylineno retval_endpre html_bold handlestyleleave m_children docstylechange html_code handlestyleleave m_children docstylechange html_emphasis handlestyleleave m_children docstylechange html_div handlestyleleave m_children docstylechange html_span handlestyleleave m_children docstylechange html_sub handlestyleleave m_children docstylechange html_sup handlestyleleave m_children docstylechange html_center handlestyleleave m_children docstylechange html_small handlestyleleave m_children docstylechange html_pre handlestyleleave m_children docstylechange setinsidepreformatted doctokenizeryysetinsidepre html_p html_dl retval_enddesc html_dt html_dd html_table retval_endtable html_tr html_td html_th html_caption warn_doc_error g_filename doctokenizeryylineno html_br warn_doc_error g_filename doctokenizeryylineno html_h1 warn_doc_error g_filename doctokenizeryylineno html_h2 warn_doc_error g_filename doctokenizeryylineno html_h3 warn_doc_error g_filename doctokenizeryylineno html_img warn_doc_error g_filename doctokenizeryylineno html_hr warn_doc_error g_filename doctokenizeryylineno html_a warn_doc_error g_filename doctokenizeryylineno html_unknown warn_doc_error g_filename doctokenizeryylineno tagname m_children docword tagname warn_doc_error g_filename doctokenizeryylineno tagname int doc para handle simple section doc simple sect type t doc simple sect ss 0 if m children is empty previous element m children last kind kind simplesect was a simple sect doc simple sect m children last type t of same type t doc simple sect user but not user defined append to previous section ss doc simple sect m children last else start new section ss new doc simple sect this t m children append ss int rv ss parse t doc simple sect user return rv tk newpara rv retval ok docpara handlesimplesection docsimplesect docsimplesect m_children isempty m_children kind_simplesect docsimplesect m_children docsimplesect docsimplesect m_children docsimplesect m_children docsimplesect tk_newpara retval_ok int doc para handlex ref item int retval doctokenizery ylex assert retval tk whitespace doctokenizery yset statex ref item retval doctokenizery ylex if retval retval ok docx ref item ref new docx ref item this g token id g token name if ref parse m children append ref else delete ref doctokenizery yset state para return retval docpara handlexrefitem doctokenizeryylex tk_whitespace doctokenizeryysetstatexrefitem doctokenizeryylex retval_ok docxrefitem docxrefitem g_token g_token m_children doctokenizeryysetstatepara int direction doc param sect unspecified doc param sect ps 0 if m children is empty previous element m children last kind kind paramsect was a param sect doc param sect m children last type t of same type append to previous section ps doc param sect m children last else start new section ps new doc param sect this t m children append ps int rv ps parse cmd name doc param sect direction direction return rv tk newpara rv retval ok docparamsect docparamsect m_children isempty m_children kind_paramsect docparamsect m_children docparamsect m_children docparamsect m_children cmdname docparamsect tk_newpara retval_ok void doc para handle include operator const q string cmd name doc inc operator type t dbg handle include operator s n cmd name data int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data return doctokenizery yset state pattern tok doctokenizery ylex doctokenizery yset state para if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment block while parsing the argument of command s cmd name data return else if tok tk word warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data return doc inc operator op new doc inc operator this t g token name g context g isexample g examplename doc node n1 m children last doc node n2 n1 0 m children prev 0 bool is first n1 0 no last node n1 kind doc node kind incoperator n1 kind doc node kind whitespace last node is not operator or whitespace n1 kind doc node kind whitespace n2 0 n2 kind doc node kind incoperator previous not is not operator op mark first is first op mark last true if n1 0 n1 kind doc node kind incoperator doc inc operator n1 mark last false else if n1 0 n1 kind doc node kind whitespace n2 0 n2 kind doc node kind incoperator doc inc operator n2 mark last false m children append op op parse docpara handleincludeoperator qstring cmdname docincoperator handleincludeoperator cmdname doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryysetstatepattern doctokenizeryylex doctokenizeryysetstatepara warn_doc_error g_filename doctokenizeryylineno cmdname tk_word warn_doc_error g_filename doctokenizeryylineno toktostring cmdname docincoperator docincoperator g_token g_context g_isexample g_examplename docnode m_children docnode m_children isfirst docnode kind_incoperator docnode kind_whitespace docnode kind_whitespace docnode kind_incoperator markfirst isfirst marklast docnode kind_incoperator docincoperator marklast docnode kind_whitespace docnode kind_incoperator docincoperator marklast m_children void doc para handle image const q string cmd name int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data return tok doctokenizery ylex if tok tk word tok tk lnkword warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data return tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data return doc image type t q string img type g token name lower if img type html t doc image html else if img type latex t doc image latex else if img type rtf t doc image rtf else warn doc error g filename doctokenizery ylineno warning image type s specified as the first argument of s is not valid img type data cmd name data return doctokenizery yset state file tok doctokenizery ylex doctokenizery yset state para if tok tk word warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data return html attrib list attr list doc image img new doc image this attr list find and copy image g token name t t m children append img img parse docpara handleimage qstring cmdname doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryylex tk_word tk_lnkword warn_doc_error g_filename doctokenizeryylineno toktostring cmdname doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname docimage qstring imgtype g_token imgtype docimage imgtype docimage imgtype docimage warn_doc_error g_filename doctokenizeryylineno imgtype cmdname doctokenizeryysetstatefile doctokenizeryylex doctokenizeryysetstatepara tk_word warn_doc_error g_filename doctokenizeryylineno toktostring cmdname htmlattriblist attrlist docimage docimage attrlist findandcopyimage g_token m_children void doc para handle dot file const q string cmd name int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data return doctokenizery yset state file tok doctokenizery ylex doctokenizery yset state para if tok tk word warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data return q string name g token name doc dot file df new doc dot file this name m children append df df parse docpara handledotfile qstring cmdname doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryysetstatefile doctokenizeryylex doctokenizeryysetstatepara tk_word warn_doc_error g_filename doctokenizeryylineno toktostring cmdname qstring g_token docdotfile docdotfile m_children void doc para handle include const q string cmd name doc include type t dbg handle include s n cmd name data int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data return doctokenizery yset state file tok doctokenizery ylex doctokenizery yset state para if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment block while parsing the argument of command s cmd name data return else if tok tk word warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data return doc include inc new doc include this g token name g context t g isexample g examplename m children append inc inc parse docpara handleinclude qstring cmdname docinclude handleinclude cmdname doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryysetstatefile doctokenizeryylex doctokenizeryysetstatepara warn_doc_error g_filename doctokenizeryylineno cmdname tk_word warn_doc_error g_filename doctokenizeryylineno toktostring cmdname docinclude docinclude g_token g_context g_isexample g_examplename m_children void doc para handle link const q string cmd name bool is java link int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data return doctokenizery yset state link tok doctokenizery ylex if tok tk word warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data return doctokenizery yset state para doc link lnk new doc link this g token name m children append lnk q string left over lnk parse is java link if left over is empty m children append new doc word this left over docpara handlelink qstring cmdname isjavalink doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryysetstatelink doctokenizeryylex tk_word warn_doc_error g_filename doctokenizeryylineno toktostring cmdname doctokenizeryysetstatepara doclink doclink g_token m_children qstring leftover isjavalink leftover isempty m_children docword leftover void doc para handle ref const q string cmd name dbg handle ref s n cmd name data int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data return doctokenizery yset state ref tok doctokenizery ylex get the reference id doc ref ref 0 if tok tk word warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data goto endref ref new doc ref this g token name m children append ref ref parse endref doctokenizery yset state para docpara handleref qstring cmdname handleref cmdname doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryysetstateref doctokenizeryylex docref tk_word warn_doc_error g_filename doctokenizeryylineno toktostring cmdname docref g_token m_children doctokenizeryysetstatepara void doc para handle section const q string cmd name get the argument of the section command int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data return tok doctokenizery ylex if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment block while parsing the argument of command s n cmd name data return else if tok tk word tok tk lnkword warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data return g token section id g token name doctokenizery yset state skip title doctokenizery ylex doctokenizery yset state para docpara handlesection qstring cmdname doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryylex warn_doc_error g_filename doctokenizeryylineno cmdname tk_word tk_lnkword warn_doc_error g_filename doctokenizeryylineno toktostring cmdname g_token sectionid g_token doctokenizeryysetstateskiptitle doctokenizeryylex doctokenizeryysetstatepara int doc para handle html header const html attrib list tag html attribs int level doc html header header new doc html header this tag html attribs level m children append header int retval header parse return retval retval ok tk newpara retval docpara handlehtmlheader htmlattriblist taghtmlattribs dochtmlheader dochtmlheader taghtmlattribs m_children retval_ok tk_newpara void doc root parse dbg doc root parse start n g nodestack push this doctokenizery yset state para int retval 0 first parse any number of paragraphs bool is first true doc para last par 0 do doc para par new doc para this if is first par mark first is first false retval par parse if par is empty m children append par last par par else delete par if retval tk listitem warn doc error g filename doctokenizery ylineno warning invalid list item found else if retval retval subsection warn doc error g filename doctokenizery ylineno warning found subsection command outside of section context else if retval retval subsubsection warn doc error g filename doctokenizery ylineno warning found subsubsection command outside of subsection context else if retval retval paragraph warn doc error g filename doctokenizery ylineno warning found paragraph command outside of subsubsection context while retval 0 retval retval section retval retval internal if last par last par mark last then parse any number of level1 sections while retval retval section section info sec doxygen section dict g token section id if sec doc section s new doc section this 1 g token section id m children append s retval s parse else warn doc error g filename doctokenizery ylineno warning invalid section id s ignoring section g token section id data retval 0 if retval retval internal doc internal in new doc internal this m children append in retval in parse 1 handle unclosed style commands doc node n g nodestack pop assert n this dbg doc root parse end n docroot docroot g_nodestack doctokenizeryysetstatepara isfirst docpara lastpar docpara docpara isfirst markfirst isfirst isempty m_children lastpar tk_listitem warn_doc_error g_filename doctokenizeryylineno retval_subsection warn_doc_error g_filename doctokenizeryylineno retval_subsubsection warn_doc_error g_filename doctokenizeryylineno retval_paragraph warn_doc_error g_filename doctokenizeryylineno retval_section retval_internal lastpar lastpar marklast retval_section sectioninfo sectiondict g_token sectionid docsection docsection g_token sectionid m_children warn_doc_error g_filename doctokenizeryylineno g_token sectionid retval_internal docinternal docinternal m_children handleunclosedstylecommands docnode g_nodestack docroot doc symbol sym type doc symbol decode symbol const q string sym name char letter int l sym name length dbg decode symbol s l d n sym name data l if sym name copy return doc symbol copy else if sym name tm return doc symbol tm else if sym name reg return doc symbol reg else if sym name lt return doc symbol less else if sym name gt return doc symbol greater else if sym name amp return doc symbol amp else if sym name apos return doc symbol apos else if sym name quot return doc symbol quot else if sym name szlig return doc symbol szlig else if sym name nbsp return doc symbol nbsp else if l 6 sym name right 4 uml letter sym name at 1 return doc symbol uml else if l 8 sym name right 6 acute letter sym name at 1 return doc symbol acute else if l 8 sym name right 6 grave letter sym name at 1 return doc symbol grave else if l 7 sym name right 5 circ letter sym name at 1 return doc symbol circ else if l 8 sym name right 6 tilde letter sym name at 1 return doc symbol tilde else if l 8 sym name right 6 cedil letter sym name at 1 return doc symbol cedil else if l 7 sym name right 5 ring letter sym name at 1 return doc symbol ring else if l 8 sym name right 6 slash letter sym name at 1 return doc symbol slash return doc symbol unknown docsymbol symtype docsymbol decodesymbol qstring symname symname decodesymbol symname symname docsymbol symname docsymbol symname docsymbol symname docsymbol symname docsymbol symname docsymbol symname docsymbol symname docsymbol symname docsymbol symname docsymbol symname symname docsymbol symname symname docsymbol symname symname docsymbol symname symname docsymbol symname symname docsymbol symname symname docsymbol symname symname docsymbol symname symname docsymbol docsymbol const char doc style change style string const switch m style case doc style change bold return b case doc style change italic return em case doc style change code return code case doc style change center return center case doc style change small return small case doc style change subscript return subscript case doc style change superscript return superscript case doc style change preformatted return pre case doc style change div return div case doc style change span return span return invalid docstylechange stylestring m_style docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange m parent parent m type t m title 0 m_parent m_type m_title doc simple sect doc simple sect delete m title docsimplesect docsimplesect m_title void doc simple sect accept doc visitor v v visit pre this if m title m title accept v q list iterator doc node cli m children doc node n for cli to first n cli current cli n accept v v visit post this docsimplesect docvisitor visitpre m_title m_title qlistiterator docnode m_children docnode tofirst visitpost int doc simple sect parse bool user title dbg doc simple sect parse start n g nodestack push this handle case for user defined title if user title m title new doc title this m title parse add new paragraph as child doc para par new doc para this if m children is empty par mark first else assert m children last kind doc node kind para doc para m children last mark last false par mark last m children append par parse the contents of the paragraph int retval par parse dbg doc simple sect parse end retval d n retval doc node n g nodestack pop assert n this return retval 0 eof tk newpara tk listitem tk endlist retval simplesec docsimplesect usertitle docsimplesect g_nodestack usertitle m_title doctitle m_title docpara docpara m_children isempty markfirst m_children docnode kind_para docpara m_children marklast marklast m_children docsimplesect docnode g_nodestack tk_newpara tk_listitem tk_endlist retval_simplesec int doc simple sect parse rcs dbg doc simple sect parse rcs start n g nodestack push this m title new doc title this m title parse from string g token name doc parser push context internal validating parse doc this m children g token text doc parser pop context dbg doc simple sect parse rcs n doc node n g nodestack pop assert n this return retval ok docsimplesect parsercs docsimplesect parsercs g_nodestack m_title doctitle m_title parsefromstring g_token docparserpushcontext internalvalidatingparsedoc m_children g_token docparserpopcontext docsimplesect parsercs docnode g_nodestack retval_ok void doc title parse dbg doc title parse start n g nodestack push this doctokenizery yset state title int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a title section g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break doctokenizery yset state para handle pending style commands this m children dbg doc title parse end n doc node n g nodestack pop assert n this doctitle doctitle g_nodestack doctokenizeryysetstatetitle doctokenizeryylex defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring doctokenizeryysetstatepara handlependingstylecommands m_children doctitle docnode g_nodestack void doc title parse from string const q string text m children append new doc word this text doctitle parsefromstring qstring m_children docword int doc simple list parse g nodestack push this int rv do doc simple list item li new doc simple list item this m children append li rv li parse while rv retval listitem doc node n g nodestack pop assert n this return rv tk newpara rv retval ok docsimplelist g_nodestack docsimplelistitem docsimplelistitem m_children retval_listitem docnode g_nodestack tk_newpara retval_ok void accept doc visitor v v visit pre this m paragraph accept v v visit post this docvisitor visitpre m_paragraph visitpost int doc simple list item parse g nodestack push this int rv m paragraph parse m paragraph mark first m paragraph mark last doc node n g nodestack pop assert n this return rv docsimplelistitem g_nodestack m_paragraph m_paragraph markfirst m_paragraph marklast docnode g_nodestack int doc section parse dbg doc section parse start s level d n g token section id data m level int retval retval ok g nodestack push this section info sec if m id is empty sec doxygen section dict m id if sec m file sec file name m anchor sec label m title sec title if m title is empty m title sec label if g sectiondict g sectiondict find m id 0 g sectiondict insert m id sec first parse any number of paragraphs bool is first true doc para last par 0 do doc para par new doc para this if is first par mark first is first false retval par parse if par is empty m children append par last par par else delete par if retval tk listitem warn doc error g filename doctokenizery ylineno warning invalid list item found while retval 0 retval retval internal retval retval section retval retval subsection retval retval subsubsection retval retval paragraph if last par last par mark last if retval retval subsection m level 1 then parse any number of nested sections while retval retval subsection more sections follow section info sec doxygen section dict g token section id doc section s new doc section this 2 g token section id m children append s retval s parse else if retval retval subsubsection m level 2 then parse any number of nested sections while retval retval subsubsection more sections follow section info sec doxygen section dict g token section id doc section s new doc section this 3 g token section id m children append s retval s parse else if retval retval paragraph m level 3 then parse any number of nested sections while retval retval paragraph more sections follow section info sec doxygen section dict g token section id doc section s new doc section this 4 g token section id m children append s retval s parse else if m level 1 retval retval subsubsection m level 2 retval retval paragraph int level if retval retval subsection level 2 else if retval retval subsubsection level 3 else level 4 warn doc error g filename doctokenizery ylineno warning unexpected s command found inside s section level to name level section level to name m level retval 0 stop parsing else if retval retval internal doc internal in new doc internal this m children append in retval in parse m level 1 else internal assert retval 0 retval retval section retval retval subsection retval retval subsubsection retval retval paragraph retval retval internal dbg doc section parse end n doc node n g nodestack pop assert n this return retval docsection docsection g_token sectionid m_level retval_ok g_nodestack sectioninfo m_id isempty sectiondict m_id m_file filename m_anchor m_title m_title isempty m_title g_sectiondict g_sectiondict m_id g_sectiondict m_id isfirst docpara lastpar docpara docpara isfirst markfirst isfirst isempty m_children lastpar tk_listitem warn_doc_error g_filename doctokenizeryylineno retval_internal retval_section retval_subsection retval_subsubsection retval_paragraph lastpar lastpar marklast retval_subsection m_level retval_subsection sectioninfo sectiondict g_token sectionid docsection docsection g_token sectionid m_children retval_subsubsection m_level retval_subsubsection sectioninfo sectiondict g_token sectionid docsection docsection g_token sectionid m_children retval_paragraph m_level retval_paragraph sectioninfo sectiondict g_token sectionid docsection docsection g_token sectionid m_children m_level retval_subsubsection m_level retval_paragraph retval_subsection retval_subsubsection warn_doc_error g_filename doctokenizeryylineno sectionleveltoname sectionleveltoname m_level retval_internal docinternal docinternal m_children m_level internal_assert retval_section retval_subsection retval_subsubsection retval_paragraph retval_internal docsection docnode g_nodestack m parent parent m context context m text text m type t m isexample is example m examplefile example file m relpath g relpath m_parent m_context m_text m_type m_isexample isexample m_examplefile examplefile m_relpath g_relpath docx ref item docx ref item doc node parent int id const char key m parent parent m id id m key key m relpath g relpath docxrefitem docxrefitem docnode m_parent m_id m_key m_relpath g_relpath bool docx ref item parse q string list name ref list ref list doxygen xref lists find m key if ref list either not a built in list or the list is enabled m key todo config getbool generate todolist m key test config getbool generate testlist m key bug config getbool generate buglist m key deprecated config getbool generate deprecatedlist ref item item ref list get ref item m id assert item 0 if item if g memberdef g memberdef name at 0 m file can t cross reference anonymous enum m anchor else m file ref list list name m anchor item list anchor m title ref list section title printf docx ref item file s anchor s title s n m file data m anchor data m title data if item text is empty doc parser push context internal validating parse doc this m children item text doc parser pop context return true return false docxrefitem qstring listname reflist reflist xreflists m_key reflist m_key config_getbool generate_todolist m_key config_getbool generate_testlist m_key config_getbool generate_buglist m_key config_getbool generate_deprecatedlist refitem reflist getrefitem m_id g_memberdef g_memberdef m_file m_anchor m_file reflist listname m_anchor listanchor m_title reflist sectiontitle docxrefitem m_file m_anchor m_title isempty docparserpushcontext internalvalidatingparsedoc m_children docparserpopcontext int doc html list parse dbg doc html list parse start n int retval retval ok int num 1 g nodestack push this get next token int tok doctokenizery ylex skip whitespace and paragraph breaks while tok tk whitespace tok tk newpara tok doctokenizery ylex should find a html tag now if tok tk htmltag int tag id html tag mapper map g token name if tag id html li g token end tag found li tag ok we can go on else found some other tag warn doc error g filename doctokenizery ylineno warning expected li tag but found s instead g token name data goto endlist else if tok 0 premature end of comment warn doc error g filename doctokenizery ylineno warning unexpected end of comment while looking for a html list item goto endlist else token other than html token warn doc error g filename doctokenizery ylineno warning expected li tag but found s token instead tok to string tok goto endlist do doc html list item li new doc html list item this g token attribs num m children append li retval li parse while retval retval listitem if retval 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment while inside cl block m type unordered u o endlist dbg doc html list parse end retval x n retval doc node n g nodestack pop assert n this return retval retval endlist retval ok retval dochtmllist dochtmllist retval_ok g_nodestack doctokenizeryylex tk_whitespace tk_newpara doctokenizeryylex tk_htmltag tagid htmltagmapper g_token tagid html_li g_token endtag warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno toktostring dochtmllistitem dochtmllistitem g_token m_children retval_listitem warn_doc_error g_filename doctokenizeryylineno m_type dochtmllist docnode g_nodestack retval_endlist retval_ok int doc html list item parse dbg doc html list item parse start n int retval 0 g nodestack push this parse one or more paragraphs bool is first true doc para par 0 do par new doc para this if is first par mark first is first false m children append par retval par parse while retval tk newpara if par par mark last doc node n g nodestack pop assert n this dbg doc html list item parse end retval x n retval return retval dochtmllistitem dochtmllistitem g_nodestack isfirst docpara docpara isfirst markfirst isfirst m_children tk_newpara marklast docnode g_nodestack dochtmllistitem int doc html desc list parse int retval retval ok g nodestack push this dbg doc html desc list parse start n get next token int tok doctokenizery ylex skip whitespace while tok tk whitespace tok tk newpara tok doctokenizery ylex should find a html tag now if tok tk htmltag int tag id html tag mapper map g token name if tag id html dt g token end tag found dt tag continue else found some other tag warn doc error g filename doctokenizery ylineno warning expected dt tag but found s instead g token name data goto enddesclist else if tok 0 premature end of comment warn doc error g filename doctokenizery ylineno warning unexpected end of comment while looking for a html description title goto enddesclist else token other than html token warn doc error g filename doctokenizery ylineno warning expected dt tag but found s token instead tok to string tok goto enddesclist do doc html desc title dt new doc html desc title this g token attribs m children append dt doc html desc data dd new doc html desc data this m children append dd retval dt parse if retval retval descdata retval dd parse else if retval retval desctitle error break while retval retval desctitle if retval 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment while inside dl block enddesclist doc node n g nodestack pop assert n this dbg doc html desc list parse end n return retval retval enddesc retval ok retval dochtmldesclist retval_ok g_nodestack dochtmldesclist doctokenizeryylex tk_whitespace tk_newpara doctokenizeryylex tk_htmltag tagid htmltagmapper g_token tagid html_dt g_token endtag warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno toktostring dochtmldesctitle dochtmldesctitle g_token m_children dochtmldescdata dochtmldescdata m_children retval_descdata retval_desctitle retval_desctitle warn_doc_error g_filename doctokenizeryylineno docnode g_nodestack dochtmldesclist retval_enddesc retval_ok int doc html desc title parse int retval 0 g nodestack push this dbg doc html desc title parse start n int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command q string cmd name g token name bool is java link false switch cmd mapper map cmd name case cmd ref int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command g token name data else doctokenizery yset state ref tok doctokenizery ylex get the reference id if tok tk word warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data else doc ref ref new doc ref this g token name m children append ref ref parse doctokenizery yset state para break case cmd javalink is java link true fall through case cmd link int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data else doctokenizery yset state link tok doctokenizery ylex if tok tk word warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of s tok to string tok cmd name data else doctokenizery yset state para doc link lnk new doc link this g token name m children append lnk q string left over lnk parse is java link if left over is empty m children append new doc word this left over break default warn doc error g filename doctokenizery ylineno warning illegal command s as part of a dt tag g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break case tk htmltag int tag id html tag mapper map g token name if tag id html dd g token end tag found dd tag retval retval descdata goto endtitle else if tag id html dt g token end tag ignore dt tag else if tag id html dt missing dt tag retval retval desctitle goto endtitle else if tag id html dl g token end tag retval retval enddesc goto endtitle else warn doc error g filename doctokenizery ylineno warning unexpected html tag s s found within dt context g token end tag g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment while inside dt tag endtitle handle pending style commands this m children dbg doc html desc title parse end n doc node n g nodestack pop assert n this return retval dochtmldesctitle g_nodestack dochtmldesctitle doctokenizeryylex defaulthandletoken m_children tk_command qstring cmdname g_token isjavalink cmdmapper cmdname cmd_ref doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno g_token doctokenizeryysetstateref doctokenizeryylex tk_word warn_doc_error g_filename doctokenizeryylineno toktostring cmdname docref docref g_token m_children doctokenizeryysetstatepara cmd_javalink isjavalink cmd_link doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryysetstatelink doctokenizeryylex tk_word warn_doc_error g_filename doctokenizeryylineno toktostring cmdname doctokenizeryysetstatepara doclink doclink g_token m_children qstring leftover isjavalink leftover isempty m_children docword leftover warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token tk_htmltag tagid htmltagmapper g_token tagid html_dd g_token endtag retval_descdata tagid html_dt g_token endtag tagid html_dt retval_desctitle tagid html_dl g_token endtag retval_enddesc warn_doc_error g_filename doctokenizeryylineno g_token endtag g_token warn_doc_error g_filename doctokenizeryylineno toktostring warn_doc_error g_filename doctokenizeryylineno handlependingstylecommands m_children dochtmldesctitle docnode g_nodestack int doc html desc data parse m attribs g token attribs int retval 0 g nodestack push this dbg doc html desc data parse start n bool is first true doc para par 0 do par new doc para this if is first par mark first is first false m children append par retval par parse while retval tk newpara if par par mark last dbg doc html desc data parse end n doc node n g nodestack pop assert n this return retval dochtmldescdata m_attribs g_token g_nodestack dochtmldescdata isfirst docpara docpara isfirst markfirst isfirst m_children tk_newpara marklast dochtmldescdata docnode g_nodestack int doc html table parse int retval retval ok g nodestack push this dbg doc html table parse start n getrow get next token int tok doctokenizery ylex skip whitespace while tok tk whitespace tok tk newpara tok doctokenizery ylex should find a html tag now if tok tk htmltag int tag id html tag mapper map g token name if tag id html tr g token end tag found tr tag no caption just rows retval retval tablerow else if tag id html caption g token end tag found caption tag if m caption warn doc error g filename doctokenizery ylineno warning table already has a caption found another one else m caption new doc html caption this g token attribs retval m caption parse if retval retval ok caption was parsed ok goto getrow else found wrong token warn doc error g filename doctokenizery ylineno warning expected tr or caption tag but found s s instead g token end tag g token name data else if tok 0 premature end of comment warn doc error g filename doctokenizery ylineno warning unexpected end of comment while looking for a tr or caption tag else token other than html token warn doc error g filename doctokenizery ylineno warning expected tr tag but found s token instead tok to string tok parse one or more rows while retval retval tablerow doc html row tr new doc html row this g token attribs m children append tr retval tr parse dbg doc html table parse end n doc node n g nodestack pop assert n this return retval retval endtable retval ok retval dochtmltable retval_ok g_nodestack dochtmltable doctokenizeryylex tk_whitespace tk_newpara doctokenizeryylex tk_htmltag tagid htmltagmapper g_token tagid html_tr g_token endtag retval_tablerow tagid html_caption g_token endtag m_caption warn_doc_error g_filename doctokenizeryylineno m_caption dochtmlcaption g_token m_caption retval_ok warn_doc_error g_filename doctokenizeryylineno g_token endtag g_token warn_doc_error g_filename doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno toktostring retval_tablerow dochtmlrow dochtmlrow g_token m_children dochtmltable docnode g_nodestack retval_endtable retval_ok uint doc html table num cols const uint cols 0 q list iterator doc node cli m children doc node n for cli to first n cli current cli assert n kind doc node kind htmlrow cols qmax cols doc html row n num cells return cols dochtmltable numcols qlistiterator docnode m_children docnode tofirst docnode kind_htmlrow dochtmlrow numcells void doc html table accept doc visitor v v visit pre this for html output we put the caption first if m caption v id docvisitor html m caption accept v q list iterator doc node cli m children doc node n for cli to first n cli current cli n accept v for other output formats we put the caption last if m caption v id docvisitor html m caption accept v v visit post this dochtmltable docvisitor visitpre m_caption docvisitor_html m_caption qlistiterator docnode m_children docnode tofirst m_caption docvisitor_html m_caption visitpost int doc html row parse int retval retval ok g nodestack push this dbg doc html row parse start n bool is heading false bool is first true doc html cell cell 0 get next token int tok doctokenizery ylex skip whitespace while tok tk whitespace tok tk newpara tok doctokenizery ylex should find a html tag now if tok tk htmltag int tag id html tag mapper map g token name if tag id html td g token end tag found td tag else if tag id html th g token end tag found th tag is heading true else found some other tag warn doc error g filename doctokenizery ylineno warning expected td or th tag but found s instead g token name data goto endrow else if tok 0 premature end of comment warn doc error g filename doctokenizery ylineno warning unexpected end of comment while looking for a html description title goto endrow else token other than html token warn doc error g filename doctokenizery ylineno warning expected td or th tag but found s token instead tok to string tok goto endrow parse one or more cells do cell new doc html cell this g token attribs is heading cell mark first is first is first false m children append cell retval cell parse is heading retval retval tablehcell while retval retval tablecell retval retval tablehcell if cell cell mark last true endrow dbg doc html row parse end n doc node n g nodestack pop assert n this return retval dochtmlrow retval_ok g_nodestack dochtmlrow isheading isfirst dochtmlcell doctokenizeryylex tk_whitespace tk_newpara doctokenizeryylex tk_htmltag tagid htmltagmapper g_token tagid html_td g_token endtag tagid html_th g_token endtag isheading warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno toktostring dochtmlcell g_token isheading markfirst isfirst isfirst m_children isheading retval_tablehcell retval_tablecell retval_tablehcell marklast dochtmlrow docnode g_nodestack int doc html cell parse int retval retval ok g nodestack push this dbg doc html cell parse start n parse one or more paragraphs bool is first true doc para par 0 do par new doc para this if is first par mark first is first false m children append par retval par parse while retval tk newpara if par par mark last dbg doc html cell parse end n doc node n g nodestack pop assert n this return retval dochtmlcell retval_ok g_nodestack dochtmlcell isfirst docpara docpara isfirst markfirst isfirst m_children tk_newpara marklast dochtmlcell docnode g_nodestack int doc html caption parse int retval 0 g nodestack push this dbg doc html caption parse start n int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a caption tag g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break case tk htmltag int tag id html tag mapper map g token name if tag id html caption g token end tag found caption tag retval retval ok goto endcaption else warn doc error g filename doctokenizery ylineno warning unexpected html tag s s found within caption context g token end tag g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment while inside caption tag doctokenizery ylineno endcaption handle pending style commands this m children dbg doc html caption parse end n doc node n g nodestack pop assert n this return retval dochtmlcaption g_nodestack dochtmlcaption doctokenizeryylex defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token tk_htmltag tagid htmltagmapper g_token tagid html_caption g_token endtag retval_ok warn_doc_error g_filename doctokenizeryylineno g_token endtag g_token warn_doc_error g_filename doctokenizeryylineno toktostring warn_doc_error g_filename doctokenizeryylineno doctokenizeryylineno handlependingstylecommands m_children dochtmlcaption docnode g_nodestack m parent parent if id is empty warn doc error g filename doctokenizery ylineno warning empty anchor label if new anchor found a name label m anchor id else found anchor label section info sec doxygen section dict id if sec printf found anchor s n id data m file sec file name m anchor sec label if g sectiondict g sectiondict find id 0 printf inserting in dictionary n g sectiondict insert id sec else warn doc error g filename doctokenizery ylineno warning invalid anchor id s id data m anchor invalid m file invalid m_parent isempty warn_doc_error g_filename doctokenizeryylineno newanchor m_anchor sectioninfo sectiondict m_file filename m_anchor g_sectiondict g_sectiondict g_sectiondict warn_doc_error g_filename doctokenizeryylineno m_anchor m_file int doc index entry parse int retval retval ok g nodestack push this dbg doc index entry parse start n int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after addindex command goto endindexentry doctokenizery yset state title m entry while tok doctokenizery ylex switch tok case tk whitespace m entry break case tk word case tk lnkword m entry g token name break case tk symbol char letter 0 doc symbol sym type s doc symbol decode symbol g token name letter switch s case doc symbol b slash m entry break case doc symbol at m entry break case doc symbol less m entry break case doc symbol greater m entry break case doc symbol amp m entry break case doc symbol dollar m entry break case doc symbol hash m entry break case doc symbol percent m entry break case doc symbol apos m entry break case doc symbol quot m entry break default warn doc error g filename doctokenizery ylineno warning unexpected symbol found as argument of addindex break break case tk command switch cmd mapper map g token name case cmd bslash m entry break case cmd at m entry break case cmd less m entry break case cmd greater m entry break case cmd amp m entry break case cmd dollar m entry break case cmd hash m entry break case cmd percent m entry break default warn doc error g filename doctokenizery ylineno warning unexpected command s found as argument of addindex g token name data break break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break if tok 0 retval tok doctokenizery yset state para endindexentry dbg doc index entry parse end retval x n retval doc node n g nodestack pop assert n this return retval docindexentry retval_ok g_nodestack docindexentry doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno doctokenizeryysetstatetitle m_entry doctokenizeryylex tk_whitespace m_entry tk_word tk_lnkword m_entry g_token tk_symbol docsymbol symtype docsymbol decodesymbol g_token docsymbol bslash m_entry docsymbol m_entry docsymbol m_entry docsymbol m_entry docsymbol m_entry docsymbol m_entry docsymbol m_entry docsymbol m_entry docsymbol m_entry docsymbol m_entry warn_doc_error g_filename doctokenizeryylineno tk_command cmdmapper g_token cmd_bslash m_entry cmd_at m_entry cmd_less m_entry cmd_greater m_entry cmd_amp m_entry cmd_dollar m_entry cmd_hash m_entry cmd_percent m_entry warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring doctokenizeryysetstatepara docindexentry docnode g_nodestack int doc internal parse int level int retval retval ok g nodestack push this dbg doc internal parse start n first parse any number of paragraphs bool is first true doc para last par 0 do doc para par new doc para this if is first par mark first is first false retval par parse if par is empty m children append par last par par else delete par if retval tk listitem warn doc error g filename doctokenizery ylineno warning invalid list item found doctokenizery ylineno while retval 0 retval retval section retval retval subsection retval retval subsubsection retval retval paragraph if last par last par mark last then parse any number of level n sections while level 1 retval retval section level 2 retval retval subsection level 3 retval retval subsubsection level 4 retval retval paragraph doc section s new doc section this level g token section id m children append s retval s parse if retval retval internal warn doc error g filename doctokenizery ylineno warning internal command found inside internal section dbg doc internal parse end n doc node n g nodestack pop assert n this return retval docinternal retval_ok g_nodestack docinternal isfirst docpara lastpar docpara docpara isfirst markfirst isfirst isempty m_children lastpar tk_listitem warn_doc_error g_filename doctokenizeryylineno doctokenizeryylineno retval_section retval_subsection retval_subsubsection retval_paragraph lastpar lastpar marklast retval_section retval_subsection retval_subsubsection retval_paragraph docsection docsection g_token sectionid m_children retval_internal warn_doc_error g_filename doctokenizeryylineno docinternal docnode g_nodestack int doch ref parse int retval retval ok g nodestack push this dbg doch ref parse start n int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a a a block g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break case tk htmltag int tag id html tag mapper map g token name if tag id html a g token end tag found a tag goto endhref else warn doc error g filename doctokenizery ylineno warning unexpected html tag s s found within a href context g token end tag g token name data doctokenizery ylineno break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok doctokenizery ylineno break if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment while inside a href tag doctokenizery ylineno endhref handle pending style commands this m children dbg doch ref parse end n doc node n g nodestack pop assert n this return retval dochref retval_ok g_nodestack dochref doctokenizeryylex defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token tk_htmltag tagid htmltagmapper g_token tagid html_a g_token endtag warn_doc_error g_filename doctokenizeryylineno g_token endtag g_token doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno toktostring doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno doctokenizeryylineno handlependingstylecommands m_children dochref docnode g_nodestack void doc include parse dbg doc include parse file s text s n m file data m text data switch m type case inc with lines fall through case include fall through case dont include read text file by name m file m text g includefiletext m text g includefileoffset 0 g includefilelength m text length printf g includefile s n g includefiletext data break case verb include fall through case html include read text file by name m file m text break docinclude docinclude m_file m_text m_type incwithlines dontinclude readtextfilebyname m_file m_text g_includefiletext m_text g_includefileoffset g_includefilelength m_text g_includefile g_includefiletext verbinclude htmlinclude readtextfilebyname m_file m_text void doc inc operator parse const char p g includefiletext uint l g includefilelength uint o g includefileoffset dbg doc inc operator parse text s off d len d n p o l uint so o bo bool non empty false switch type case line while o l char c p o if c n if non empty break we have a pattern to match so o 1 no pattern skip empty line else if isspace uchar c no white space char non empty true o if g includefiletext mid so o so find m pattern 1 m text g includefiletext mid so o so dbg doc inc operator parse line s n m text data g includefileoffset qmin l o 1 set pointer to start of new line break case skip line while o l so o while o l char c p o if c n if non empty break we have a pattern to match so o 1 no pattern skip empty line else if isspace uchar c no white space char non empty true o if g includefiletext mid so o so find m pattern 1 m text g includefiletext mid so o so dbg doc inc operator parse skip line s n m text data break o skip new line g includefileoffset qmin l o 1 set pointer to start of new line break case skip while o l so o while o l char c p o if c n if non empty break we have a pattern to match so o 1 no pattern skip empty line else if isspace uchar c no white space char non empty true o if g includefiletext mid so o so find m pattern 1 break o skip new line g includefileoffset so set pointer to start of new line break case until bo o while o l so o while o l char c p o if c n if non empty break we have a pattern to match so o 1 no pattern skip empty line else if isspace uchar c no white space char non empty true o if g includefiletext mid so o so find m pattern 1 m text g includefiletext mid bo o bo dbg doc inc operator parse until s n m text data break o skip new line g includefileoffset qmin l o 1 set pointer to start of new line break docincoperator g_includefiletext g_includefilelength g_includefileoffset docincoperator nonempty nonempty nonempty g_includefiletext m_pattern m_text g_includefiletext docincoperator m_text g_includefileoffset skipline nonempty nonempty g_includefiletext m_pattern m_text g_includefiletext docincoperator skipline m_text g_includefileoffset nonempty nonempty g_includefiletext m_pattern g_includefileoffset nonempty nonempty g_includefiletext m_pattern m_text g_includefiletext docincoperator m_text g_includefileoffset int doc html header parse int retval retval ok g nodestack push this dbg doc html header parse start n int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a h d tag g token name data m level break case tk htmltag int tag id html tag mapper map g token name if tag id html h1 g token end tag found h1 tag if m level 1 warn doc error g filename doctokenizery ylineno warning h d ended with h1 m level goto endheader else if tag id html h2 g token end tag found h2 tag if m level 2 warn doc error g filename doctokenizery ylineno warning h d ended with h2 m level goto endheader else if tag id html h3 g token end tag found h3 tag if m level 3 warn doc error g filename doctokenizery ylineno warning h d ended with h3 m level goto endheader else if tag id html h4 g token end tag found h4 tag if m level 4 warn doc error g filename doctokenizery ylineno warning h d ended with h4 m level goto endheader else if tag id html h5 g token end tag found h5 tag if m level 5 warn doc error g filename doctokenizery ylineno warning h d ended with h5 m level goto endheader else if tag id html h6 g token end tag found h6 tag if m level 6 warn doc error g filename doctokenizery ylineno warning h d ended with h6 m level goto endheader else if tag id html a if g token end tag handlea href this m children g token attribs else if tag id html br doc line break lb new doc line break this m children append lb else warn doc error g filename doctokenizery ylineno warning unexpected html tag s s found within h d context g token end tag g token name data m level break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment while inside h d tag n m level endheader handle pending style commands this m children dbg doc html header parse end n doc node n g nodestack pop assert n this return retval dochtmlheader retval_ok g_nodestack dochtmlheader doctokenizeryylex defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token m_level tk_htmltag tagid htmltagmapper g_token tagid html_h1 g_token endtag m_level warn_doc_error g_filename doctokenizeryylineno m_level tagid html_h2 g_token endtag m_level warn_doc_error g_filename doctokenizeryylineno m_level tagid html_h3 g_token endtag m_level warn_doc_error g_filename doctokenizeryylineno m_level tagid html_h4 g_token endtag m_level warn_doc_error g_filename doctokenizeryylineno m_level tagid html_h5 g_token endtag m_level warn_doc_error g_filename doctokenizeryylineno m_level tagid html_h6 g_token endtag m_level warn_doc_error g_filename doctokenizeryylineno m_level tagid html_a g_token endtag handleahref m_children g_token tagid html_br doclinebreak doclinebreak m_children warn_doc_error g_filename doctokenizeryylineno g_token endtag g_token m_level tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring warn_doc_error g_filename doctokenizeryylineno m_level handlependingstylecommands m_children dochtmlheader docnode g_nodestack m parent parent m attribs attribs m name name m type t m relpath g relpath m_parent m_attribs m_name m_type m_relpath g_relpath void doc image parse g nodestack push this dbg doc image parse start n parse title doctokenizery yset state title int tok while tok doctokenizery ylex if tok tk word g token name width g token name height special case no title but we do have a size indicator doctokenizery yset state title attr value strip g token name g token name left g token name length 1 break if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a image g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break parse size attributes tok doctokenizery ylex while tok tk word there are values following the title if g token name width m width g token chars else if g token name height m height g token chars else warn doc error g filename doctokenizery ylineno warning unknown option s after image title g token name data tok doctokenizery ylex doctokenizery yset state para handle pending style commands this m children dbg doc image parse end n doc node n g nodestack pop assert n this docimage g_nodestack docimage doctokenizeryysetstatetitle doctokenizeryylex tk_word g_token g_token doctokenizeryysetstatetitleattrvalue g_token g_token g_token defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring doctokenizeryylex tk_word g_token m_width g_token g_token m_height g_token warn_doc_error g_filename doctokenizeryylineno g_token doctokenizeryylex doctokenizeryysetstatepara handlependingstylecommands m_children docimage docnode g_nodestack doc dot file doc dot file doc node parent const q string name m parent parent m name name m relpath g relpath docdotfile docdotfile docnode qstring m_parent m_name m_relpath g_relpath void doc dot file parse g nodestack push this dbg doc dot file parse start n doctokenizery yset state title int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a dotfile g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break tok doctokenizery ylex while tok tk word there are values following the title if g token name width m width g token chars else if g token name height m height g token chars else warn doc error g filename doctokenizery ylineno warning unknown option s after image title g token name data tok doctokenizery ylex assert tok 0 doctokenizery yset state para handle pending style commands this m children bool ambig file def fd find file def doxygen dot file name dict m name ambig if fd m file fd abs file path else if ambig warn doc error g filename doctokenizery ylineno warning included dot file name s is ambigious n possible candidates n s m name data show file def matches doxygen example name dict m name data else warn doc error g filename doctokenizery ylineno warning included dot file s is not found in any of the paths specified via dotfile dirs m name data dbg doc dot file parse end n doc node n g nodestack pop assert n this docdotfile g_nodestack docdotfile doctokenizeryysetstatetitle doctokenizeryylex defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring doctokenizeryylex tk_word g_token m_width g_token g_token m_height g_token warn_doc_error g_filename doctokenizeryylineno g_token doctokenizeryylex doctokenizeryysetstatepara handlependingstylecommands m_children filedef findfiledef dotfilenamedict m_name m_file absfilepath warn_doc_error g_filename doctokenizeryylineno m_name showfiledefmatches examplenamedict m_name warn_doc_error g_filename doctokenizeryylineno dotfile_dirs m_name docdotfile docnode g_nodestack m parent parent definition compound page info page qc string anchor m reftext target m relpath g relpath if m reftext is empty m reftext at 0 m reftext m reftext right m reftext length 1 if resolve link g context strip known extensions target g inseeblock compound anchor m anchor anchor if compound compound is linkable m file compound get output file base m ref compound get reference else if compound definition type definition type file file def compound generate source file undocumented file that has source code we can link to m file compound get source file base m ref compound get reference return bogus link target warn doc error g filename doctokenizery ylineno warning unable to resolve link to s for link command target data m_parent pageinfo qcstring m_reftext m_relpath g_relpath m_reftext isempty m_reftext m_reftext m_reftext m_reftext resolvelink g_context stripknownextensions g_inseeblock m_anchor islinkable m_file getoutputfilebase m_ref getreference definitiontype typefile filedef generatesourcefile m_file getsourcefilebase m_ref getreference warn_doc_error g_filename doctokenizeryylineno q string doc link parse bool is java link q string result g nodestack push this dbg doc link parse start n int tok while tok doctokenizery ylex if default handle token this tok m children false switch tok case tk command switch cmd mapper map g token name case cmd endlink if is java link warn doc error g filename doctokenizery ylineno warning link ended with endlink command goto endlink default warn doc error g filename doctokenizery ylineno warning illegal command s as part of a link g token name data break break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break case tk lnkword case tk word if is java link special case to detect closing q string w g token name int p if w goto endlink else if p w find 1 uint l w length m children append new doc word this w left p if uint p l 1 something left after the for instance a result w right l p 1 goto endlink m children append new doc word this g token name break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break if tok 0 warn doc error g filename doctokenizery ylineno warning unexpected end of comment while inside link command n endlink if is java link if m children is empty no link text m children append new doc word this m reftext handle pending style commands this m children dbg doc link parse end n doc node n g nodestack pop assert n this return result qstring doclink isjavalink qstring g_nodestack doclink doctokenizeryylex defaulthandletoken m_children tk_command cmdmapper g_token cmd_endlink isjavalink warn_doc_error g_filename doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token tk_lnkword tk_word isjavalink qstring g_token m_children docword m_children docword g_token warn_doc_error g_filename doctokenizeryylineno toktostring warn_doc_error g_filename doctokenizeryylineno isjavalink m_children isempty m_children docword m_reftext handlependingstylecommands m_children doclink docnode g_nodestack m parent parent m reftosection false m reftoanchor false definition compound 0 qc string anchor assert target is empty m relpath g relpath section info sec doxygen section dict target if sec ref to section or anchor m text sec title if m text is empty m text sec label m ref sec ref m file strip known extensions sec file name if sec type section info page m anchor sec label m reftoanchor sec type section info anchor m reftosection sec type section info anchor printf m text s m ref s m file s m reftoanchor d n m text data m ref data m file data m reftoanchor return else if resolve link g context target true compound anchor bool is file compound compound definition type definition type file true false false m text link to text target is file m anchor anchor if compound compound is linkable ref to compound if anchor is empty compound link compound definition type definition type group is group group def compound group title with title m text group def compound group title use group s title as link else if compound definition type definition type member member def compound is objc method objective c method member def member member def compound bool local link g memberdef member get class def g memberdef get class def false m text member objc method name local link g inseeblock m file compound get output file base m ref compound get reference return else if compound definition type definition type file file def compound generate source file undocumented file that has source code we can link to m file compound get source file base m ref compound get reference return m text link to text target false warn doc error g filename doctokenizery ylineno warning unable to resolve reference to s for ref command target data m_parent m_reftosection m_reftoanchor qcstring isempty m_relpath g_relpath sectioninfo sectiondict m_text m_text isempty m_text m_ref m_file stripknownextensions filename sectioninfo m_anchor m_reftoanchor sectioninfo m_reftosection sectioninfo m_text m_ref m_file m_reftoanchor m_text m_ref m_file m_reftoanchor resolvelink g_context isfile definitiontype typefile m_text linktotext isfile m_anchor islinkable isempty definitiontype typegroup groupdef grouptitle m_text groupdef grouptitle definitiontype typemember memberdef isobjcmethod memberdef memberdef locallink g_memberdef getclassdef g_memberdef getclassdef m_text objcmethodname locallink g_inseeblock m_file getoutputfilebase m_ref getreference definitiontype typefile filedef generatesourcefile m_file getsourcefilebase m_ref getreference m_text linktotext warn_doc_error g_filename doctokenizeryylineno void doc ref parse g nodestack push this dbg doc ref parse start n int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a ref g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break handle pending style commands this m children dbg doc ref parse end n doc node n g nodestack pop assert n this docref g_nodestack docref doctokenizeryylex defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring handlependingstylecommands m_children docref docnode g_nodestack m parent parent m relpath g relpath q string form cmd form cmd sprintf form d id formula formula doxygen formula name dict form cmd if formula m id formula get id m name sprintf form d m id m text formula get formula text m_parent m_relpath g_relpath qstring formcmd formcmd formulanamedict formcmd m_id getid m_name form_ m_id m_text getformulatext void doc sec ref item parse dbg doc sec ref item parse start n g nodestack push this doctokenizery yset state title int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a refitem g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break doctokenizery yset state para handle pending style commands this m children section info sec 0 if m target is empty sec doxygen section dict m target if sec m file sec file name m anchor sec label if g sectiondict g sectiondict find m target 0 g sectiondict insert m target sec else warn doc error g filename doctokenizery ylineno warning reference to unknown section s m target data else warn doc error g filename doctokenizery ylineno warning reference to empty target dbg doc sec ref item parse end n doc node n g nodestack pop assert n this docsecrefitem docsecrefitem g_nodestack doctokenizeryysetstatetitle doctokenizeryylex defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring doctokenizeryysetstatepara handlependingstylecommands m_children sectioninfo m_target isempty sectiondict m_target m_file filename m_anchor g_sectiondict g_sectiondict m_target g_sectiondict m_target warn_doc_error g_filename doctokenizeryylineno m_target warn_doc_error g_filename doctokenizeryylineno docsecrefitem docnode g_nodestack void doc sec ref list parse dbg doc sec ref list parse start n g nodestack push this int tok doctokenizery ylex skip white space while tok tk whitespace tok tk newpara tok doctokenizery ylex handle items while tok if tok tk command switch cmd mapper map g token name case cmd secrefitem int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after refitem command break tok doctokenizery ylex if tok tk word tok tk lnkword warn doc error g filename doctokenizery ylineno warning unexpected token s as the argument of refitem tok to string tok break doc sec ref item item new doc sec ref item this g token name m children append item item parse break case cmd endsecreflist goto endsecreflist default warn doc error g filename doctokenizery ylineno warning illegal command s as part of a secreflist g token name data goto endsecreflist else if tok tk whitespace ignore whitespace else warn doc error g filename doctokenizery ylineno warning unexpected token s inside section reference list tok to string tok goto endsecreflist tok doctokenizery ylex endsecreflist dbg doc sec ref list parse end n doc node n g nodestack pop assert n this docsecreflist docsecreflist g_nodestack doctokenizeryylex tk_whitespace tk_newpara doctokenizeryylex tk_command cmdmapper g_token cmd_secrefitem doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno doctokenizeryylex tk_word tk_lnkword warn_doc_error g_filename doctokenizeryylineno toktostring docsecrefitem docsecrefitem g_token m_children cmd_endsecreflist warn_doc_error g_filename doctokenizeryylineno g_token tk_whitespace warn_doc_error g_filename doctokenizeryylineno toktostring doctokenizeryylex docsecreflist docnode g_nodestack m file file m relpath g relpath m anchor anchor printf new word s url s n word data g searchurl data if g searchurl is empty doxygen search index add word word false m_file m_relpath g_relpath m_anchor g_searchurl g_searchurl isempty searchindex addword int doc param sect parse const q string cmd name direction d int retval retval ok dbg doc param sect parse start n g nodestack push this doc param list pl new doc param list this m type d if m children is empty pl mark first pl mark last else assert m children last kind doc node kind paramlist doc param list m children last mark last false pl mark last m children append pl retval pl parse cmd name dbg doc param sect parse end retval d n retval doc node n g nodestack pop assert n this return retval docparamsect qstring cmdname retval_ok docparamsect g_nodestack docparamlist docparamlist m_type m_children isempty markfirst marklast m_children docnode kind_paramlist docparamlist m_children marklast marklast m_children cmdname docparamsect docnode g_nodestack void accept doc visitor v v visit pre this m paragraph accept v v visit post this docvisitor visitpre m_paragraph visitpost int doc param list parse const q string cmd name int retval retval ok dbg doc param list parse start n g nodestack push this int tok doctokenizery ylex if tok tk whitespace warn doc error g filename doctokenizery ylineno warning expected whitespace after s command cmd name data doctokenizery yset state param tok doctokenizery ylex while tok tk word there is a parameter name if m type doc param sect param g hasparamcommand true check argument name g token name true else if m type doc param sect ret val g hasreturncommand true check argument name g token name false m params append g token name handle linked word this m params tok doctokenizery ylex doctokenizery yset state para if tok 0 premature end of comment block warn doc error g filename doctokenizery ylineno warning unexpected end of comment block while parsing the argument of command s cmd name data retval 0 goto endparamlist assert tok tk whitespace retval m paragraph parse m paragraph mark first m paragraph mark last endparamlist dbg doc param list parse end retval d n retval doc node n g nodestack pop assert n this return retval docparamlist qstring cmdname retval_ok docparamlist g_nodestack doctokenizeryylex tk_whitespace warn_doc_error g_filename doctokenizeryylineno cmdname doctokenizeryysetstateparam doctokenizeryylex tk_word m_type docparamsect g_hasparamcommand checkargumentname g_token m_type docparamsect retval g_hasreturncommand checkargumentname g_token m_params g_token handlelinkedword m_params doctokenizeryylex doctokenizeryysetstatepara warn_doc_error g_filename doctokenizeryylineno cmdname tk_whitespace m_paragraph m_paragraph markfirst m_paragraph marklast docparamlist docnode g_nodestack m parent parent m relpath g relpath int i ref find if i 1 m anchor ref right ref length i 1 m file ref left i else m file ref m_parent m_relpath g_relpath m_anchor m_file m_file void doc internal ref parse g nodestack push this dbg doc internal ref parse start n int tok while tok doctokenizery ylex if default handle token this tok m children switch tok case tk command warn doc error g filename doctokenizery ylineno warning illegal command s as part of a ref g token name data break case tk symbol warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break handle pending style commands this m children dbg doc internal ref parse end n doc node n g nodestack pop assert n this docinternalref g_nodestack docinternalref doctokenizeryylex defaulthandletoken m_children tk_command warn_doc_error g_filename doctokenizeryylineno g_token tk_symbol warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring handlependingstylecommands m_children docinternalref docnode g_nodestack void doc copy parse q string doc definition def if find docs for member or compound m link doc def if g copystack find ref def 1 definition not parsed earlier doc parser push context if def definition type definition type member def get outer scope g context def get outer scope name else g context def name g stylestack clear g nodestack clear g copystack append def internal validating parse doc this m children doc assert g copystack remove def assert g stylestack is empty assert g nodestack is empty doc parser pop context else oops recursion warn doc error g filename doctokenizery ylineno warning recursive call chain of copydoc commands detected at d n doctokenizery ylineno else warn doc error g filename doctokenizery ylineno warning target s of copydoc command not found m link data doccopy qstring finddocsformemberorcompound m_link g_copystack findref docparserpushcontext definitiontype typemember getouterscope g_context getouterscope g_context g_stylestack g_nodestack g_copystack internalvalidatingparsedoc m_children g_copystack g_stylestack isempty g_nodestack isempty docparserpopcontext warn_doc_error g_filename doctokenizeryylineno doctokenizeryylineno warn_doc_error g_filename doctokenizeryylineno m_link void doc text parse dbg doc text parse start n g nodestack push this doctokenizery yset state text int tok while tok doctokenizery ylex get the next token switch tok case tk word m children append new doc word this g token name break case tk whitespace m children append new doc white space this g token chars break case tk symbol char letter 0 doc symbol sym type s doc symbol decode symbol g token name letter if s doc symbol unknown m children append new doc symbol this s letter else warn doc error g filename doctokenizery ylineno warning unsupported symbol s found g token name data break case tk command switch cmd mapper map g token name case cmd bslash m children append new doc symbol this doc symbol b slash break case cmd at m children append new doc symbol this doc symbol at break case cmd less m children append new doc symbol this doc symbol less break case cmd greater m children append new doc symbol this doc symbol greater break case cmd amp m children append new doc symbol this doc symbol amp break case cmd dollar m children append new doc symbol this doc symbol dollar break case cmd hash m children append new doc symbol this doc symbol hash break case cmd percent m children append new doc symbol this doc symbol percent break default warn doc error g filename doctokenizery ylineno warning unexpected command s found g token name data break break default warn doc error g filename doctokenizery ylineno warning unexpected token s tok to string tok break handle unclosed style commands doc node n g nodestack pop assert n this dbg doc text parse end n doctext doctext g_nodestack doctokenizeryysetstatetext doctokenizeryylex tk_word m_children docword g_token tk_whitespace m_children docwhitespace g_token tk_symbol docsymbol symtype docsymbol decodesymbol g_token docsymbol m_children docsymbol warn_doc_error g_filename doctokenizeryylineno g_token tk_command cmdmapper g_token cmd_bslash m_children docsymbol docsymbol bslash cmd_at m_children docsymbol docsymbol cmd_less m_children docsymbol docsymbol cmd_greater m_children docsymbol docsymbol cmd_amp m_children docsymbol docsymbol cmd_dollar m_children docsymbol docsymbol cmd_hash m_children docsymbol docsymbol cmd_percent m_children docsymbol docsymbol warn_doc_error g_filename doctokenizeryylineno g_token warn_doc_error g_filename doctokenizeryylineno toktostring handleunclosedstylecommands docnode g_nodestack doctext html doc visitor html doc visitor q text stream t base code doc interface ci doc visitor docvisitor html m t t m ci ci m insidepre false m hide false htmldocvisitor htmldocvisitor qtextstream basecodedocinterface docvisitor docvisitor_html m_t m_ci m_insidepre m_hide void html doc visitor visit doc word w if m hide return filter w word htmldocvisitor docword m_hide void html doc visitor visit doc linked word w if m hide return start link w ref w file w rel path w anchor filter w word end link htmldocvisitor doclinkedword m_hide startlink relpath endlink void html doc visitor visit doc white space w if m hide return if m insidepre m t w chars else m t htmldocvisitor docwhitespace m_hide m_insidepre m_t m_t void html doc visitor visit doc symbol s if m hide return switch s symbol case doc symbol b slash m t break case doc symbol at m t break case doc symbol less m t lt break case doc symbol greater m t gt break case doc symbol amp m t amp break case doc symbol dollar m t break case doc symbol hash m t break case doc symbol percent m t break case doc symbol copy m t copy break case doc symbol tm m t tm break case doc symbol reg m t reg break case doc symbol apos m t break case doc symbol quot m t break case doc symbol uml m t s letter uml break case doc symbol acute m t s letter acute break case doc symbol grave m t s letter grave break case doc symbol circ m t s letter circ break case doc symbol slash m t s letter slash break case doc symbol tilde m t s letter tilde break case doc symbol szlig m t szlig break case doc symbol cedil m t s letter cedil break case doc symbol ring m t s letter ring break case doc symbol nbsp m t nbsp break default err error unknown symbol found n htmldocvisitor docsymbol m_hide docsymbol bslash m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t void html doc visitor visit docurl u if m hide return m t a href if u is email m t mailto m t u url filter u url m t a htmldocvisitor m_hide m_t isemail m_t m_t m_t void html doc visitor visit doc line break if m hide return m t br n htmldocvisitor doclinebreak m_hide m_t void html doc visitor visit doc hor ruler if m hide return m t hr n htmldocvisitor dochorruler m_hide m_t void html doc visitor visit doc style change s if m hide return switch s style case doc style change bold if s enable m t b html attribs to string s attribs else m t b break case doc style change italic if s enable m t em html attribs to string s attribs else m t em break case doc style change code if s enable m t code html attribs to string s attribs else m t code break case doc style change subscript if s enable m t sub html attribs to string s attribs else m t sub break case doc style change superscript if s enable m t sup html attribs to string s attribs else m t sup break case doc style change center if s enable m t center html attribs to string s attribs else m t center break case doc style change small if s enable m t small html attribs to string s attribs else m t small break case doc style change preformatted if s enable m t pre html attribs to string s attribs m insidepre true else m insidepre false m t pre break case doc style change div if s enable m t div html attribs to string s attribs else m t div break case doc style change span if s enable m t span html attribs to string s attribs else m t span break htmldocvisitor docstylechange m_hide docstylechange m_t htmlattribstostring m_t docstylechange m_t htmlattribstostring m_t docstylechange m_t htmlattribstostring m_t docstylechange m_t htmlattribstostring m_t docstylechange m_t htmlattribstostring m_t docstylechange m_t htmlattribstostring m_t docstylechange m_t htmlattribstostring m_t docstylechange m_t htmlattribstostring m_insidepre m_insidepre m_t docstylechange m_t htmlattribstostring m_t docstylechange m_t htmlattribstostring m_t void html doc visitor visit doc verbatim s if m hide return switch s type case doc verbatim code fall though m t prefrag start parse code m ci s context s text latin1 s is example s example file m t prefrag end break case doc verbatim verbatim m t prefrag start filter s text m t prefrag end break case doc verbatim html only m t s text break case doc verbatim man only case doc verbatim latex only case doc verbatim xml only nothing break case doc verbatim dot static int dotindex 1 qc string file name 4096 file name sprintf s d config getstring html output inline dotgraph data dotindex q file file file name if file open io writeonly err could not open file s for writing n file name data file write block s text s text length file close m t div align center endl write dot file file name s rel path m t div endl file remove break htmldocvisitor docverbatim m_hide docverbatim m_t prefrag_start parsecode m_ci isexample examplefile m_t prefrag_end docverbatim m_t prefrag_start m_t prefrag_end docverbatim htmlonly m_t docverbatim manonly docverbatim latexonly docverbatim xmlonly docverbatim qcstring filename filename config_getstring html_output inline_dotgraph_ qfile filename io_writeonly filename writeblock m_t writedotfile filename relpath m_t void html doc visitor visit doc anchor anc if m hide return m t a class anchor name anc anchor a htmldocvisitor docanchor m_hide m_t void html doc visitor visit doc include inc if m hide return switch inc type case doc include include m t prefrag start parse code m ci inc context inc text latin1 inc is example inc example file m t prefrag end break case doc include inc with lines m t prefrag start q file info cfi inc file file def fd cfi dir path cfi file name parse code m ci inc context inc text latin1 inc is example inc example file fd m t prefrag end break case doc include dont include break case doc include html include m t inc text break case doc include verb include m t prefrag start filter inc text m t prefrag end break htmldocvisitor docinclude m_hide docinclude m_t prefrag_start parsecode m_ci isexample examplefile m_t prefrag_end docinclude incwithlines m_t prefrag_start qfileinfo filedef dirpath filename parsecode m_ci isexample examplefile m_t prefrag_end docinclude dontinclude docinclude htmlinclude m_t docinclude verbinclude m_t prefrag_start m_t prefrag_end void html doc visitor visit doc inc operator op printf doc inc operator type d first d last d text s n op type op is first op is last op text data if op is first if m hide m t prefrag start push enabled m hide true if op type doc inc operator skip pop enabled if m hide parse code m ci op context op text latin1 op is example op example file push enabled m hide true if op is last pop enabled if m hide m t prefrag end else if m hide m t endl htmldocvisitor docincoperator docincoperator isfirst islast isfirst m_hide m_t prefrag_start pushenabled m_hide docincoperator popenabled m_hide parsecode m_ci isexample examplefile pushenabled m_hide islast popenabled m_hide m_t prefrag_end m_hide m_t void html doc visitor visit doc formula f if m hide return bool b display f text at 0 if b display m t p class formula dsp endl m t img class formula b display dsp inl m t alt filter quoted cdata attr f text m t todo cache image dimensions on formula generation and give height width for faster preloading and better rendering of the page m t src f rel path f name png if b display m t endl p endl htmldocvisitor docformula m_hide bdisplay bdisplay m_t formuladsp m_t bdisplay m_t filterquotedcdataattr m_t m_t relpath bdisplay m_t void html doc visitor visit doc index entry htmldocvisitor docindexentry void html doc visitor visit pre doc auto list l if m hide return if l is enum list do list type based on depth 1 a i a 1 repeat m t ol type types l depth num html list types else m t ul if l is preformatted m t n htmldocvisitor visitpre docautolist m_hide isenumlist m_t num_html_list_types m_t ispreformatted m_t void html doc visitor visit post doc auto list l if m hide return if l is enum list m t ol else m t ul if l is preformatted m t n htmldocvisitor visitpost docautolist m_hide isenumlist m_t m_t ispreformatted m_t void html doc visitor visit pre doc auto list item if m hide return m t li htmldocvisitor visitpre docautolistitem m_hide m_t void html doc visitor visit post doc auto list item if m hide return m t li htmldocvisitor visitpost docautolistitem m_hide m_t void html doc visitor visit pre doc para if m hide return todo paragraph should be surrounded by p p but a list item li description data dd or table data td should only have paragraph markers if there are multiple paragraphs otherwise the output looks ugly a list or table should be placed outside the paragraph context so the current paragraph should be ended and restarted to avoid empty paragraphs it has to be checked if the list or table is the first or last child within the paragraph htmldocvisitor visitpre docpara m_hide void html doc visitor visit post doc para p if m hide return if p is last omit p for last paragraph p parent and for parameter sections p parent kind doc node kind paramsect m t p n htmldocvisitor visitpost docpara m_hide islast docnode kind_paramsect m_t void html doc visitor visit pre doc root htmldocvisitor visitpre docroot void html doc visitor visit post doc root htmldocvisitor visitpost docroot void html doc visitor visit pre doc simple sect s if m hide return m t dl compact dt b switch s type case doc simple sect see m t the translator tr see also break case doc simple sect return m t the translator tr returns break case doc simple sect author m t the translator tr author true true break case doc simple sect authors m t the translator tr author true false break case doc simple sect version m t the translator tr version break case doc simple sect since m t the translator tr since break case doc simple sect date m t the translator tr date break case doc simple sect note m t the translator tr note break case doc simple sect warning m t the translator tr warning break case doc simple sect pre m t the translator tr precondition break case doc simple sect post m t the translator tr postcondition break case doc simple sect invar m t the translator tr invariant break case doc simple sect remark m t the translator tr remarks break case doc simple sect attention m t the translator tr attention break case doc simple sect user break case doc simple sect rcs break case doc simple sect unknown break special case 1 user defined title if s type doc simple sect user s type doc simple sect rcs m t b dt dd htmldocvisitor visitpre docsimplesect m_hide m_t docsimplesect m_t thetranslator trseealso docsimplesect m_t thetranslator trreturns docsimplesect m_t thetranslator trauthor docsimplesect m_t thetranslator trauthor docsimplesect m_t thetranslator trversion docsimplesect m_t thetranslator trsince docsimplesect m_t thetranslator trdate docsimplesect m_t thetranslator trnote docsimplesect m_t thetranslator trwarning docsimplesect m_t thetranslator trprecondition docsimplesect m_t thetranslator trpostcondition docsimplesect m_t thetranslator trinvariant docsimplesect m_t thetranslator trremarks docsimplesect m_t thetranslator trattention docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect m_t void html doc visitor visit post doc simple sect if m hide return m t dd dl n htmldocvisitor visitpost docsimplesect m_hide m_t void html doc visitor visit pre doc title htmldocvisitor visitpre doctitle void html doc visitor visit post doc title if m hide return m t b dt dd htmldocvisitor visitpost doctitle m_hide m_t void html doc visitor visit pre doc simple list sl if m hide return m t ul if sl is preformatted m t n htmldocvisitor visitpre docsimplelist m_hide m_t ispreformatted m_t void html doc visitor visit post doc simple list sl if m hide return m t ul if sl is preformatted m t n htmldocvisitor visitpost docsimplelist m_hide m_t ispreformatted m_t void html doc visitor visit pre doc simple list item if m hide return m t li htmldocvisitor visitpre docsimplelistitem m_hide m_t void html doc visitor visit post doc simple list item li if m hide return m t li if li is preformatted m t n htmldocvisitor visitpost docsimplelistitem m_hide m_t ispreformatted m_t void html doc visitor visit pre doc section s if m hide return m t h s level 1 m t a class anchor name s anchor m t endl filter s title m t a h s level 1 n htmldocvisitor visitpre docsection m_hide m_t m_t m_t m_t void html doc visitor visit post doc section htmldocvisitor visitpost docsection void html doc visitor visit pre doc html list s if m hide return if s type doc html list ordered m t ol html attribs to string s attribs n else m t ul html attribs to string s attribs n htmldocvisitor visitpre dochtmllist m_hide dochtmllist m_t htmlattribstostring m_t htmlattribstostring void html doc visitor visit post doc html list s if m hide return if s type doc html list ordered m t ol else m t ul if s is preformatted m t n htmldocvisitor visitpost dochtmllist m_hide dochtmllist m_t m_t ispreformatted m_t void html doc visitor visit pre doc html list item i if m hide return m t li html attribs to string i attribs if i is preformatted m t n htmldocvisitor visitpre dochtmllistitem m_hide m_t htmlattribstostring ispreformatted m_t void html doc visitor visit post doc html list item if m hide return m t li n htmldocvisitor visitpost dochtmllistitem m_hide m_t void html doc visitor visit pre doc html desc list dl if m hide return m t dl html attribs to string dl attribs n htmldocvisitor visitpre dochtmldesclist m_hide m_t htmlattribstostring void html doc visitor visit post doc html desc list if m hide return m t dl n htmldocvisitor visitpost dochtmldesclist m_hide m_t void html doc visitor visit pre doc html desc title dt if m hide return m t dt html attribs to string dt attribs htmldocvisitor visitpre dochtmldesctitle m_hide m_t htmlattribstostring void html doc visitor visit post doc html desc title if m hide return m t dt n htmldocvisitor visitpost dochtmldesctitle m_hide m_t void html doc visitor visit pre doc html desc data dd if m hide return m t dd html attribs to string dd attribs htmldocvisitor visitpre dochtmldescdata m_hide m_t htmlattribstostring void html doc visitor visit post doc html desc data if m hide return m t dd n htmldocvisitor visitpost dochtmldescdata m_hide m_t void html doc visitor visit pre doc html table t if m hide return bool has border false bool has cell spacing false bool has cell padding false html attrib list iterator li t attribs html attrib att for li to first att li current li if att name border has border true else if att name cellspacing has cell spacing true else if att name cellpadding has cell padding true m t table html attribs to string t attribs if has border m t border 1 if has cell spacing m t cellspacing 3 if has cell padding m t cellpadding 3 m t n htmldocvisitor visitpre dochtmltable m_hide hasborder hascellspacing hascellpadding htmlattriblistiterator htmlattrib tofirst hasborder hascellspacing hascellpadding m_t htmlattribstostring hasborder m_t hascellspacing m_t hascellpadding m_t m_t void html doc visitor visit post doc html table if m hide return m t table n htmldocvisitor visitpost dochtmltable m_hide m_t void html doc visitor visit pre doc html row tr if m hide return m t tr html attribs to string tr attribs n htmldocvisitor visitpre dochtmlrow m_hide m_t htmlattribstostring void html doc visitor visit post doc html row if m hide return m t tr n htmldocvisitor visitpost dochtmlrow m_hide m_t void html doc visitor visit pre doc html cell c if m hide return if c is heading m t th html attribs to string c attribs else m t td html attribs to string c attribs htmldocvisitor visitpre dochtmlcell m_hide isheading m_t htmlattribstostring m_t htmlattribstostring void html doc visitor visit post doc html cell c if m hide return if c is heading m t th else m t td htmldocvisitor visitpost dochtmlcell m_hide isheading m_t m_t void html doc visitor visit pre doc html caption c if m hide return bool has align false html attrib list iterator li c attribs html attrib att for li to first att li current li if att name align has align true m t caption html attribs to string c attribs if has align m t align bottom m t htmldocvisitor visitpre dochtmlcaption m_hide hasalign htmlattriblistiterator htmlattrib tofirst hasalign m_t htmlattribstostring hasalign m_t m_t void html doc visitor visit post doc html caption if m hide return m t caption n htmldocvisitor visitpost dochtmlcaption m_hide m_t void html doc visitor visit pre doc internal if m hide return m t p b the translator tr for internal use only b p endl m t p endl htmldocvisitor visitpre docinternal m_hide m_t thetranslator trforinternaluseonly m_t void html doc visitor visit post doc internal if m hide return m t p endl htmldocvisitor visitpost docinternal m_hide m_t void html doc visitor visit pre doch ref href if m hide return m t a href href url html attribs to string href attribs htmldocvisitor visitpre dochref m_hide m_t htmlattribstostring void html doc visitor visit post doch ref if m hide return m t a htmldocvisitor visitpost dochref m_hide m_t void html doc visitor visit pre doc html header header if m hide return m t h header level html attribs to string header attribs htmldocvisitor visitpre dochtmlheader m_hide m_t htmlattribstostring void html doc visitor visit post doc html header header if m hide return m t h header level n htmldocvisitor visitpost dochtmlheader m_hide m_t void html doc visitor visit pre doc image img if img type doc image html if m hide return q string base name img name int i if i base name find rev 1 i base name find rev 1 base name base name right base name length i 1 m t div align center endl m t img src img rel path img name alt base name endl if img has caption m t p strong else other format skip push enabled m hide true htmldocvisitor visitpre docimage docimage m_hide qstring basename basename findrev basename findrev basename basename basename m_t m_t relpath basename hascaption m_t pushenabled m_hide void html doc visitor visit post doc image img if img type doc image html if m hide return if img has caption m t strong p m t div endl else other format pop enabled htmldocvisitor visitpost docimage docimage m_hide hascaption m_t m_t popenabled void html doc visitor visit pre doc dot file df if m hide return write dot file df file df rel path m t div align center endl if df has caption m t p strong htmldocvisitor visitpre docdotfile m_hide writedotfile relpath m_t hascaption m_t void html doc visitor visit post doc dot file df if m hide return if df has caption m t strong p endl m t div endl htmldocvisitor visitpost docdotfile m_hide hascaption m_t m_t void html doc visitor visit pre doc link lnk if m hide return start link lnk ref lnk file lnk rel path lnk anchor htmldocvisitor visitpre doclink m_hide startlink relpath void html doc visitor visit post doc link if m hide return end link htmldocvisitor visitpost doclink m_hide endlink void html doc visitor visit pre doc ref ref if m hide return if ref file is empty start link ref ref ref file ref rel path ref anchor if ref has link text filter ref target title htmldocvisitor visitpre docref m_hide isempty startlink relpath haslinktext targettitle void html doc visitor visit post doc ref ref if m hide return if ref file is empty end link m t htmldocvisitor visitpost docref m_hide isempty endlink m_t void html doc visitor visit pre doc sec ref item ref if m hide return q string ref name ref file if ref name right doxygen html file extension length q string doxygen html file extension ref name doxygen html file extension m t li a href ref name ref anchor htmldocvisitor visitpre docsecrefitem m_hide qstring refname refname htmlfileextension qstring htmlfileextension refname htmlfileextension m_t refname void html doc visitor visit post doc sec ref item if m hide return m t a htmldocvisitor visitpost docsecrefitem m_hide m_t void html doc visitor visit pre doc sec ref list if m hide return m t multicol cols 3 endl m t ul endl htmldocvisitor visitpre docsecreflist m_hide m_t m_t void html doc visitor visit post doc sec ref list if m hide return m t ul endl m t multicol endl htmldocvisitor visitpost docsecreflist m_hide m_t m_t void html doc visitor visit pre doc param sect s if m hide return m t dl compact dt b switch s type case doc param sect param m t the translator tr parameters break case doc param sect ret val m t the translator tr return values break case doc param sect exception m t the translator tr exceptions break default assert 0 m t m t b dt dd endl m t table border 0 cellspacing 2 cellpadding 0 endl htmldocvisitor visitpre docparamsect m_hide m_t docparamsect m_t thetranslator trparameters docparamsect retval m_t thetranslator trreturnvalues docparamsect m_t thetranslator trexceptions m_t m_t m_t void html doc visitor visit post doc param sect if m hide return m t table endl m t dl endl htmldocvisitor visitpost docparamsect m_hide m_t m_t void html doc visitor visit pre doc param list pl if m hide return m t tr td valign top if pl direction doc param sect unspecified m t tt if pl direction doc param sect in m t in else if pl direction doc param sect out m t out else if pl direction doc param sect in out m t in out m t tt nbsp m t td td valign top em q str list iterator li pl parameters const char s q list iterator doc node li pl parameters doc node param bool first true for li to first param li current li if first m t else first false if param kind doc node kind word visit doc word param else if param kind doc node kind linkedword visit doc linked word param m t em nbsp td td htmldocvisitor visitpre docparamlist m_hide m_t docparamsect m_t docparamsect m_t docparamsect m_t docparamsect inout m_t m_t m_t qstrlistiterator qlistiterator docnode docnode tofirst m_t docnode kind_word docword docnode kind_linkedword doclinkedword m_t void html doc visitor visit post doc param list if m hide return m t td tr endl htmldocvisitor visitpost docparamlist m_hide m_t void html doc visitor visit pre docx ref item x if m hide return bool anonymous enum x file if anonymous enum m t dl compact dt b a class el href x rel path x file doxygen html file extension x anchor else m t dl compact dt b filter x title m t if anonymous enum m t a m t b dt dd htmldocvisitor visitpre docxrefitem m_hide anonymousenum anonymousenum m_t relpath htmlfileextension m_t m_t anonymousenum m_t m_t void html doc visitor visit post docx ref item if m hide return m t dd dl endl htmldocvisitor visitpost docxrefitem m_hide m_t void html doc visitor visit pre doc internal ref ref if m hide return start link 0 ref file ref rel path ref anchor htmldocvisitor visitpre docinternalref m_hide startlink relpath void html doc visitor visit post doc internal ref if m hide return end link m t htmldocvisitor visitpost docinternalref m_hide endlink m_t void html doc visitor visit pre doc copy htmldocvisitor visitpre doccopy void html doc visitor visit post doc copy htmldocvisitor visitpost doccopy void html doc visitor visit pre doc text htmldocvisitor visitpre doctext void html doc visitor visit post doc text htmldocvisitor visitpost doctext void html doc visitor filter const char str if str 0 return const char p str char c while p c p switch c case m t lt break case m t gt break case m t amp break default m t c htmldocvisitor m_t m_t m_t m_t void html doc visitor filter quoted cdata attr const char str if str 0 return const char p str char c while p c p switch c case m t amp break case m t quot break for sgml compliance and given the sgml declaration for html syntax it s enough to replace these two provided that the declaration for the html version we generate and as supported by the browser specifies that all the other symbols used in raw val are within the right charachter class i e they re not some multinational weird charachters not in the baseset we assume that 1 the browser will support whatever is remaining in the formula and 2 the tex formulae are generally governed by even stricter charachter restrictions so it should be enough on some incompliant browsers additional translation of and into gt and lt respectively might be needed but i m unaware of particular modern last 4 years versions with such problems so let s not do it for performance also some brousers will wrongly not process the entity references inside the attribute value and show the form instead so we won t create entites unless necessary to minimize clutter there vassilii default m t c htmldocvisitor filterquotedcdataattr m_t m_t rawval m_t const q string rel path const q string anchor qc string dest if ref is empty link to entity imported via tag file m t a class el ref m t doxygen ref if dest doxygen tag destination dict ref m t dest m t else local link m t a class el m t href if ref is empty if dest doxygen tag destination dict ref m t rel path dest else m t rel path if file is empty m t file doxygen html file extension if anchor is empty m t anchor m t qstring relpath qstring qcstring isempty m_t elref m_t tagdestinationdict m_t m_t m_t m_t isempty tagdestinationdict m_t relpath m_t relpath isempty m_t htmlfileextension isempty m_t m_t void html doc visitor end link m t a htmldocvisitor endlink m_t void html doc visitor write dot file const q string file name const q string rel path q string base name file name int i if i base name find rev 1 base name base name right base name length i 1 q string out dir config getstring html output write dot graph from file file name out dir base name bitmap q string map name base name map q string map file file name map m t img src rel path base name config getenum dot image format alt base name border 0 usemap map name endl q string imap get dot image map from file file name out dir rel path data m t map name map name imap map endl htmldocvisitor writedotfile qstring filename qstring relpath qstring basename filename basename findrev basename basename basename qstring outdir config_getstring html_output writedotgraphfromfile filename outdir basename qstring mapname basename qstring mapfile filename m_t relpath basename config_getenum dot_image_format basename mapname qstring getdotimagemapfromfile filename outdir relpath m_t mapname void html doc visitor push enabled m enabled push new bool m hide htmldocvisitor pushenabled m_enabled m_hide void html doc visitor pop enabled bool v m enabled pop assert v 0 m hide v delete v htmldocvisitor popenabled m_enabled m_hide q string to string const html attrib list that html attrib list this q string result html attrib attr that first while attr result attr name attr value attr that next return result qstring tostring htmlattriblist htmlattriblist qstring htmlattrib definition df dl na printf member def s file s line d static d n na df dl s class def 0 file def 0 redefines 0 m relatedalso 0 redefined by 0 nspace 0 mem def 0 mem dec 0 group 0 grp id 1 examples dict 0 enum fields 0 enum scope 0 enum decl list 0 scopetal 0 membtal 0 m deftmparglists 0 m hascallgraph false init lines 0 type t if mt typedef type strip prefix typedef type strip prefix struct type strip prefix class type strip prefix union type remove redundant white space type args a args remove redundant white space args if type is empty decl name args else decl type name args decl line 0 member group 0 virt v prot p related r stat s mtype mt exception e proto false ann scope false mem spec 0 ann memb 0 ann used false ann shown false ann enum type 0 ind depth 0 section 0 group alias 0 expl ext false tspec false cached anonymous type 0 max init lines config getint max initializer lines user init lines 1 doc enum values false copy function template arguments if any if tal t arg list new argument list t arg list set auto delete true argument list iterator ali tal argument a for a ali current ali t arg list append new argument a else t arg list 0 printf new member al p n al copy function definition arguments if any if al def arg list new argument list def arg list set auto delete true argument list iterator ali al argument a for a ali current ali printf copy argument s doc s n a name data a docs data def arg list append new argument a def arg list const specifier al const specifier def arg list volatile specifier al volatile specifier def arg list pure specifier al pure specifier printf def arg list p const specifier d n def arg list def arg list const specifier else def arg list 0 convert function declaration arguments if any if args is empty decl arg list new argument list string to argument list args decl arg list printf set decl arg list s to p const d n args data decl arg list decl arg list const specifier else decl arg list 0 m templatemaster 0 class sections dict 0 docs for definition true m istypedefvalcached false m cachedtypedefvalue 0 m inbodyline 1 m implonly false group member 0 m hasdocumentedparams false m hasdocumentedreturntype false m docprovider 0 m isdmember m deffilename right 2 lower d memberdef classdef filedef m_relatedalso redefinedby memdef memdec grpid examplesdict enumfields enumscope enumdecllist m_deftmparglists m_hascallgraph initlines stripprefix stripprefix stripprefix stripprefix removeredundantwhitespace removeredundantwhitespace isempty declline membergroup annscope memspec annmemb annused annshown annenumtype inddepth groupalias explext cachedanonymoustype maxinitlines config_getint max_initializer_lines userinitlines docenumvalues targlist argumentlist targlist setautodelete argumentlistiterator targlist targlist defarglist argumentlist defarglist setautodelete argumentlistiterator defarglist defarglist constspecifier constspecifier defarglist volatilespecifier volatilespecifier defarglist purespecifier purespecifier defarglist constspecifier defarglist defarglist constspecifier defarglist isempty declarglist argumentlist stringtoargumentlist declarglist setdeclarglist declarglist declarglist constspecifier declarglist m_templatemaster classsectionsdict docsfordefinition m_istypedefvalcached m_cachedtypedefvalue m_inbodyline m_implonly groupmember m_hasdocumentedparams m_hasdocumentedreturntype m_docprovider m_isdmember m_deffilename member def member def delete redefined by delete examples dict delete enum fields delete def arg list delete t arg list delete m deftmparglists delete class sections dict delete decl arg list memberdef memberdef redefinedby examplesdict enumfields defarglist targlist m_deftmparglists classsectionsdict declarglist qc string member def get output file base const static bool separate member pages config getbool separate member pages qc string base name if explicit output file base return explicit output file base else if m templatemaster return m templatemaster get output file base else if group base name group get output file base else if class def base name class def get output file base else if nspace base name nspace get output file base else if file def base name file def get output file base if base name is empty warn m deffilename m defline warning internal inconsistency member s does not belong to any container name data return dummy else if separate member pages if get enum scope enum value which is part of enum s documentation base name get enum scope anchor else base name anchor return base name qcstring memberdef getoutputfilebase separatememberpages config_getbool separate_member_pages qcstring basename explicitoutputfilebase explicitoutputfilebase m_templatemaster m_templatemaster getoutputfilebase basename getoutputfilebase classdef basename classdef getoutputfilebase basename getoutputfilebase filedef basename filedef getoutputfilebase basename isempty m_deffilename m_defline separatememberpages getenumscope basename _ getenumscope basename _ basename qc string member def get reference const if m templatemaster return m templatemaster get reference else if group return group get reference else if class def return class def get reference else if nspace return nspace get reference else if file def return file def get reference return qcstring memberdef getreference m_templatemaster m_templatemaster getreference getreference classdef classdef getreference getreference filedef filedef getreference qc string member def anchor const qc string result anc if group alias return group alias anchor if m templatemaster return m templatemaster anchor if enum scope result prepend enum scope anchor if group if group member result group member anchor else result prepend g return result qcstring memberdef qcstring groupalias groupalias m_templatemaster m_templatemaster enumscope enumscope groupmember groupmember member list member def get section list definition d const return d 0 class sections dict class sections dict find char d 0 memberlist memberdef getsectionlist classsectionsdict classsectionsdict qc string member def qualified name if is objc method qc string qm if is static qm else qm qm qm class def name qm name qm return qm else return definition qualified name qcstring memberdef qualifiedname isobjcmethod qcstring isstatic classdef qualifiedname qc string member def objc method name bool local link bool show static const qc string qm if show static if is static qm else qm qm name if local link link to method of same class qm qm class def name qm return qm qcstring memberdef objcmethodname locallink showstatic qcstring showstatic isstatic locallink classdef specifier member def virtualness const specifier v virt member def rmd reimplements while rmd v normal v rmd virtualness normal normal virtual rmd rmd reimplements return v memberdef memberdef bool member def is objc method const if class def class def is objectivec is function return true return false memberdef isobjcmethod classdef classdef isobjectivec isfunction bool member def is constructor const if class def if m isdmember for d return name this else for other languages return name class def local name else return false memberdef isconstructor classdef m_isdmember classdef localname bool member def is destructor const if m isdmember for d return name this else other languages return name find 1 name find operator 1 memberdef isdestructor m_isdmember bool member def has one line initializer const printf s init s init lines d max init lines d user init lines d n name data init data init lines max init lines user init lines return init is empty init lines 0 one line initializer max init lines 0 user init lines 1 user init lines 0 enabled by default or explicitly memberdef hasonelineinitializer initlines maxinitlines userinitlines initlines maxinitlines userinitlines isempty initlines maxinitlines userinitlines userinitlines bool member def has multi line initializer const printf init lines d user init lines d max init lines d n init lines user init lines max init lines return init lines 0 init lines max init lines user init lines 1 implicitly enabled init lines user init lines explicitly enabled memberdef hasmultilineinitializer initlines userinitlines maxinitlines initlines userinitlines maxinitlines initlines initlines maxinitlines userinitlines initlines userinitlines bool member def protection visible const return prot public prot private config getbool extract private prot protected config getbool extract protected prot package config getbool extract package memberdef protectionvisible config_getbool extract_private config_getbool extract_protected config_getbool extract_package bool member def is linkable in project const static bool extract private config getbool extract private static bool extract static config getbool extract static printf member def is linkable in project name s n name data if m templatemaster return m templatemaster is linkable in project if name is empty name at 0 printf name invalid n return false not a valid or a dummy name if has documentation is reference printf no docs or reference n return false no documentation if group group is linkable in project printf group but group not linkable n return false group but group not linkable if group class def class def is linkable in project printf in a class but class not linkable n return false in class but class not linkable if group nspace related nspace is linkable in project printf in a namespace but namespace not linkable n return false in namespace but namespace not linkable if group nspace related class def file def file def is linkable in project printf in a file but file not linkable n return false in file and not in namespace but file not linkable if prot private extract private mtype friend printf private and invisible n return false hidden due to protection if is static class def 0 extract static printf static and invisible n return false hidden due to staticness printf linkable n return true linkable memberdef islinkableinproject extractprivate config_getbool extract_private extractstatic config_getbool extract_static memberdef islinkableinproject m_templatemaster m_templatemaster islinkableinproject isempty hasdocumentation isreference islinkableinproject classdef classdef islinkableinproject islinkableinproject classdef filedef filedef islinkableinproject extractprivate isstatic classdef extractstatic bool member def is linkable const if m templatemaster return m templatemaster is linkable else return is linkable in project is reference memberdef islinkable m_templatemaster m_templatemaster islinkable islinkableinproject isreference bool member def has documentation const return definition has documentation m inbodydocs is empty mtype enumeration doc enum values has enum values def arg list 0 def arg list has documentation has doc arguments memberdef hasdocumentation hasdocumentation m_inbodydocs isempty docenumvalues defarglist defarglist hasdocumentation bool member def is brief section visible const static bool extract static config getbool extract static static bool hide undoc members config getbool hide undoc members static bool brief member desc config getbool brief member desc static bool repeat brief config getbool repeat brief static bool hide friend compounds config getbool hide friend compounds static bool extract private config getbool extract private printf member s grp id d docs s file s args s n name data 0 grp id grp id 1 none doxygen member doc dict grp id data get file def name data args string member group info info doxygen mem grp info dict grp id qc string p mem grp doxygen member doc dict grp id bool has docs has documentation part of a documented member group grp id 1 info info doc is empty only include static members with file namespace scope if explicitly enabled in the config file bool visible if static get class def 0 is static extract static only include members is the are documented or hide undoc members is no in the config file bool visible if documented hide undoc members has docs is documented friend class hide members with no detailed description and brief descriptions explicitly disabled bool visible if enabled hide undoc members documentation is empty brief member desc repeat brief hide friend class struct union declarations if hide friend compounds is true bool visible if friend compound hide friend compounds is friend type friend class type friend struct type friend union only include members that are non private unless extract private is set to yes or the member is part of a group bool visible if private protection private extract private mtype friend hide member if it overrides a member in a superclass and has no documentation of its own bool visible if doc virtual reimplements config getbool inherit docs has docs true if this member is a constructor or destructor bool c ord tor is constructor is destructor hide default constructors or destructors no args without documentation bool visible if not defaultcd tor c ord tor def arg list def arg list is empty def arg list first type void has docs printf visible if static d visible if documented d visible if enabled d visible if private d visible if doc virtual d visiblt if not defaultcd tor d visible if friend compound d n visible if static visible if documented visible if enabled visible if private visible if doc virtual visible if not defaultcd tor visible if friend compound bool visible visible if static visible if documented visible if enabled visible if private visible if doc virtual visible if not defaultcd tor visible if friend compound ann scope printf member def is brief section visible d n visible return visible memberdef isbriefsectionvisible extractstatic config_getbool extract_static hideundocmembers config_getbool hide_undoc_members briefmemberdesc config_getbool brief_member_desc repeatbrief config_getbool repeat_brief hidefriendcompounds config_getbool hide_friend_compounds extractprivate config_getbool extract_private grpid grpid grpid memberdocdict grpid getfiledef argsstring membergroupinfo memgrpinfodict grpid qcstring pmemgrp memberdocdict grpid hasdocs hasdocumentation grpid isempty visibleifstatic getclassdef isstatic extractstatic hide_undoc_members visibleifdocumented hideundocmembers hasdocs isdocumentedfriendclass visibleifenabled hideundocmembers isempty briefmemberdesc repeatbrief hide_friend_compounds visibleiffriendcompound hidefriendcompounds isfriend extract_private visibleifprivate extractprivate visibleifdocvirtual config_getbool inherit_docs hasdocs cordtor isconstructor isdestructor visibleifnotdefaultcdtor cordtor defarglist defarglist isempty defarglist hasdocs visibleifstatic visibleifdocumented visibleifenabled visibleifprivate visibleifdocvirtual visibltifnotdefaultcdtor visibleiffriendcompound visibleifstatic visibleifdocumented visibleifenabled visibleifprivate visibleifdocvirtual visibleifnotdefaultcdtor visibleiffriendcompound visibleifstatic visibleifdocumented visibleifenabled visibleifprivate visibleifdocvirtual visibleifnotdefaultcdtor visibleiffriendcompound annscope memberdef isbriefsectionvisible bool member def is detailed section visible bool in group bool in file const bool group filter get group def 0 in group bool file filter get namespace def 0 in file bool visible is detailed section linkable group filter file filter is reference printf member def is detailed section visible d n visible return visible memberdef isdetailedsectionvisible ingroup infile groupfilter getgroupdef ingroup filefilter getnamespacedef infile isdetailedsectionlinkable groupfilter filefilter isreference memberdef isdetailedsectionvisible bool member def is detailed section linkable const static bool extract all config getbool extract all static bool always detailed sec config getbool always detailed sec static bool repeat brief config getbool repeat brief static bool brief member desc config getbool brief member desc static bool hide undoc members config getbool hide undoc members static bool extract static config getbool extract static static bool extract private config getbool extract private the member has details documentation for any of the following reasons bool doc filter treat everything as documented extract all has detailed docs documentation is empty has inbody docs inbody documentation is empty is an enum with values that are documented mtype enumeration doc enum values is documented enum value mtype enum value brief description is empty has brief description that is part of the detailed description brief description is empty has brief docs always detailed sec they or visible in repeat brief detailed section or brief member desc they are explicitly not shown in brief section has a multi line initialization block init lines 0 init lines max init lines has multi line initializer hide undoc members has one or more documented arguments def arg list 0 def arg list has documentation this is not a global static or global statics should be extracted bool static filter get class def 0 is static extract static only include members that are non private unless extract private is set to yes or the member is part of a group bool private filter protection private extract private mtype friend member is part of an anonymous scope that is the type of another member in the list bool in anonymous scope brief description is empty ann used hide friend class struct union member if hide friend compounds is true bool friend compound filter config getbool hide friend compounds is friend type friend class type friend struct type friend union return doc filter static filter private filter friend compound filter in anonymous scope memberdef isdetailedsectionlinkable extractall config_getbool extract_all alwaysdetailedsec config_getbool always_detailed_sec repeatbrief config_getbool repeat_brief briefmemberdesc config_getbool brief_member_desc hideundocmembers config_getbool hide_undoc_members extractstatic config_getbool extract_static extractprivate config_getbool extract_private docfilter extractall isempty inbodydocumentation isempty docenumvalues enumvalue briefdescription isempty briefdescription isempty alwaysdetailedsec repeatbrief briefmemberdesc initlines initlines maxinitlines hasmultilineinitializer hideundocmembers defarglist defarglist hasdocumentation staticfilter getclassdef isstatic extractstatic extract_private privatefilter extractprivate inanonymousscope briefdescription isempty annused hide_friend_compounds friendcompoundfilter config_getbool hide_friend_compounds isfriend docfilter staticfilter privatefilter friendcompoundfilter inanonymousscope bool member def is friend class const return is friend type friend class type friend struct type friend union memberdef isfriendclass isfriend bool member def is documented friend class const class def fcd 0 qc string base name name int i base name find if i 1 base name base name left i return is friend class fcd get class base name fcd is linkable memberdef isdocumentedfriendclass classdef qcstring basename basename basename basename isfriendclass getclass basename islinkable void member def set anchor const char a anc a memberdef setanchor void member def set initializer const char initializer printf set initializer s n initializer init initializer int p init length 1 while p 0 isspace uchar init at p p init init left p 1 init lines init contains n memberdef setinitializer setinitializer initlines void member def set member class class def cd class def cd set outer scope cd memberdef setmemberclass classdef classdef setouterscope void member def set section list definition d member list sl if class sections dict 0 class sections dict new s dict member list 7 class sections dict append char d sl memberdef setsectionlist memberlist classsectionsdict classsectionsdict sdict memberlist classsectionsdict bool has docs member def member printf s member def set group def s n name data gd name data group gd grouppri pri group file name file name group start line start line group has docs has docs group member member hasdocs memberdef memberdef setgroupdef groupfilename filename groupstartline startline grouphasdocs hasdocs groupmember void member def set tag info tag info ti if ti set anchor ti anchor set reference ti tag name explicit output file base strip extension ti file name memberdef settaginfo taginfo setanchor setreference tagname explicitoutputfilebase stripextension filename printf s member def write declaration in group d n name data in group hide members whose brief section should not be visible if is brief section visible return definition d 0 assert cd 0 nd 0 fd 0 gd 0 member should belong to something if cd d cd else if nd d nd else if fd d fd else d gd write tag file information of this member if config getstring generate tagfile is empty doxygen tag file member kind switch mtype case define doxygen tag file define break case enum value doxygen tag file enumvalue break case property doxygen tag file property break case event doxygen tag file event break case variable doxygen tag file variable break case typedef doxygen tag file typedef break case enumeration doxygen tag file enumeration break case function doxygen tag file function break case signal doxygen tag file signal break case prototype doxygen tag file prototype break case friend doxygen tag file friend break case dcop doxygen tag file dcop break case slot doxygen tag file slot break if prot public doxygen tag file protection if prot protected doxygen tag file protected else if prot package doxygen tag file package else private doxygen tag file private if virt normal doxygen tag file virtualness if virt virtual doxygen tag file virtual else pure doxygen tag file pure if is static doxygen tag file static yes doxygen tag file endl doxygen tag file type convert toxml type string type endl doxygen tag file name convert toxml name name endl doxygen tag file anchorfile convert toxml get output file base doxygen html file extension anchorfile endl doxygen tag file anchor convert toxml anchor anchor endl doxygen tag file arglist convert toxml args string arglist endl write doc anchors to tag file doxygen tag file member endl write search index info if config getbool searchengine doxygen search index set current doc qualified name get output file base anchor doxygen search index add word local name true doxygen search index add word qualified name false qc string cname d name qc string cfname get output file base qc string osname cname in case of class members that are put in a group the name of the outerscope differs from the cname if get outer scope osname get outer scope name html help html help 0 bool has html help config getbool generate html config getbool generate htmlhelp if has html help html help html help get instance search for the last anonymous scope in the member type class def anno class def get class def of anonymous type start a new member declaration bool is anonymous anno class def ann memb ann enum type printf start member item for s n name data ol start member item is anonymous 1 t arg list 3 0 if there is no detailed description we need to write the anchor here bool details visible is detailed section linkable if details visible ann memb qc string doxy name name copy if cname is empty doxy name prepend cname qc string doxy args args string ol start doxy anchor cfname cname anchor doxy name doxy args ol push generator state ol disable output generator man ol disable output generator latex ol docify n ol pop generator state if anno class def ann memb int j for j 0 j s indentlevel j ol write non breakable space 3 write template lists if t arg list if is anonymous ol start member template params write template prefix ol t arg list if is anonymous ol end member template params write type qc string ltype type if mtype typedef ltype prepend typedef strip friend keyword from ltype ltype strip prefix friend static q reg exp r 0 9 bool end anon scope needed false int l i r match ltype 0 l if i 1 member has an anonymous type printf anno class def p ann memb p scope name s anonymous s n anno class def ann memb cname data ltype mid i l data if anno class def type is an anonymous compound int ir i l printf n ol start anon type scope s indentlevel anno class def write declaration ol ann memb in group printf start member item 2 n ol start member item 2 int j for j 0 j s indentlevel 1 j ol write non breakable space 3 qc string var name ltype right ltype length ir strip white space printf ind depth d ltype s var name s n ind depth ltype data var name data ol docify if var name is empty name is empty name at 0 ol docify end anon scope needed true else if get anonymous enum type type is an anonymous enum linkify text text generatorol impl ol d get body def name ltype left i true get anonymous enum type write enum declaration ol cd nd fd gd ol get anonymous enum type enum decl linkify text text generatorol impl ol d file def name ltype right ltype length i l true else ltype ltype left i ltype right ltype length i l linkify text text generatorol impl ol d get body def name ltype true else if is objc method ltype prepend ltype append linkify text text generatorol impl ol d get body def name ltype true bool html on ol is enabled output generator html if html on config getbool html align members ltype is empty ol disable output generator html if ltype is empty ol docify if html on ol enable output generator html if ann memb ol push generator state ol disable all but output generator html ol write non breakable space 3 ol pop generator state else ol insert member align t arg list 0 write name if name is empty name at 0 hide annonymous stuff printf member name s gd p md group def p in group d is linkable d n name data gd get group def in group is linkable if name is empty name at 0 name valid has documentation is reference has docs prot private config getbool extract private mtype friend hidden due to protection is static class def 0 config getbool extract static hidden due to static ness if ann memb printf anchor s ann anchor s n anchor ann memb anchor ann memb write link ol ann memb get class def ann memb get namespace def ann memb get file def ann memb get group def ann memb ann used ann used true else printf write link s d n name data has documentation class def rcd cd if is reference class def rcd class def write link ol rcd nd fd gd else if is documented friend class if the member is an undocumented friend declaration for some class then maybe we can link to the class write link ol get class name 0 0 0 else there is a brief member description and brief member descriptions are enabled or there is no detailed description if ann memb ann memb ann used ann used true class def rcd cd if is reference class def rcd class def write link ol rcd nd fd gd true write arguments if args string is objc method if is define ol write string ol docify args string linkify text text generatorol impl ol d get body def name args string write exceptions if excp string ol write string ol docify excp string write bitfields if bitfields is empty add bitfields linkify text text generatorol impl ol d get body def name bitfields simplify white space else if has one line initializer init is empty init lines 0 one line initializer max init lines 0 user init lines 1 user init lines 0 enabled by default or explicitly add initializer if is define ol write string linkify text text generatorol impl ol d get body def name init simplify white space else ol write non breakable space 3 linkify text text generatorol impl ol d get body def name init if is objc method is implementation ol start typewriter ol docify implementation ol end typewriter if details visible ann memb ol end doxy anchor cfname anchor printf end member s anno class def p ann enum type p n name memberdef writedeclaration ingroup ingroup isbriefsectionvisible config_getstring generate_tagfile isempty tagfile tagfile enumvalue tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile tagfile isstatic tagfile tagfile tagfile converttoxml typestring tagfile converttoxml tagfile converttoxml getoutputfilebase htmlfileextension tagfile converttoxml tagfile converttoxml argsstring writedocanchorstotagfile tagfile config_getbool searchindex setcurrentdoc qualifiedname getoutputfilebase searchindex addword localname searchindex addword qualifiedname qcstring qcstring getoutputfilebase qcstring getouterscope getouterscope htmlhelp htmlhelp hashtmlhelp config_getbool generate_html config_getbool generate_htmlhelp hashtmlhelp htmlhelp htmlhelp getinstance classdef annoclassdef getclassdefofanonymoustype isanonymous annoclassdef annmemb annenumtype startmemberitem startmemberitem isanonymous targlist detailsvisible isdetailedsectionlinkable detailsvisible annmemb qcstring doxyname isempty doxyname qcstring doxyargs argsstring startdoxyanchor doxyname doxyargs pushgeneratorstate outputgenerator outputgenerator popgeneratorstate annoclassdef annmemb s_indentlevel writenonbreakablespace targlist isanonymous startmembertemplateparams writetemplateprefix targlist isanonymous endmembertemplateparams qcstring stripprefix qregexp endanonscopeneeded annoclassdef annmemb scopename annoclassdef annmemb annoclassdef startanontypescope s_indentlevel annoclassdef writedeclaration annmemb ingroup startmemberitem startmemberitem s_indentlevel writenonbreakablespace qcstring varname stripwhitespace inddepth varname inddepth varname varname isempty isempty endanonscopeneeded getanonymousenumtype linkifytext textgeneratorolimpl getbodydef getanonymousenumtype writeenumdeclaration getanonymousenumtype enumdecl linkifytext textgeneratorolimpl filedef linkifytext textgeneratorolimpl getbodydef isobjcmethod linkifytext textgeneratorolimpl getbodydef htmlon isenabled outputgenerator htmlon config_getbool html_align_members isempty outputgenerator isempty htmlon outputgenerator annmemb pushgeneratorstate disableallbut outputgenerator writenonbreakablespace popgeneratorstate insertmemberalign targlist isempty groupdef ingroup islinkable getgroupdef ingroup islinkable isempty hasdocumentation isreference config_getbool extract_private isstatic classdef config_getbool extract_static annmemb ann_anchor annmemb annmemb writelink annmemb getclassdef annmemb getnamespacedef annmemb getfiledef annmemb getgroupdef annmemb annused annused writelink hasdocumentation classdef isreference classdef classdef writelink isdocumentedfriendclass writelink getclass annmemb annmemb annused annused classdef isreference classdef classdef writelink argsstring isobjcmethod isdefine writestring argsstring linkifytext textgeneratorolimpl getbodydef argsstring excpstring writestring excpstring isempty linkifytext textgeneratorolimpl getbodydef simplifywhitespace hasonelineinitializer isempty initlines maxinitlines userinitlines userinitlines isdefine writestring linkifytext textgeneratorolimpl getbodydef simplifywhitespace writenonbreakablespace linkifytext textgeneratorolimpl getbodydef isobjcmethod isimplementation starttypewriter endtypewriter detailsvisible annmemb enddoxyanchor endmember annoclassdef annenumtype if this member is in a group find the real scope name bool has parameter list false bool in file container definition type definition type file bool has docs is detailed section visible in group in file printf member def write documentation name s has docs d container type d in group d n name data has docs container definition type in group if has docs return if is enum value return qc string scope name sc name qc string mem anchor anchor qc string ciname container name if container definition type type group if get class def scope name get class def name else if get namespace def scope name get namespace def name else if get file def scope name get file def name ciname group def container group title else if container definition type type file get namespace def member is in a namespace but is written as part of the file documentation as well so we need to make sure its label is unique mem anchor prepend file qc string cname container name qc string cfname get output file base qc string cfiname container get output file base bool has html help config getbool generate html config getbool generate htmlhelp html help html help 0 if has html help html help html help get instance html help add index item ciname name cfiname cfname mem anchor get member name qc string doxy name name copy prepend scope if there is any todo make this optional for c only docs if scope name doxy name prepend qc string scope name qc string doxy args args string qc string ldef definition printf member s def s n name data ldef data if is enumerate if name at 0 ldef anonymous enum else ldef prepend enum int i 0 l static q reg exp r 0 9 ol push generator state if is variable is typedef i r match ldef 0 l 1 find enum type and insert it in the definition member list iterator vmli ml member def vmd bool found false for vmd vmli current found vmli if vmd is enumerate ldef mid i l vmd name ol start doxy anchor cfname cname mem anchor doxy name doxy args ol start member doc cname name mem anchor name linkify text text generatorol impl ol container get body def name ldef left i vmd write enum declaration ol get class def get namespace def get file def get group def linkify text text generatorol impl ol container get body def name ldef right ldef length i l found true if found anonymous compound printf anonymous compound s n cname data ol start doxy anchor cfname cname mem anchor doxy name doxy args ol start member doc cname name mem anchor name strip anonymous compound names from definition int si ldef find pi ei i l if si 1 si 0 while pi r match ldef i l l 1 ei i pi l first si characters of ldef contain compound type name ol start member doc name is objc method ol docify ldef left si ol docify last ei characters of ldef contain pointer reference specifiers int ni ldef find si if ni ei ei ni 2 linkify text text generatorol impl ol container get body def name ldef right ldef length ei else not an enum value ol start doxy anchor cfname cname mem anchor doxy name doxy args ol start member doc cname name mem anchor name class def cd get class def if config getbool hide scope names bool first true if m deftmparglists definition has explicit template parameter declarations q list iterator argument list ali m deftmparglists argument list tal for ali to first tal ali current ali if tal count 0 if first ol docify ol start member doc prefix item write template prefix ol tal ol end member doc prefix item else definition gets it template parameters from its class since no definition was found if cd is template specialization q list argument list temp param lists cd get template parameter lists temp param lists printf temp param lists d n temp param lists count q list iterator argument list ali temp param lists argument list tal for ali to first tal ali current ali if tal count 0 if first ol docify ol start member doc prefix item write template prefix ol tal ol end member doc prefix item if t arg list function template prefix ol start member doc prefix item write template prefix ol t arg list ol end member doc prefix item ol start member doc name is objc method if cd cd is objectivec strip scope name int ep ldef find if ep 1 int sp ldef find rev ep if sp 1 ldef ldef left sp 1 ldef mid ep 2 strip keywords int dp ldef find if dp 1 ldef ldef left dp 1 int l ldef length printf start s n ldef data int i l 1 while i 0 is id ldef at i ldef at i i while i 0 isspace uchar ldef at i i if i 0 insert braches around the type qc string tmp ldef left i 1 ldef mid i 1 ldef tmp printf end s i d n ldef data i if is static ldef prepend else ldef prepend linkify text text generatorol impl ol container get body def name ldef has parameter list write def argument list ol cd scope name this if has one line initializer add initializer if is define ol docify linkify text text generatorol impl ol container get body def name init simplify white space else ol write non breakable space 3 linkify text text generatorol impl ol container get body def name init if excp string add exception list ol docify linkify text text generatorol impl ol container get body def name excp string specifier lvirt virtualness if is objc method protection public lvirt normal is friend is related is explicit is mutable is inline config getbool inline info is signal is slot is static class def class def container is settable is gettable is readable is writable is final is abstract write the member specifier list ol write latex spacing ol start typewriter ol docify q str list sl if is friend sl append friend else if is related sl append related else if config getbool inline info is inline sl append inline if is explicit sl append explicit if is mutable sl append mutable if is static sl append static if is gettable sl append get if is settable sl append set if is readable sl append read if is writable sl append write if is final sl append final if is abstract sl append abstract if protection protected sl append protected else if protection private sl append private else if protection package sl append package if lvirt virtual sl append virtual else if lvirt pure sl append pure virtual if is signal sl append signal if is slot sl append slot if class def class def container sl append inherited const char s sl first while s ol docify s s sl next if s ol docify ol docify ol end typewriter else if is objc method is implementation ol write latex spacing ol start typewriter ol docify implementation ol end typewriter if has parameter list ol end parameter list ol end member doc true else ol end member doc name ol end member doc false ol end doxy anchor cfname mem anchor ol start indent ol push generator state ol disable output generator rtf ol new paragraph ol pop generator state write multi line initializer if any if has multi line initializer init lines 0 init lines max init lines user init lines 1 implicitly enabled init lines user init lines explicitly enabled printf md s init lines d init s n name data init lines init data ol start bold if mtype define ol parse text the translator tr define value hasparameterlist infile definitiontype typefile hasdocs isdetailedsectionvisible ingroup infile memberdef writedocumentation hasdocs containertype ingroup hasdocs definitiontype ingroup hasdocs isenumvalue qcstring scopename scname qcstring memanchor qcstring definitiontype typegroup getclassdef scopename getclassdef getnamespacedef scopename getnamespacedef getfiledef scopename getfiledef groupdef grouptitle definitiontype typefile getnamespacedef memanchor file_ qcstring qcstring getoutputfilebase qcstring getoutputfilebase hashtmlhelp config_getbool generate_html config_getbool generate_htmlhelp htmlhelp htmlhelp hashtmlhelp htmlhelp htmlhelp getinstance htmlhelp addindexitem memanchor qcstring doxyname scopename doxyname qcstring scopename qcstring doxyargs argsstring qcstring isenumerate qregexp pushgeneratorstate isvariable istypedef memberlistiterator memberdef isenumerate startdoxyanchor memanchor doxyname doxyargs startmemberdoc memanchor linkifytext textgeneratorolimpl getbodydef writeenumdeclaration getclassdef getnamespacedef getfiledef getgroupdef linkifytext textgeneratorolimpl getbodydef startdoxyanchor memanchor doxyname doxyargs startmemberdoc memanchor startmemberdocname isobjcmethod linkifytext textgeneratorolimpl getbodydef startdoxyanchor memanchor doxyname doxyargs startmemberdoc memanchor classdef getclassdef config_getbool hide_scope_names m_deftmparglists qlistiterator argumentlist m_deftmparglists argumentlist tofirst startmemberdocprefixitem writetemplateprefix endmemberdocprefixitem istemplatespecialization qlist argumentlist tempparamlists gettemplateparameterlists tempparamlists tempparamlists tempparamlists qlistiterator argumentlist tempparamlists argumentlist tofirst startmemberdocprefixitem writetemplateprefix endmemberdocprefixitem targlist startmemberdocprefixitem writetemplateprefix targlist endmemberdocprefixitem startmemberdocname isobjcmethod isobjectivec findrev isid qcstring isstatic linkifytext textgeneratorolimpl getbodydef hasparameterlist writedefargumentlist scopename hasonelineinitializer isdefine linkifytext textgeneratorolimpl getbodydef simplifywhitespace writenonbreakablespace linkifytext textgeneratorolimpl getbodydef excpstring linkifytext textgeneratorolimpl getbodydef excpstring isobjcmethod isfriend isrelated isexplicit ismutable isinline config_getbool inline_info issignal isslot isstatic classdef classdef issettable isgettable isreadable iswritable isfinal isabstract writelatexspacing starttypewriter qstrlist isfriend isrelated config_getbool inline_info isinline isexplicit ismutable isstatic isgettable issettable isreadable iswritable isfinal isabstract issignal isslot classdef classdef endtypewriter isobjcmethod isimplementation writelatexspacing starttypewriter endtypewriter hasparameterlist endparameterlist endmemberdoc endmemberdocname endmemberdoc enddoxyanchor memanchor startindent pushgeneratorstate outputgenerator newparagraph popgeneratorstate hasmultilineinitializer initlines initlines maxinitlines userinitlines initlines userinitlines initlines initlines startbold parsetext thetranslator trdefinevalue void member def warn if undocumented if member group return class def cd get class def namespace def nd get namespace def file def fd get file def group def gd get group def definition d 0 const char t 0 if cd t class d cd else if nd t namespace d nd else if gd t group d gd else t file d fd printf warn if undoc d is linkable d is linkable d is documented friend class d name s prot d n d is linkable is linkable is documented friend class name data prot if is linkable is friend class name find 1 d name find 1 prot private config getbool extract private warn undoc m deffilename m defline warning member s s of s s is not documented name data args string args string t d name data memberdef warnifundocumented membergroup classdef getclassdef namespacedef getnamespacedef filedef getfiledef groupdef getgroupdef warnifundoc islinkable islinkable isdocumentedfriendclass islinkable islinkable isdocumentedfriendclass islinkable isfriendclass config_getbool extract_private warn_undoc m_deffilename m_defline argsstring argsstring void member def set reimplements member def md if redefines 0 redefines new member list if redefines find md 1 redefines in sort md redefines md memberdef setreimplements memberdef memberlist insort void member def insert reimplemented by member def md if m templatemaster m templatemaster insert reimplemented by md if redefined by 0 redefined by new member list if redefined by find ref md 1 redefined by in sort md memberdef insertreimplementedby memberdef m_templatemaster m_templatemaster insertreimplementedby redefinedby redefinedby memberlist redefinedby findref redefinedby insort member def member def reimplements const return redefines memberdef memberdef member list member def reimplemented by const return redefined by memberlist memberdef reimplementedby redefinedby const char doc file int doc line m inbodydocs docs m inbodydocs m inbodydocs strip white space m inbodyline doc line m inbodyfile doc file docfile docline m_inbodydocs m_inbodydocs m_inbodydocs stripwhitespace m_inbodyline docline m_inbodyfile docfile void member def insert enum field member def md if enum fields 0 enum fields new member list enum fields append md memberdef insertenumfield memberdef enumfields enumfields memberlist enumfields void member def set enum scope member def md enum scope md if md group group md group grouppri md grouppri group file name md group file name group start line md group start line group has docs md group has docs memberdef setenumscope memberdef enumscope groupfilename groupfilename groupstartline groupstartline grouphasdocs grouphasdocs const char file printf s add example s s s n name data anchor name str file if examples dict 0 examples dict new examples dict if examples dict find name str 0 printf add reference to example s to member s n name str name data example e new example e anchor anchor e name name str e file file examples dict in sort name str e return true return false addexample namestr examplesdict examplesdict examplesdict examplesdict namestr namestr namestr examplesdict insort namestr bool member def has examples if examples dict 0 return false else return examples dict count 0 memberdef hasexamples examplesdict examplesdict void member def set argument list argument list al if def arg list delete def arg list def arg list al memberdef setargumentlist argumentlist defarglist defarglist defarglist void member def set decl argument list argument list al if decl arg list delete decl arg list decl arg list al memberdef setdeclargumentlist argumentlist declarglist declarglist declarglist void member def set definition template parameter lists q list argument list lists if lists if m deftmparglists delete m deftmparglists m deftmparglists copy argument lists lists memberdef setdefinitiontemplateparameterlists qlist argumentlist m_deftmparglists m_deftmparglists m_deftmparglists copyargumentlists void member def set namespace namespace def nd nspace nd set outer scope nd memberdef setnamespace namespacedef setouterscope void member def set member group member group grp member group grp memberdef setmembergroup membergroup membergroup void member def enable call graph bool e m hascallgraph e if e doxygen parse sources needed true memberdef enablecallgraph m_hascallgraph parsesourcesneeded bool member def visible member group bool hide no header return member group 0 hide no header member group header noheader memberdef visiblemembergroup hidenoheader membergroup hidenoheader membergroup qc string member def get scope string const qc string result if get class def result get class def display name else if get namespace def result get namespace def display name return result qcstring memberdef getscopestring qcstring getclassdef getclassdef displayname getnamespacedef getnamespacedef displayname class def member def get class def of anonymous type if cached anonymous type return cached anonymous type qc string cname if get class def 0 cname get class def name copy else if get namespace def 0 cname get namespace def name copy qc string ltype type strip static keyword from ltype if ltype left 7 static ltype ltype right ltype length 7 strip friend keyword from ltype ltype strip prefix friend static q reg exp r 0 9 int l i r match ltype 0 l printf ltype s i d n ltype data i search for the last anonymous scope in the member type class def anno class def 0 if i 1 found anonymous scope in type int il i 1 ir i l extract anonymous scope while il 0 is id ltype at il ltype at il ltype at il il if il 0 il else if il 0 il 0 while ir int ltype length is id ltype at ir ltype at ir ltype at ir ir qc string ann name ltype mid il ir il if inside a class or namespace try to prepend the scope name if cname is empty ann name left cname length 2 cname qc string ts strip anonymous namespace scope cname ann name printf member write declaration trying s n ts data anno class def get class ts if not found yet try without scope name if anno class def 0 qc string ts strip anonymous namespace scope ann name printf member write declaration trying s n ts data anno class def get class ts cached anonymous type anno class def return anno class def classdef memberdef getclassdefofanonymoustype cachedanonymoustype cachedanonymoustype qcstring getclassdef getclassdef getnamespacedef getnamespacedef qcstring stripprefix qregexp classdef annoclassdef isid isid qcstring annname isempty annname qcstring stripanonymousnamespacescope annname writedeclaration annoclassdef getclass annoclassdef qcstring stripanonymousnamespacescope annname writedeclaration annoclassdef getclass cachedanonymoustype annoclassdef annoclassdef argument list formal args argument list actual args printf member s s s n type string name data args string argument list actual arg list 0 if def arg list actual arg list new argument list argument list iterator ali def arg list argument arg for arg ali current ali argument act arg new argument arg act arg type substitute template arguments in string act arg type formal args actual args actual arg list append act arg actual arg list const specifier def arg list const specifier actual arg list volatile specifier def arg list volatile specifier actual arg list pure specifier def arg list pure specifier member def imd new member def get def file name get def line substitute template arguments in string type formal args actual args name substitute template arguments in string args formal args actual args exception prot virt stat related mtype 0 0 imd def arg list actual arg list imd def substitute template arguments in string def formal args actual args imd set body def get body def imd set body segment get start body line get end body line imd set body member this todo init other member variables if needed todo reimplemented info return imd argumentlist formalargs argumentlist actualargs typestring argsstring argumentlist actualarglist defarglist actualarglist argumentlist argumentlistiterator defarglist actarg actarg substitutetemplateargumentsinstring actarg formalargs actualargs actualarglist actarg actualarglist constspecifier defarglist constspecifier actualarglist volatilespecifier defarglist volatilespecifier actualarglist purespecifier defarglist purespecifier memberdef memberdef getdeffilename getdefline substitutetemplateargumentsinstring formalargs actualargs substitutetemplateargumentsinstring formalargs actualargs defarglist actualarglist substitutetemplateargumentsinstring formalargs actualargs setbodydef getbodydef setbodysegment getstartbodyline getendbodyline setbodymember void member def add list reference definition static bool optimize output forc config getbool optimize output for c static bool hide scope names config getbool hide scope names static bool optimize output java config getbool optimize output java visited true if is linkable in project return qc string mem label if optimize output forc mem label the translator tr global true true else mem label the translator tr member true true qc string mem name name definition pd get outer scope qc string mem args if is related hide scope names there is a scope pd pd doxygen global scope and we can show it pd get class def it s a class so we show the scope anyway if is objc method mem name pd name name else if optimize output java mem name prepend pd name mem args args string else mem name prepend pd name mem args args string if xref list items add ref item xref list items mem label get output file base anchor mem name mem args else memberdef addlistreference optimizeoutputforc config_getbool optimize_output_for_c hidescopenames config_getbool hide_scope_names optimizeoutputjava config_getbool optimize_output_java islinkableinproject qcstring memlabel optimizeoutputforc memlabel thetranslator trglobal memlabel thetranslator trmember qcstring memname getouterscope qcstring memargs isrelated hidescopenames globalscope getclassdef isobjcmethod memname optimizeoutputjava memname memargs argsstring memname memargs argsstring xreflistitems addrefitem xreflistitems memlabel getoutputfilebase memname memargs class def cd namespace def nd file def fd group def gd int enum mem count 0 q list member def fmdl enum field list uint num visible enum values 0 if fmdl member def fmd fmdl first while fmd if fmd is brief section visible num visible enum values fmd fmdl next if num visible enum values 0 is brief section visible return qc string n name int i n find rev if i 1 n n right n length i 2 strip scope todo is this needed if n 0 not an anonymous enum if is linkable in project has documented enum values if config getstring generate tagfile is empty doxygen tag file member kind enumeration endl doxygen tag file name convert toxml name name endl doxygen tag file anchor convert toxml anchor anchor endl doxygen tag file arglist convert toxml args string arglist endl doxygen tag file member endl write link type decl cd nd fd gd else type decl start bold type decl docify n type decl end bold type decl write char if num visible enum values 0 uint enum values per line uint config getint enum values per line if enum values per line 0 enum values per line 1 type decl docify if fmdl member def fmd fmdl first bool fmd visible fmd is brief section visible while fmd if fmd visible in html we start a new line after a number of items if num visible enum values enum values per line enum mem count enum values per line 0 type decl push generator state type decl disable all but output generator html type decl enable output generator latex type decl line break type decl disable output generator latex type decl write string nbsp nbsp type decl pop generator state if fmd has documentation enum value has docs if config getstring generate tagfile is empty doxygen tag file member kind enumvalue endl doxygen tag file name convert toxml fmd name name endl doxygen tag file anchor convert toxml fmd anchor anchor endl doxygen tag file arglist convert toxml fmd args string arglist endl doxygen tag file member endl fmd write link type decl cd nd fd gd else no docs for this enum value type decl start bold type decl docify fmd name type decl end bold if fmd has one line initializer enum value has initializer type decl write string type decl parse text fmd initializer bool prev visible fmd visible fmd fmdl next if fmd fmd visible fmd is brief section visible type decl write string if prev visible type decl disable output generator man type decl write string n to prevent too long lines in la tex type decl enable output generator man enum mem count if num visible enum values enum values per line type decl push generator state type decl disable all but output generator html type decl line break type decl pop generator state type decl docify classdef namespacedef filedef groupdef enummemcount qlist memberdef enumfieldlist numvisibleenumvalues memberdef isbriefsectionvisible numvisibleenumvalues numvisibleenumvalues isbriefsectionvisible qcstring findrev islinkableinproject hasdocumentedenumvalues config_getstring generate_tagfile isempty tagfile tagfile converttoxml tagfile converttoxml tagfile converttoxml argsstring tagfile writelink typedecl typedecl startbold typedecl typedecl endbold typedecl writechar numvisibleenumvalues enumvaluesperline config_getint enum_values_per_line enumvaluesperline enumvaluesperline typedecl memberdef fmdvisible isbriefsectionvisible fmdvisible numvisibleenumvalues enumvaluesperline enummemcount enumvaluesperline typedecl pushgeneratorstate typedecl disableallbut outputgenerator typedecl outputgenerator typedecl linebreak typedecl outputgenerator typedecl writestring typedecl popgeneratorstate hasdocumentation config_getstring generate_tagfile isempty tagfile tagfile converttoxml tagfile converttoxml tagfile converttoxml argsstring tagfile writelink typedecl typedecl startbold typedecl typedecl endbold hasonelineinitializer typedecl writestring typedecl parsetext prevvisible fmdvisible fmdvisible isbriefsectionvisible typedecl writestring prevvisible typedecl outputgenerator typedecl writestring latex typedecl outputgenerator enummemcount numvisibleenumvalues enumvaluesperline typedecl pushgeneratorstate typedecl disableallbut outputgenerator typedecl linebreak typedecl popgeneratorstate typedecl void member def find sections in documentation doc find sections documentation this 0 doc file memberdef findsectionsindocumentation docfindsections docfile file def fd group def gd bool only text qc string sep config getbool optimize output java qc string n name if class def gd n prepend class def name sep else if nspace gd fd n prepend nspace name sep if is objc method if is static ol docify else ol docify if only text write link ol write object link get reference get output file base anchor n else write only text ol start bold ol docify n ol end bold filedef groupdef onlytext qcstring config_getbool optimize_output_java qcstring classdef classdef isobjcmethod isstatic onlytext writeobjectlink getreference getoutputfilebase startbold endbold const char d bool is symbol qc string ns m deffilename df m defline dl m name name if m name global scope extract namespace name m name m localname ns m localname strip scope name else m localname name printf m localname s n m localname data m brief b m doc d m sectiondict 0 m startbodyline m endbodyline 1 m bodydef 0 m sourcerefbydict 0 m sourcerefsdict 0 m todoid 0 m testid 0 m bugid 0 m deprecatedid 0 m outerscope doxygen global scope m partofgroups 0 m xreflistitems 0 m briefline 1 m brieffile qc string name m docline 1 m docfile qc string name m issymbol is symbol if m issymbol add to map name this issymbol qcstring m_deffilename m_defline m_name m_name globalscope extractnamespacename m_name m_localname m_localname stripscope m_localname m_localname m_localname m_brief m_doc m_sectiondict m_startbodyline m_endbodyline m_bodydef m_sourcerefbydict m_sourcerefsdict m_todoid m_testid m_bugid m_deprecatedid m_outerscope globalscope m_partofgroups m_xreflistitems m_briefline m_brieffile qcstring m_docline m_docfile qcstring m_issymbol issymbol m_issymbol addtomap definition definition if m issymbol remove from map this delete m sectiondict delete m sourcerefbydict delete m sourcerefsdict delete m partofgroups delete m xreflistitems m_issymbol removefrommap m_sectiondict m_sourcerefbydict m_sourcerefsdict m_partofgroups m_xreflistitems qc string definition qualified name if m qualifiedname is empty return m qualifiedname printf start definition qualified name local name s n m localname data if m outerscope 0 if m localname global scope return else return m localname if m outerscope name global scope m qualifiedname m localname copy else m qualifiedname m outerscope qualified name m localname printf end definition qualified name s n qualified name data return m qualifiedname qcstring qualifiedname m_qualifiedname isempty m_qualifiedname qualifiedname localname m_localname m_outerscope m_localname globalscope m_localname m_outerscope globalscope m_qualifiedname m_localname m_qualifiedname m_outerscope qualifiedname m_localname qualifiedname qualifiedname m_qualifiedname qc string definition local name const return m localname qcstring localname m_localname void definition set documentation const char d const char doc file int doc line bool strip white space if d 0 return printf definition set documentation s s d d n d doc file doc line strip white space qc string doc d if strip white space if 0 strip leading empty lines in front of the text but not the leading spaces in front of the first line so list items are parsed with the correct indent const char p d char c int s 0 so 0 while c p c c r c n if c n so s p s if c 0 return doc d so zero any trailing whitespace int e doc length 1 while e 0 c doc at e c c r c n doc at e 0 e endif doc strip leading and trailing empty lines doc else don t strip whitespace doc d printf setting docs for s s n name data m doc data m doc doc m docfile doc file m docline doc line setdocumentation docfile docline stripwhitespace setdocumentation docfile docline stripwhitespace qcstring stripwhitespace stripleadingandtrailingemptylines m_doc m_doc m_docfile docfile m_docline docline void definition set brief description const char b const char brief file int brief line if b 0 return fprintf stderr definition set brief description s s d n b brief file brief line m brief qc string b strip white space int bl m brief length if bl 0 add punctuation if needed switch m brief at bl 1 case case case break default if uni isupper m brief at 0 m brief break m brieffile brief file m briefline brief line setbriefdescription brieffile briefline setbriefdescription brieffile briefline m_brief qcstring stripwhitespace m_brief m_brief uni_isupper m_brief m_brief m_brieffile brieffile m_briefline briefline bool definition has documentation const static bool extract all config getbool extract all static bool source browser config getbool source browser bool has docs m doc is empty has detailed docs m brief is empty has brief description extract all extract everything source browser m startbodyline 1 m bodydef link to definition return has docs hasdocumentation extractall config_getbool extract_all sourcebrowser config_getbool source_browser hasdocs m_doc isempty m_brief isempty extractall sourcebrowser m_startbodyline m_bodydef hasdocs void definition add sections to definition q list section info anchor list if anchor list return printf s add sections to definition d n name data anchor list count section info si anchor list first while si printf add section s to definition s n si label data name data section info gsi doxygen section dict find si label if gsi 0 gsi new section info si doxygen section dict insert si label gsi if m sectiondict 0 m sectiondict new section dict 17 if m sectiondict find gsi label 0 m sectiondict insert gsi label gsi gsi definition this si anchor list next addsectionstodefinition qlist sectioninfo anchorlist anchorlist addsectionstodefinition anchorlist sectioninfo anchorlist sectioninfo sectiondict sectioninfo sectiondict m_sectiondict m_sectiondict sectiondict m_sectiondict m_sectiondict anchorlist void definition write doc anchors to tag file if config getstring generate tagfile is empty m sectiondict printf s write doc anchors to tag file d n name data m sectiondict count q dict iterator section info sdi m sectiondict section info si for si sdi current sdi if si generated printf write an entry n if definition type type member doxygen tag file doxygen tag file docanchor file si file name si label docanchor endl writedocanchorstotagfile config_getstring generate_tagfile isempty m_sectiondict writedocanchorstotagfile m_sectiondict qdictiterator sectioninfo m_sectiondict sectioninfo definitiontype typemember tagfile tagfile filename void definition set body segment int bls int ble printf set body segment d d for s n bls ble name data m startbodyline bls m endbodyline ble setbodysegment setbodysegment m_startbodyline m_endbodyline void definition write source def output list ol const char ol push generator state printf definition write source ref d p n body line body def if config getbool source browser m startbodyline 1 m bodydef qc string ref text the translator tr defined at line in source file int line marker pos ref text find 0 int file marker pos ref text find 1 if line marker pos 1 file marker pos 1 should always pass this qc string line str anchor str line str sprintf d m startbodyline anchor str sprintf htags use htags l d l 05d m startbodyline ol new paragraph if line marker pos file marker pos line marker before file marker write text left from line pos marker ol parse text ref text left line marker pos ol disable all but output generator html write line link html only ol write object link 0 m bodydef get source file base anchor str line str ol enable all ol disable output generator html write normal text latex man only ol docify line str ol enable all write text between markers ol parse text ref text mid line marker pos 2 file marker pos line marker pos 2 ol disable all but output generator html write file link html only ol write object link 0 m bodydef get source file base 0 m bodydef name ol enable all ol disable output generator html write normal text latex man only ol docify m bodydef name ol enable all write text right from file marker ol parse text ref text right ref text length file marker pos 2 else file marker before line marker write text left from file marker ol parse text ref text left file marker pos ol disable all but output generator html write file link html only ol write object link 0 m bodydef get source file base 0 m bodydef name ol enable all ol disable output generator html write normal text latex man only ol docify m bodydef name ol enable all write text between markers ol parse text ref text mid file marker pos 2 line marker pos file marker pos 2 ol disable all but output generator html write line link html only ol write object link 0 m bodydef get source file base anchor str line str ol enable all ol disable output generator html write normal text latex man only ol docify line str ol enable all write text right from line pos marker ol parse text ref text right ref text length line marker pos 2 else err error translation error invalid markers in tr defined in source file n ol pop generator state writesourcedef outputlist pushgeneratorstate writesourceref bodyline bodydef config_getbool source_browser m_startbodyline m_bodydef qcstring reftext thetranslator trdefinedatlineinsourcefile linemarkerpos reftext filemarkerpos reftext linemarkerpos filemarkerpos qcstring linestr anchorstr linestr m_startbodyline anchorstr usehtags m_startbodyline newparagraph linemarkerpos filemarkerpos linepos parsetext reftext linemarkerpos disableallbut outputgenerator writeobjectlink m_bodydef getsourcefilebase anchorstr linestr enableall outputgenerator linestr enableall parsetext reftext linemarkerpos filemarkerpos linemarkerpos disableallbut outputgenerator writeobjectlink m_bodydef getsourcefilebase m_bodydef enableall outputgenerator m_bodydef enableall parsetext reftext reftext filemarkerpos parsetext reftext filemarkerpos disableallbut outputgenerator writeobjectlink m_bodydef getsourcefilebase m_bodydef enableall outputgenerator m_bodydef enableall parsetext reftext filemarkerpos linemarkerpos filemarkerpos disableallbut outputgenerator writeobjectlink m_bodydef getsourcefilebase anchorstr linestr enableall outputgenerator linestr enableall linepos parsetext reftext reftext linemarkerpos trdefinedinsourcefile popgeneratorstate void definition write inline code output list ol const char scope name ol push generator state printf source fragment s d d body def p n name data m startbodyline m endbodyline m bodydef if config getbool inline sources m startbodyline 1 m endbodyline m startbodyline m bodydef qc string code fragment int actual start m startbodyline actual end m endbodyline if read code fragment m bodydef abs file path actual start actual end code fragment init parse code context printf read n s n n code fragment data if definition type type member set parameter list member def this ol start code fragment parse code ol scope name code fragment false 0 m bodydef actual start actual end true ol end code fragment ol new paragraph ol pop generator state writeinlinecode outputlist scopename pushgeneratorstate bodydef m_startbodyline m_endbodyline m_bodydef config_getbool inline_sources m_startbodyline m_endbodyline m_startbodyline m_bodydef qcstring codefragment actualstart m_startbodyline actualend m_endbodyline readcodefragment m_bodydef absfilepath actualstart actualend codefragment initparsecodecontext codefragment definitiontype typemember setparameterlist memberdef startcodefragment parsecode scopename codefragment m_bodydef actualstart actualend endcodefragment newparagraph popgeneratorstate void definition write source refs output list ol const char scope name if config getbool references relation write source ref list ol scope name the translator tr references m sourcerefsdict true writesourcerefs outputlist scopename config_getbool references_relation writesourcereflist scopename thetranslator trreferences m_sourcerefsdict void definition write source reffed by output list ol const char scope name if config getbool referenced by relation write source ref list ol scope name the translator tr referenced by m sourcerefbydict false writesourcereffedby outputlist scopename config_getbool referenced_by_relation writesourcereflist scopename thetranslator trreferencedby m_sourcerefbydict void definition add source referenced by member def md if md qc string name md name qc string scope md get scope string if scope is empty name prepend scope if m sourcerefbydict 0 m sourcerefbydict new members dict if m sourcerefbydict find name 0 m sourcerefbydict in sort name md addsourcereferencedby memberdef qcstring qcstring getscopestring isempty m_sourcerefbydict m_sourcerefbydict membersdict m_sourcerefbydict m_sourcerefbydict insort void definition add source references member def md if md qc string name md name qc string scope md get scope string if scope is empty name prepend scope if m sourcerefsdict 0 m sourcerefsdict new members dict if m sourcerefsdict find name 0 printf adding reference s s n md name data name data m sourcerefsdict in sort name md addsourcereferences memberdef qcstring qcstring getscopestring isempty m_sourcerefsdict m_sourcerefsdict membersdict m_sourcerefsdict m_sourcerefsdict insort void definition set ref items const q list list item info sli if sli deep copy the list if m xreflistitems 0 m xreflistitems new q list list item info m xreflistitems set auto delete true q list iterator list item info slii sli list item info lii for slii to first lii slii current slii m xreflistitems append new list item info lii setrefitems qlist listiteminfo m_xreflistitems m_xreflistitems qlist listiteminfo m_xreflistitems setautodelete qlistiterator listiteminfo listiteminfo tofirst m_xreflistitems listiteminfo void definition merge ref items definition d if d xref list items deep copy the list if m xreflistitems 0 m xreflistitems new q list list item info m xreflistitems set auto delete true q list iterator list item info slii d xref list items list item info lii for slii to first lii slii current slii if getx ref list id lii type 1 m xreflistitems append new list item info lii mergerefitems xreflistitems m_xreflistitems m_xreflistitems qlist listiteminfo m_xreflistitems setautodelete qlistiterator listiteminfo xreflistitems listiteminfo tofirst getxreflistid m_xreflistitems listiteminfo const q list list item info definition xref list items const return m xreflistitems qlist listiteminfo xreflistitems m_xreflistitems definition definition find inner compound const char return 0 findinnercompound void definition add inner compound definition err error definition add inner compound called n addinnercompound addinnercompound void definition make part of group group def gd if m partofgroups 0 m partofgroups new group list m partofgroups append gd makepartofgroup groupdef m_partofgroups m_partofgroups grouplist m_partofgroups qc string definition convert name to file const char name bool allow dots const if m ref is empty return name else return convert name to file name allow dots qcstring convertnametofile allowdots m_ref isempty convertnametofile allowdots void definition write path fragment output list ol const if m outerscope m outerscope doxygen global scope m outerscope write path fragment ol if m outerscope definition type definition type class m outerscope definition type definition type namespace if config getbool optimize output java ol write string else ol write string else ol write string nbsp ol write string raquo ol write string nbsp if is linkable if definition type definition type group const group def this group title ol write object link get reference get output file base 0 const group def this group title else if definition type definition type page const page def this title is empty ol write object link get reference get output file base 0 const page def this title else ol write object link get reference get output file base 0 m localname else ol start bold ol docify m localname ol end bold writepathfragment outputlist m_outerscope m_outerscope globalscope m_outerscope writepathfragment m_outerscope definitiontype typeclass m_outerscope definitiontype typenamespace config_getbool optimize_output_java writestring writestring writestring writestring writestring islinkable definitiontype typegroup groupdef grouptitle writeobjectlink getreference getoutputfilebase groupdef grouptitle definitiontype typepage pagedef isempty writeobjectlink getreference getoutputfilebase pagedef writeobjectlink getreference getoutputfilebase m_localname startbold m_localname endbold void definition write navigation path output list ol const ol push generator state ol disable all but output generator html ol write string div class nav n write path fragment ol ol write string div n ol pop generator state writenavigationpath outputlist pushgeneratorstate disableallbut outputgenerator writestring writepathfragment writestring popgeneratorstate int definition getx ref list id const char list name const if m xreflistitems q list iterator list item info slii m xreflistitems list item info lii for slii to first lii slii current slii if strcmp lii type list name 0 return lii item id return 1 getxreflistid listname m_xreflistitems qlistiterator listiteminfo m_xreflistitems listiteminfo tofirst listname itemid const qc string text members dict members bool func only ol push generator state if config getbool source browser members ol new paragraph ol parse text text ol docify qc string ldef line the translator tr write list members count q reg exp marker 0 9 int index 0 new index match len now replace all markers in inherit line with links to the classes while new index marker match ldef line index match len 1 bool ok ol parse text ldef line mid index new index index uint entry index ldef line mid new index 1 match len 1 tou int ok member def md members at entry index if ok md qc string scope md get scope string qc string name md name printf class p scope s scope name s n md get class def scope data scope name if scope is empty scope scope name if config getbool optimize output java name prepend scope else name prepend scope if md is objc method md is function md is slot md is prototype md is signal name definition d md get output file base if d doxygen global scope d md get body def if md get start body line 1 md get body def printf md get body def p global p n md get body def doxygen global scope for html write a real link ol push generator state ol disable all but output generator html qc string line str anchor str anchor str sprintf l 05d md get start body line printf write object link to s n md get body def get source file base data ol write object link 0 md get body def get source file base anchor str name ol pop generator state for the other output formats just mention the name ol push generator state ol disable output generator html ol docify name ol pop generator state else if md is linkable d d is linkable for html write a real link ol push generator state ol disable all but output generator html ol write object link md get reference md get output file base md anchor name ol pop generator state for the other output formats just mention the name ol push generator state ol disable output generator html ol docify name ol pop generator state else ol docify name index new index match len ol parse text ldef line right ldef line length index ol write string ol pop generator state qcstring membersdict funconly pushgeneratorstate config_getbool source_browser newparagraph parsetext qcstring ldefline thetranslator trwritelist qregexp newindex matchlen inheritline newindex ldefline matchlen parsetext ldefline newindex entryindex ldefline newindex matchlen touint memberdef entryindex qcstring getscopestring qcstring scopename getclassdef scopename isempty scopename config_getbool optimize_output_java isobjcmethod isfunction isslot isprototype issignal getoutputfilebase globalscope getbodydef getstartbodyline getbodydef getbodydef getbodydef globalscope pushgeneratorstate disableallbut outputgenerator qcstring linestr anchorstr anchorstr getstartbodyline getbodydef getsourcefilebase writeobjectlink getbodydef getsourcefilebase anchorstr popgeneratorstate pushgeneratorstate outputgenerator popgeneratorstate islinkable islinkable pushgeneratorstate disableallbut outputgenerator writeobjectlink getreference getoutputfilebase popgeneratorstate pushgeneratorstate outputgenerator popgeneratorstate newindex matchlen parsetext ldefline ldefline writestring popgeneratorstate int id const char hdr const char d const char doc file printf new member group id d header s desc s n id hdr d member list new member list grp id id grp header hdr doc d scope 0 in same section true in decl section 0 m numdecmembers 1 m parent parent m docfile doc file printf member group docs s n doc data docfile memberlist memberlist grpid grpheader insamesection indeclsection m_numdecmembers m_parent m_docfile docfile member group member group delete member list membergroup membergroup memberlist void member group insert member member def md printf member group insert member member list p count d member section list p n member list first member list first get section list 0 member list count md get section list member def first md member list first if in same section member list count 0 first md get section list m parent md get section list m parent in same section false else if in decl section 0 in decl section md get section list m parent member list append md copy the group of the first member in the member group group def gd if first md gd first md get group def md set group def gd first md get group pri first md get group file name first md get group start line first md get group has docs gd insert member md membergroup insertmember memberdef membergroup insertmember memberlist memberlist memberlist getsectionlist memberlist getsectionlist memberdef firstmd memberlist insamesection memberlist firstmd getsectionlist m_parent getsectionlist m_parent insamesection indeclsection indeclsection getsectionlist m_parent memberlist membergroup groupdef firstmd firstmd getgroupdef setgroupdef firstmd getgrouppri firstmd getgroupfilename firstmd getgroupstartline firstmd getgrouphasdocs insertmember void member group set anchors class def context set anchors context z member list grp id membergroup setanchors classdef setanchors memberlist grpid printf member group write plain declarations member list count d n member list count member list write plain declarations ol cd nd fd gd membergroup writeplaindeclarations memberlist memberlist memberlist writeplaindeclarations class def cd namespace def nd file def fd group def gd printf member group write declarations member list count d n member list count member list write declarations ol cd nd fd gd grp header doc true true classdef namespacedef filedef groupdef membergroup writedeclarations memberlist memberlist memberlist writedeclarations grpheader definition container member list write documentation ol scope name container 0 memberlist writedocumentation scopename definition container member list write documentation page ol scope name container memberlist writedocumentationpage scopename void member group add to declaration section if in decl section in decl section add member group this membergroup addtodeclarationsection indeclsection indeclsection addmembergroup int member group count dec members bool section per type if m numdecmembers 1 number of member not cached member list count dec members true true section per type m numdecmembers member list num dec members return m numdecmembers membergroup countdecmembers sectionpertype m_numdecmembers memberlist countdecmembers sectionpertype m_numdecmembers memberlist numdecmembers m_numdecmembers void member group distribute member group documentation printf member group distribute member group documentation s n grp header data member def md member list first if md md documentation is empty md brief description is empty md inbody documentation is empty printf first member s has documentation n md name data member def omd member list next while omd if omd documentation is empty omd brief description is empty omd inbody documentation is empty printf copying documentation to member s n omd name data omd set brief description md brief description md brief file md brief line omd set documentation md documentation md doc file md doc line omd set inbody documentation md inbody documentation md inbody file md inbody line omd member list next membergroup distributemembergroupdocumentation membergroup distributemembergroupdocumentation grpheader memberdef memberlist isempty briefdescription isempty inbodydocumentation isempty memberdef memberlist isempty briefdescription isempty inbodydocumentation isempty setbriefdescription briefdescription brieffile briefline setdocumentation docfile docline setinbodydocumentation inbodydocumentation inbodyfile inbodyline memberlist void member group find sections in documentation doc find sections doc 0 this m docfile member list find sections in documentation membergroup findsectionsindocumentation docfindsections m_docfile memberlist findsectionsindocumentation int member group var count const return member list var count membergroup varcount memberlist varcount int member group func count const return member list func count membergroup funccount memberlist funccount int member group enum count const return member list enum count membergroup enumcount memberlist enumcount int member group enum value count const return member list enum value count membergroup enumvaluecount memberlist enumvaluecount int member group typedef count const return member list typedef count membergroup typedefcount memberlist typedefcount int member group proto count const return member list proto count membergroup protocount memberlist protocount int member group define count const return member list define count membergroup definecount memberlist definecount int member group friend count const return member list friend count membergroup friendcount memberlist friendcount int member group num dec members const return member list num dec members membergroup numdecmembers memberlist numdecmembers int member group num doc members const return member list num doc members membergroup numdocmembers memberlist numdocmembers void member group set in group bool b member list set in group b membergroup setingroup memberlist setingroup void member group add list references definition def member list add list references def membergroup addlistreferences memberlist addlistreferences bool argument list has documentation const bool has docs false argument list iterator ali this argument a for ali to first has docs a ali current ali has docs has docs a has documentation return has docs argumentlist hasdocumentation hasdocs argumentlistiterator tofirst hasdocs hasdocs hasdocs hasdocumentation hasdocs const char group doc cmd const switch group doc type case groupdoc normal return defgroup case groupdoc add return addgroup case groupdoc weak return weakgroup default return unknown group command groupdoccmd groupdoctype groupdoc_normal groupdoc_add groupdoc_weak grouping grouppri t grouping pri const if section groupdoc sec return grouping grouping lowest switch group doc type case groupdoc normal return grouping grouping auto def case groupdoc add return grouping grouping auto add case groupdoc weak return grouping grouping auto weak default return grouping grouping lowest grouppri_t groupingpri groupdoc_sec grouping_lowest groupdoctype groupdoc_normal grouping_auto_def groupdoc_add grouping_auto_add groupdoc_weak grouping_auto_weak grouping_lowest entry entry num printf new entry d n num parent 0 section empty sec sublist new q list entry sublist set auto delete true extends new q list base info extends set auto delete true groups new q list grouping groups set auto delete true anchors new q list section info arg list new argument list arg list set auto delete true printf entry entry t arg list 0 n t arg lists 0 m grp id 1 tag info 0 sli 0 relates dup false group doc type groupdoc normal reset empty_sec qlist setautodelete qlist baseinfo setautodelete qlist setautodelete qlist sectioninfo arglist argumentlist arglist setautodelete targlist targlists mgrpid taginfo relatesdup groupdoctype groupdoc_normal entry entry const entry e num printf copy new entry d n num section e section protection e protection mtype e mtype stat e stat explicit external e explicit external virt e virt parent e parent type e type copy name e name copy args e args copy bitfields e bitfields copy exception e exception copy program e program copy include file e include file copy include name e include file copy doc e doc copy doc line e doc line doc file e doc file copy relates e relates copy relates dup e relates dup read e read copy write e write copy brief e brief copy brief line e brief line brief file e brief file copy inbody docs e inbody docs copy inbody line e inbody line inbody file e inbody file copy inside e inside copy file name e file name copy start line e start line m grp id e m grp id body line e body line end body line e end body line mem spec e mem spec initializer e initializer init lines e init lines call graph e call graph objc e objc tag info e tag info sublist new q list entry sublist set auto delete true extends new q list base info extends set auto delete true groups new q list grouping groups set auto delete true anchors new q list section info arg list new argument list arg list set auto delete true t arg lists 0 group doc type e group doc type deep copy of the child entry list q list iterator entry eli e sublist entry cur for cur eli current eli sublist append new entry cur deep copy base class list q list iterator base info bli e extends base info bi for bi bli current bli extends append new base info bi deep copy group list q list iterator grouping gli e groups grouping g for g gli current gli groups append new grouping g q list iterator section info sli2 e anchors section info s for s sli2 current sli2 anchors append new section info s deep copy argument list q list iterator argument ali e arg list argument a for a ali current ali arg list append new argument a arg list const specifier e arg list const specifier arg list volatile specifier e arg list volatile specifier arg list pure specifier e arg list pure specifier deep copy template argument lists if e t arg lists t arg lists copy argument lists e t arg lists if e sli sli new q list list item info sli set auto delete true q list iterator list item info slii e sli list item info ili for slii to first ili slii current slii sli append new list item info ili else sli 0 explicitexternal explicitexternal includefile includefile includename includefile docline docline docfile docfile relatesdup relatesdup briefline briefline brieffile brieffile inbodydocs inbodydocs inbodyline inbodyline inbodyfile inbodyfile filename filename startline startline mgrpid mgrpid bodyline bodyline endbodyline endbodyline memspec memspec initlines initlines callgraph callgraph taginfo taginfo qlist setautodelete qlist baseinfo setautodelete qlist setautodelete qlist sectioninfo arglist argumentlist arglist setautodelete targlists groupdoctype groupdoctype qlistiterator qlistiterator baseinfo baseinfo baseinfo qlistiterator qlistiterator sectioninfo sectioninfo sectioninfo qlistiterator arglist arglist arglist constspecifier arglist constspecifier arglist volatilespecifier arglist volatilespecifier arglist purespecifier arglist purespecifier targlists targlists copyargumentlists targlists qlist listiteminfo setautodelete qlistiterator listiteminfo listiteminfo tofirst listiteminfo entry entry printf deleting entry d name s type x chilren d n num name data section sublist count delete sublist delete extends delete groups delete anchors delete arg list delete t arg lists delete mt arg list delete tag info delete sli num arglist targlists mtarglist taginfo int entry get size int size sizeof entry size type length 1 size name length 1 size args length 1 size bitfields length 1 size exception length 1 size program length 1 size include file length 1 size include name length 1 size doc length 1 size doc file length 1 size relates length 1 size brief length 1 size brief file length 1 size inbody docs length 1 size inbody file length 1 size inside length 1 size file name length 1 size initializer length 1 base info bi extends first while bi size sizeof ql node size bi name length 1 sizeof bi prot sizeof bi virt bi extends next grouping g groups first while g size sizeof ql node size g groupname length 1 size sizeof g pri g groups next entry e sublist first while e size e get size e sublist next argument a arg list first while a size sizeof argument size a type length 1 a name length 1 a defval length 1 a arg list next if t arg lists argument list al t arg lists first while al size sizeof argument list a al first while a size sizeof argument size a type length 1 a name length 1 a defval length 1 a al next al t arg lists next return size getsize includefile includename docfile brieffile inbodydocs inbodyfile filename baseinfo qlnode qlnode getsize arglist arglist targlists argumentlist targlists argumentlist targlists void entry add special list item const char list name int item id if sli 0 sli new q list list item info sli set auto delete true list item info ili new list item info ili type list name ili item id item id sli append ili addspeciallistitem listname itemid qlist listiteminfo setautodelete listiteminfo listiteminfo listname itemid itemid void entry add sub entry entry current printf entry d with name s type 0x x added to s type 0x x n current num current name data current section name data section printf entry add sub entry s p n current name data current t arg list current parent this sublist append current addsubentry addsubentry targlist void entry reset name resize 0 type resize 0 args resize 0 bitfields resize 0 exception resize 0 program resize 0 include file resize 0 include name resize 0 doc resize 0 doc file resize 0 doc line 1 relates resize 0 relates dup false brief resize 0 brief file resize 0 brief line 1 inbody docs resize 0 inbody file resize 0 inbody line 1 inside resize 0 file name resize 0 initializer resize 0 init lines 1 start line 1 body line 1 end body line 1 m grp id 1 call graph false section empty sec mtype method virt normal stat false proto false explicit external false mem spec 0 objc false sub grouping true protection public group doc type groupdoc normal sublist clear extends clear groups clear anchors clear arg list clear if tag info delete tag info tag info 0 if t arg lists delete t arg lists t arg lists 0 if sli delete sli sli 0 if mt arg list delete mt arg list mt arg list 0 includefile includename docfile docline relatesdup brieffile briefline inbodydocs inbodyfile inbodyline filename initlines startline bodyline endbodyline mgrpid callgraph empty_sec explicitexternal memspec subgrouping groupdoctype groupdoc_normal arglist taginfo taginfo taginfo targlists targlists targlists mtarglist mtarglist mtarglist qc string name const if config getbool full path names return filename else return definition name qcstring config_getbool full_path_names bool is linkable in project const return has documentation is reference islinkableinproject hasdocumentation isreference bool is linkable const return is linkable in project is reference islinkable islinkableinproject isreference definition qc string p nm 1 nm path p filepath path nm filename nm diskname dn if diskname is empty diskname nm set reference lref printf new file def path s name s ref s n p nm lref classs dict new classs dict 17 include list new q list include info include list set auto delete true include dict new q dict include info 61 included by list new q list include info included by list set auto delete true included by dict new q dict include info 61 namespaces dict new namespaces dict src def dict 0 src member dict 0 using dir list 0 using decl list 0 package 0 is source false docname nm dir 0 if config getbool full path names docname prepend strip from path path copy member groups dict new member groups dict member groups dict set auto delete true acquire file version members in the detailed part of the documentation doc define members set in file true doc proto members set in file true doc typedef members set in file true doc enum members set in file true doc func members set in file true doc var members set in file true qcstring isempty setreference filedef classsdict classsdict includelist qlist includeinfo includelist setautodelete includedict qdict includeinfo includedbylist qlist includeinfo includedbylist setautodelete includedbydict qdict includeinfo namespacesdict namespacesdict srcdefdict srcmemberdict usingdirlist usingdecllist issource config_getbool full_path_names stripfrompath membergroupsdict membergroupsdict membergroupsdict setautodelete acquirefileversion docdefinemembers setinfile docprotomembers setinfile doctypedefmembers setinfile docenummembers setinfile docfuncmembers setinfile docvarmembers setinfile file def file def delete classs dict delete include dict delete include list delete included by dict delete included by list delete namespaces dict delete src def dict delete src member dict delete using dir list delete using decl list delete member groups dict filedef filedef classsdict includedict includelist includedbydict includedbylist namespacesdict srcdefdict srcmemberdict usingdirlist usingdecllist membergroupsdict qc string file def get source file base const if htags use htags return htags path2url filepath else return convert name to file diskname source qcstring filedef getsourcefilebase usehtags convertnametofile qc string file def include name const if htags use htags return htags path2url filepath else return convert name to file diskname source qcstring filedef includename usehtags convertnametofile void file def add source ref int line definition d member def md if d if src def dict 0 src def dict new q int dict definition 257 if src member dict 0 src member dict new q int dict member def 257 src def dict insert line d if md src member dict insert line md printf adding member s with anchor s at line d to file s n d name data anchor line name data filedef addsourceref memberdef srcdefdict srcdefdict qintdict srcmemberdict srcmemberdict qintdict memberdef srcdefdict srcmemberdict definition file def get source definition int line nr definition result 0 if src def dict result src def dict find line nr return result filedef getsourcedefinition linenr srcdefdict srcdefdict linenr member def file def get source member int line nr member def result 0 if src member dict result src member dict find line nr return result memberdef filedef getsourcemember linenr memberdef srcmemberdict srcmemberdict linenr bool file def is included const qc string name const if name is empty return false return include dict find name 0 filedef isincluded qcstring isempty includedict void file def write detailed documentation output list ol if brief description is empty config getbool repeat brief documentation is empty ol write ruler ol push generator state ol disable output generator latex ol disable output generator rtf ol write anchor 0 details ol pop generator state ol start group header ol parse text the translator tr detailed description ol end group header if brief description is empty config getbool repeat brief ol parse doc brief file brief line this 0 brief description false false if brief description is empty config getbool repeat brief documentation is empty ol push generator state ol disable output generator man ol new paragraph ol enable all ol disable all but output generator man ol write string n n ol pop generator state if documentation is empty if doc at dl 1 doc at dl 1 doc at dl 1 doc ol parse doc doc file doc line this 0 documentation n true false printf writing source ref for file s n name data if config getbool source browser ol new paragraph qc string ref text the translator tr defined in source file int file marker pos ref text find 0 if file marker pos 1 should always pass this ol parse text ref text left file marker pos text left from marker 1 ol write object link 0 get source file base 0 name ol parse text ref text right ref text length file marker pos 2 text right from marker 2 filedef writedetaileddocumentation outputlist briefdescription isempty config_getbool repeat_brief isempty writeruler pushgeneratorstate outputgenerator outputgenerator writeanchor _details popgeneratorstate startgroupheader parsetext thetranslator trdetaileddescription endgroupheader briefdescription isempty config_getbool repeat_brief parsedoc brieffile briefline briefdescription briefdescription isempty config_getbool repeat_brief isempty pushgeneratorstate outputgenerator newparagraph enableall disableallbut outputgenerator writestring popgeneratorstate isempty parsedoc docfile docline config_getbool source_browser newparagraph qcstring reftext thetranslator trdefinedinsourcefile filemarkerpos reftext filemarkerpos parsetext reftext filemarkerpos writeobjectlink getsourcefilebase parsetext reftext reftext filemarkerpos void file def write documentation output list ol func list count dec members qc string fn name if config getbool full path names fn prepend strip from path get path copy printf write documentation diskname s n diskname data qc string version title if file version is empty version title file version qc string title docname version title qc string page title the translator tr file reference docname start file ol get output file base name page title if config getbool show directories get dir def get dir def write navigation path ol qc string page title short the translator tr file reference name start title ol get output file base ol push generator state ol disable all but output generator html ol parse text page title short html only ol enable all ol disable output generator html ol parse text page title other output formats ol pop generator state add group list to title ol this end title ol get output file base title else start title ol get output file base ol parse text page title add group list to title ol this end title ol get output file base title if file version is empty ol disable all but output generator html ol start project number ol docify version title ol end project number ol enable all if config getbool searchengine doxygen search index set current doc page title get output file base doxygen search index add word local name true if config getstring generate tagfile is empty doxygen tag file compound kind file endl doxygen tag file name convert toxml name name endl doxygen tag file path convert toxml get path path endl doxygen tag file filename convert toxml get output file base filename endl if config getbool details at top ol start text block write detailed documentation ol ol end text block ol push generator state ol disable output generator man ol disable output generator rtf ol new paragraph ol pop generator state else if brief description is empty ol parse doc brief file brief line this 0 brief description true false ol write string n ol disable all but output generator html ol start text link 0 details ol parse text the translator tr more ol end text link ol enable all ol push generator state ol disable output generator man ol disable output generator rtf ol new paragraph ol pop generator state ol write synopsis if config getbool show include files include list count 0 ol start text block true q list iterator include info ili include list include info ii for ii ili current ili file def fd ii file def bool isid lor java false if fd isid lor java fd name right 4 idl fd name right 5 pidl fd name right 5 java ol start typewriter if isid lor java idl java include ol docify import else if ii imported objective c include ol docify import else c c include ol docify include if ii local isid lor java ol docify else ol docify ol disable output generator html ol docify ii include name ol enable all ol disable all but output generator html here we use the include file name as it appears in the file we could also we the name as it is used within doxygen then we should have used fd doc name instead of ii include name if fd fd is linkable ol write object link fd get reference fd generate source file fd include name fd get output file base 0 ii include name if config getstring generate tagfile is empty fd is reference const char loc str ii local isid lor java yes no const char imp str ii imported isid lor java yes no doxygen tag file includes id convert toxml fd get output file base name convert toxml fd name local loc str imported imp str convert toxml ii include name includes endl else ol docify ii include name ol enable all if ii local isid lor java ol docify else ol docify if isid lor java ol docify ol end typewriter ol line break ol end text block if config getbool have dot config getbool include graph printf graph for file s n name data dot incl dep graph inc dep graph this config getint max dot graph depth false if inc dep graph is trivial ol start text block ol disable output generator man ol new paragraph ol start incl dep graph ol parse text the translator tr incl dep graph name ol end incl dep graph inc dep graph ol enable all ol end text block true inc dep graph write graph config getstring html output fd get output file base if config getbool have dot config getbool included by graph printf graph for file s n name data dot incl dep graph inc dep graph this config getint max dot graph depth true if inc dep graph is trivial ol start text block ol disable output generator man ol new paragraph ol start incl dep graph ol parse text the translator tr incl by dep graph ol end incl dep graph inc dep graph ol enable all ol end text block true inc dep graph write graph config getstring html output fd get output file base printf s generate source file d n name data generate source file if generate source file ol disable all but output generator html ol new paragraph ol start text link include name 0 ol parse text the translator tr goto source code ol end text link ol enable all ol start member sections if namespaces dict count 0 namespaces dict iterator ndi namespaces dict namespace def nd bool found false for ndi to first nd ndi current ndi if nd name find 1 if found ol start member header ol parse text the translator tr namespaces ol end member header ol start member list found true ol start member item 0 ol write string namespace ol insert member align if nd is linkable ol write object link nd get reference nd get output file base 0 nd display name if config getstring generate tagfile is empty doxygen tag file namespace convert toxml nd name namespace endl else ol start bold ol docify nd display name ol end bold ol end member item if found ol end member list classs dict write declaration ol write user defined member groups member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli if mg header noheader mg write declarations ol 0 0 this 0 all member list write declarations ol 0 0 this 0 0 0 dec define members write declarations ol 0 0 this 0 the translator tr defines 0 dec proto members write declarations ol 0 0 this 0 the translator tr func protos 0 dec typedef members write declarations ol 0 0 this 0 the translator tr typedefs 0 dec enum members write declarations ol 0 0 this 0 the translator tr enumerations 0 dec func members write declarations ol 0 0 this 0 the translator tr functions 0 dec var members write declarations ol 0 0 this 0 the translator tr variables 0 ol end member sections if config getbool details at top write detailed documentation ol write member documentation ol write author section man only ol disable all but output generator man ol start group header ol parse text the translator tr author true true ol end group header ol parse text the translator tr generated automatically config getstring project name ol enable all if config getstring generate tagfile is empty write doc anchors to tag file doxygen tag file compound endl end file ol if config getbool separate member pages all member list sort write member pages ol filedef writedocumentation outputlist funclist countdecmembers qcstring config_getbool full_path_names stripfrompath getpath writedocumentation qcstring versiontitle fileversion isempty versiontitle fileversion qcstring versiontitle qcstring pagetitle thetranslator trfilereference startfile getoutputfilebase pagetitle config_getbool show_directories getdirdef getdirdef writenavigationpath qcstring pagetitleshort thetranslator trfilereference starttitle getoutputfilebase pushgeneratorstate disableallbut outputgenerator parsetext pagetitleshort enableall outputgenerator parsetext pagetitle popgeneratorstate addgrouplisttotitle endtitle getoutputfilebase starttitle getoutputfilebase parsetext pagetitle addgrouplisttotitle endtitle getoutputfilebase fileversion isempty disableallbut outputgenerator startprojectnumber versiontitle endprojectnumber enableall config_getbool searchindex setcurrentdoc pagetitle getoutputfilebase searchindex addword localname config_getstring generate_tagfile isempty tagfile tagfile converttoxml tagfile converttoxml getpath tagfile converttoxml getoutputfilebase config_getbool details_at_top starttextblock writedetaileddocumentation endtextblock pushgeneratorstate outputgenerator outputgenerator newparagraph popgeneratorstate briefdescription isempty parsedoc brieffile briefline briefdescription writestring disableallbut outputgenerator starttextlink _details parsetext thetranslator trmore endtextlink enableall pushgeneratorstate outputgenerator outputgenerator newparagraph popgeneratorstate writesynopsis config_getbool show_include_files includelist starttextblock qlistiterator includeinfo includelist includeinfo filedef filedef isidlorjava isidlorjava starttypewriter isidlorjava isidlorjava outputgenerator includename enableall disableallbut outputgenerator docname includename islinkable writeobjectlink getreference generatesourcefile includename getoutputfilebase includename config_getstring generate_tagfile isempty isreference locstr isidlorjava impstr isidlorjava tagfile converttoxml getoutputfilebase converttoxml locstr impstr converttoxml includename includename enableall isidlorjava isidlorjava endtypewriter linebreak endtextblock config_getbool have_dot config_getbool include_graph dotincldepgraph incdepgraph config_getint max_dot_graph_depth incdepgraph istrivial starttextblock outputgenerator newparagraph startincldepgraph parsetext thetranslator trincldepgraph endincldepgraph incdepgraph enableall endtextblock incdepgraph writegraph config_getstring html_output getoutputfilebase config_getbool have_dot config_getbool included_by_graph dotincldepgraph incdepgraph config_getint max_dot_graph_depth incdepgraph istrivial starttextblock outputgenerator newparagraph startincldepgraph parsetext thetranslator trinclbydepgraph endincldepgraph incdepgraph enableall endtextblock incdepgraph writegraph config_getstring html_output getoutputfilebase generatesourcefile generatesourcefile generatesourcefile disableallbut outputgenerator newparagraph starttextlink includename parsetext thetranslator trgotosourcecode endtextlink enableall startmembersections namespacesdict namespacesdict namespacesdict namespacedef tofirst startmemberheader parsetext thetranslator trnamespaces endmemberheader startmemberlist startmemberitem writestring insertmemberalign islinkable writeobjectlink getreference getoutputfilebase displayname config_getstring generate_tagfile isempty tagfile converttoxml startbold displayname endbold endmemberitem endmemberlist classsdict writedeclaration membergroupsdict membergroupsdict membergroup writedeclarations allmemberlist writedeclarations decdefinemembers writedeclarations thetranslator trdefines decprotomembers writedeclarations thetranslator trfuncprotos dectypedefmembers writedeclarations thetranslator trtypedefs decenummembers writedeclarations thetranslator trenumerations decfuncmembers writedeclarations thetranslator trfunctions decvarmembers writedeclarations thetranslator trvariables endmembersections config_getbool details_at_top writedetaileddocumentation writememberdocumentation disableallbut outputgenerator startgroupheader parsetext thetranslator trauthor endgroupheader parsetext thetranslator trgeneratedautomatically config_getstring project_name enableall config_getstring generate_tagfile isempty writedocanchorstotagfile tagfile endfile config_getbool separate_member_pages allmemberlist writememberpages void file def write member documentation output list ol if config getbool separate member pages ol disable output generator html doc define members write documentation ol name this the translator tr define documentation doc proto members write documentation ol name this the translator tr function prototype documentation doc typedef members write documentation ol name this the translator tr typedef documentation doc enum members write documentation ol name this the translator tr enumeration type documentation doc func members write documentation ol name this the translator tr function documentation doc var members write documentation ol name this the translator tr variable documentation if config getbool separate member pages ol enable output generator html filedef writememberdocumentation outputlist config_getbool separate_member_pages outputgenerator docdefinemembers writedocumentation thetranslator trdefinedocumentation docprotomembers writedocumentation thetranslator trfunctionprototypedocumentation doctypedefmembers writedocumentation thetranslator trtypedefdocumentation docenummembers writedocumentation thetranslator trenumerationtypedocumentation docfuncmembers writedocumentation thetranslator trfunctiondocumentation docvarmembers writedocumentation thetranslator trvariabledocumentation config_getbool separate_member_pages outputgenerator void file def write member pages output list ol ol push generator state ol disable all but output generator html doc define members write documentation page ol name this doc proto members write documentation page ol name this doc typedef members write documentation page ol name this doc enum members write documentation page ol name this doc func members write documentation page ol name this doc var members write documentation page ol name this ol pop generator state filedef writememberpages outputlist pushgeneratorstate disableallbut outputgenerator docdefinemembers writedocumentationpage docprotomembers writedocumentationpage doctypedefmembers writedocumentationpage docenummembers writedocumentationpage docfuncmembers writedocumentationpage docvarmembers writedocumentationpage popgeneratorstate void file def write quick member links output list ol member def current md const static bool create sub dirs config getbool create subdirs ol write string div class navtab n ol write string table n member list iterator mli all member list member def md for mli to first md mli current mli if md get file def this md get namespace def 0 md is linkable ol write string tr td class navtab if md is linkable in project if md current md selected item highlight ol write string a class qindexhl else ol write string a class qindex ol write string href if create sub dirs ol write string ol write string md get output file base doxygen html file extension md anchor ol write string ol write string md local name ol write string a ol write string td tr n ol write string table n ol write string div n filedef writequickmemberlinks outputlist memberdef currentmd createsubdirs config_getbool create_subdirs writestring writestring memberlistiterator allmemberlist memberdef tofirst getfiledef getnamespacedef islinkable writestring islinkableinproject currentmd writestring writestring writestring createsubdirs writestring writestring getoutputfilebase htmlfileextension writestring writestring localname writestring writestring writestring writestring void file def write source output list ol qc string title docname if file version is empty title file version qc string page title the translator tr source file title ol disable all but output generator html start file ol get source file base 0 page title if config getbool show directories get dir def get dir def write navigation path ol start title ol get output file base ol parse text name end title ol get output file base title else start title ol 0 ol parse text title end title ol 0 0 if is linkable ol start text link get output file base 0 ol parse text the translator tr goto documentation ol end text link init parse code context ol start code fragment parse code ol 0 file to string abs file path config getbool filter source files false 0 this ol end code fragment end file ol ol enable all filedef writesource outputlist qcstring fileversion isempty fileversion qcstring pagetitle thetranslator trsourcefile disableallbut outputgenerator startfile getsourcefilebase pagetitle config_getbool show_directories getdirdef getdirdef writenavigationpath starttitle getoutputfilebase parsetext endtitle getoutputfilebase starttitle parsetext endtitle islinkable starttextlink getoutputfilebase parsetext thetranslator trgotodocumentation endtextlink initparsecodecontext startcodefragment parsecode filetostring absfilepath config_getbool filter_source_files endcodefragment endfile enableall void file def parse source dev null code doc interface dev null intf parse code dev null intf 0 file to string abs file path config getbool filter source files false 0 this filedef parsesource devnullcodedocinterface devnullintf parsecode devnullintf filetostring absfilepath config_getbool filter_source_files void file def insert member member def md printf s file def insert member s n name data md name data if all member list find md 1 return all member list append md bool sort brief docs config getbool sort brief docs bool sort member docs config getbool sort member docs switch md member type case member def variable case member def property if sort brief docs dec var members in sort md else dec var members append md if sort member docs doc var members in sort md else doc var members append md break case member def function if sort brief docs dec func members in sort md else dec func members append md if sort member docs doc func members in sort md else doc func members append md break case member def typedef if sort brief docs dec typedef members in sort md else dec typedef members append md if sort member docs doc typedef members in sort md else doc typedef members append md break case member def enumeration if sort brief docs dec enum members in sort md else dec enum members append md if sort member docs doc enum members in sort md else doc enum members append md break case member def enum value enum values are shown inside their enums break case member def prototype if sort brief docs dec proto members in sort md else dec proto members append md if sort member docs doc proto members in sort md else doc proto members append md break case member def define if sort brief docs dec define members in sort md else dec define members append md if sort member docs doc define members in sort md else doc define members append md break default err file def insert members member s with class scope s inserted in file scope s n md name data md get class def md get class def name data name data add member to group md group id filedef insertmember memberdef filedef insertmember allmemberlist allmemberlist sortbriefdocs config_getbool sort_brief_docs sortmemberdocs config_getbool sort_member_docs membertype memberdef memberdef sortbriefdocs decvarmembers insort decvarmembers sortmemberdocs docvarmembers insort docvarmembers memberdef sortbriefdocs decfuncmembers insort decfuncmembers sortmemberdocs docfuncmembers insort docfuncmembers memberdef sortbriefdocs dectypedefmembers insort dectypedefmembers sortmemberdocs doctypedefmembers insort doctypedefmembers memberdef sortbriefdocs decenummembers insort decenummembers sortmemberdocs docenummembers insort docenummembers memberdef enumvalue memberdef sortbriefdocs decprotomembers insort decprotomembers sortmemberdocs docprotomembers insort docprotomembers memberdef sortbriefdocs decdefinemembers insort decdefinemembers sortmemberdocs docdefinemembers insort docdefinemembers filedef insertmembers getclassdef getclassdef addmembertogroup groupid void file def insert class class def cd if config getbool sort brief docs classs dict in sort cd name cd else classs dict append cd name cd filedef insertclass classdef config_getbool sort_brief_docs classsdict insort classsdict void file def insert namespace namespace def nd if nd name is empty namespaces dict find nd name 0 if config getbool sort brief docs namespaces dict in sort nd name nd else namespaces dict append nd name nd filedef insertnamespace namespacedef isempty namespacesdict config_getbool sort_brief_docs namespacesdict insort namespacesdict void file def compute anchors set anchors 0 a all member list filedef computeanchors setanchors allmemberlist void file def add using directive namespace def nd if using dir list 0 using dir list new namespaces dict if using dir list find nd qualified name 0 using dir list append nd qualified name nd filedef addusingdirective namespacedef usingdirlist usingdirlist namespacesdict usingdirlist qualifiedname usingdirlist qualifiedname void file def add using declaration definition d if using decl list 0 using decl list new s dict definition 17 if using decl list find d qualified name 0 using decl list append d qualified name d filedef addusingdeclaration usingdecllist usingdecllist sdict usingdecllist qualifiedname usingdecllist qualifiedname void file def combine using relations if visited return already done visited true if using dir list namespaces dict iterator nli using dir list namespace def nd for nli to first nd nli current nli nd combine using relations for nli to first nd nli current nli add used namespaces of namespace nd to this namespace if nd get used namespaces namespaces dict iterator unli nd get used namespaces namespace def und for unli to first und unli current unli printf adding namespace s to the using list of s n und qualified name data qualified name data add using directive und add used classes of namespace nd to this namespace if nd get used classes s dict definition iterator cli nd get used classes definition ucd for cli to first ucd cli current cli printf adding class s to the using list of s n cd qualified name data qualified name data add using declaration ucd filedef combineusingrelations usingdirlist namespacesdict usingdirlist namespacedef tofirst combineusingrelations tofirst getusednamespaces namespacesdict getusednamespaces namespacedef tofirst qualifiedname qualifiedname addusingdirective getusedclasses sdict getusedclasses tofirst qualifiedname qualifiedname addusingdeclaration bool file def generate source file const qc string extension name right 4 return is reference config getbool source browser config getbool verbatim headers guess section name entry header sec extension doc extension txt extension dox filedef generatesourcefile qcstring isreference config_getbool source_browser config_getbool verbatim_headers guesssection header_sec bool imported printf file def add include dependency p s d n fd inc name local qc string i name fd fd abs file path data inc name if i name is empty include dict find i name 0 include info ii new include info ii file def fd ii include name inc name ii local local ii imported imported include list append ii include dict insert i name ii filedef addincludedependency incname qcstring iname absfilepath incname iname isempty includedict iname includeinfo includeinfo filedef includename incname includelist includedict iname bool local bool imported printf file def add included by dependency p s d n fd inc name local qc string i name fd fd abs file path data inc name if i name is empty included by dict find i name 0 include info ii new include info ii file def fd ii include name inc name ii local local ii imported imported included by list append ii included by dict insert i name ii filedef addincludedbydependency incname qcstring iname absfilepath incname iname isempty includedbydict iname includeinfo includeinfo filedef includename incname includedbylist includedbydict iname void file def add members to member group add members to member group dec define members member groups dict this add members to member group dec proto members member groups dict this add members to member group dec typedef members member groups dict this add members to member group dec enum members member groups dict this add members to member group dec func members member groups dict this add members to member group dec var members member groups dict this filedef addmemberstomembergroup addmemberstomembergroup decdefinemembers membergroupsdict addmemberstomembergroup decprotomembers membergroupsdict addmemberstomembergroup dectypedefmembers membergroupsdict addmemberstomembergroup decenummembers membergroupsdict addmemberstomembergroup decfuncmembers membergroupsdict addmemberstomembergroup decvarmembers membergroupsdict void file def distribute member group documentation printf file def distribute member group documentation n member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg distribute member group documentation filedef distributemembergroupdocumentation filedef distributemembergroupdocumentation membergroupsdict membergroupsdict membergroup distributemembergroupdocumentation void file def find sections in documentation doc find sections documentation this 0 doc file member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg find sections in documentation dec define members find sections in documentation dec proto members find sections in documentation dec typedef members find sections in documentation dec enum members find sections in documentation dec func members find sections in documentation dec var members find sections in documentation filedef findsectionsindocumentation docfindsections docfile membergroupsdict membergroupsdict membergroup findsectionsindocumentation decdefinemembers findsectionsindocumentation decprotomembers findsectionsindocumentation dectypedefmembers findsectionsindocumentation decenummembers findsectionsindocumentation decfuncmembers findsectionsindocumentation decvarmembers findsectionsindocumentation void file def add included using directives if visited return visited true printf file def add included using directives for file s n name data namespace list nl if include list file contains includes q list iterator include info iii include list include info ii for iii to first ii iii current iii foreach include if ii file def ii file def visited that is a known file recurse into this file ii file def add included using directives q list iterator include info iii include list include info ii iterate through list from last to first for iii to last ii iii current iii if ii file def ii file def this namespaces dict unl ii file def using dir list if unl namespaces dict iterator nli unl namespace def nd for nli to last nd nli current nli append each using directive found in a include file if using dir list 0 using dir list new namespaces dict printf prepending used namespace s to the list of file s n nd name data name data using dir list prepend nd qualified name nd printf end file def add included using directives for file s n name data filedef addincludedusingdirectives filedef addincludedusingdirectives namespacelist includelist qlistiterator includeinfo includelist includeinfo tofirst filedef filedef filedef addincludedusingdirectives qlistiterator includeinfo includelist includeinfo tolast filedef filedef namespacesdict filedef usingdirlist namespacesdict namespacedef tolast usingdirlist usingdirlist namespacesdict usingdirlist qualifiedname filedef addincludedusingdirectives void file def add list references add ref item xref list items the translator tr file true true get output file base name member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg add list references this doc define members add list references this doc proto members add list references this doc typedef members add list references this doc enum members add list references this doc func members add list references this doc var members add list references this filedef addlistreferences addrefitem xreflistitems thetranslator trfile getoutputfilebase membergroupsdict membergroupsdict membergroup addlistreferences docdefinemembers addlistreferences docprotomembers addlistreferences doctypedefmembers addlistreferences docenummembers addlistreferences docfuncmembers addlistreferences docvarmembers addlistreferences bool file def is documentation file const return name right 4 doc name right 4 txt name right 4 dox filedef isdocumentationfile void file def acquire file version qc string vercmd config getstring file version filter if vercmd is empty msg version of s filepath data file f popen vercmd filepath r if f err error could not execute s n vercmd data return const int buf size 1024 char buf buf size int num read fread buf 1 buf size f pclose f if num read 0 file version qc string buf num read strip white space msg s n file version data else msg no version available n filedef acquirefileversion qcstring config_getstring file_version_filter isempty bufsize bufsize numread bufsize numread fileversion qcstring numread stripwhitespace fileversion int members dict compare items gci item1 gci item2 member def c1 member def item1 member def c2 member def item2 return stricmp c1 name c2 name membersdict compareitems memberdef memberdef memberdef memberdef bool is linkable in project const return is reference islinkableinproject isreference bool is linkable const return true islinkable const char ref file name definition df dl na file list new file list classs dict new classs dict 17 group list new group list namespaces dict new namespaces dict 17 page dict new pages dict 17 example dict new pages dict 17 dir list new dir list all member list new member list all member name infos dict new member name infos dict 17 if ref file name file name strip extension ref file name else file name qc string group na set group title t member groups dict new member groups dict member groups dict set auto delete true dec define members set in group true dec proto members set in group true dec typedef members set in group true dec enum members set in group true dec enum val members set in group true dec func members set in group true dec var members set in group true doc define members set in group true doc proto members set in group true doc typedef members set in group true doc enum members set in group true doc func members set in group true doc var members set in group true visited 0 reffilename filelist filelist classsdict classsdict grouplist grouplist namespacesdict namespacesdict pagedict pagesdict exampledict pagesdict dirlist dirlist allmemberlist memberlist allmembernameinfosdict membernameinfosdict reffilename filename stripextension reffilename filename qcstring group_ setgrouptitle membergroupsdict membergroupsdict membergroupsdict setautodelete decdefinemembers setingroup decprotomembers setingroup dectypedefmembers setingroup decenummembers setingroup decenumvalmembers setingroup decfuncmembers setingroup decvarmembers setingroup docdefinemembers setingroup docprotomembers setingroup doctypedefmembers setingroup docenummembers setingroup docfuncmembers setingroup docvarmembers setingroup group def group def delete file list delete classs dict delete group list delete namespaces dict delete page dict delete example dict delete all member list delete all member name infos dict delete member groups dict delete dir list groupdef groupdef filelist classsdict grouplist namespacesdict pagedict exampledict allmemberlist allmembernameinfosdict membergroupsdict dirlist qc string group def get output file base const if is reference return file name else return convert name to file file name qcstring groupdef getoutputfilebase isreference filename convertnametofile filename void group def set group title const char t if t strlen t title t title set true else title name title at 0 toupper title at 0 title set false groupdef setgrouptitle titleset titleset void group def add file const file def def if config getbool sort brief docs file list in sort def else file list append def groupdef addfile filedef config_getbool sort_brief_docs filelist insort filelist void group def add class const class def cd if config getbool sort brief docs classs dict in sort cd name cd else classs dict append cd name cd groupdef addclass classdef config_getbool sort_brief_docs classsdict insort classsdict void group def add namespace const namespace def def if config getbool sort brief docs namespaces dict in sort def name def else namespaces dict append def name def groupdef addnamespace namespacedef config_getbool sort_brief_docs namespacesdict insort namespacesdict void group def add group const group def def printf adding group s to group s n def name data name data if config getbool sort member docs group list in sort def else group list append def groupdef addgroup groupdef config_getbool sort_member_docs grouplist insort grouplist void group def add page page def def printf making page s part of a group n def name data page dict append def name def def make part of group this groupdef addpage pagedef pagedict makepartofgroup void group def add example const page def def example dict append def name def groupdef addexample pagedef exampledict void group def add dir const dir def def if config getbool sort brief docs dir list in sort def else dir list append def groupdef adddir dirdef config_getbool sort_brief_docs dirlist insort dirlist bool group def insert member member def md bool doc only printf group def s insert member s n title data md name data member name info mni 0 if mni all member name infos dict md name member with this name already found member name info iterator src mnii mni member info src mi for src mi src mnii current src mnii member def src md src mi member def if src md md return false already added before bool same scope src md get outer scope md get outer scope same class or namespace both inside a file definition and declaration do not have to be in the same file src md get outer scope definition type definition type file md get outer scope definition type definition type file if src md is function md is function ifdef newmatch match arguments2 src md get outer scope src md get file def src md argument list md get outer scope md get file def md argument list true else match arguments src md argument list md argument list endif same scope if src md get group alias 0 md set group alias src md else md set group alias src md get group alias return false member is the same as one that is already added mni append new member info md md protection md virtualness false else mni new member name info md name mni append new member info md md protection md virtualness false all member name infos dict append mni member name mni printf added member n all member list append md switch md member type case member def variable if doc only if config getbool sort brief docs dec var members in sort md else dec var members append md if config getbool sort member docs doc var members in sort md else doc var members append md break case member def function if doc only if config getbool sort brief docs dec func members in sort md else dec func members append md if config getbool sort member docs doc func members in sort md else doc func members append md break case member def typedef if doc only if config getbool sort brief docs dec typedef members in sort md else dec typedef members append md if config getbool sort member docs doc typedef members in sort md else doc typedef members append md break case member def enumeration if doc only if config getbool sort brief docs dec enum members in sort md else dec enum members append md if config getbool sort member docs doc enum members in sort md else doc enum members append md break case member def enum value break case member def prototype if doc only if config getbool sort brief docs dec proto members in sort md else dec proto members append md if config getbool sort member docs doc proto members in sort md else doc proto members append md break case member def define if doc only if config getbool sort brief docs dec define members in sort md else dec define members append md if config getbool sort member docs doc define members in sort md else doc define members append md break default err group def insert members member s typeid d with scope s inserted in group scope s n md name data md member type md get class def md get class def name data name data return true groupdef insertmember memberdef doconly groupdef insertmember membernameinfo allmembernameinfosdict membernameinfoiterator srcmnii memberinfo srcmi srcmi srcmnii srcmnii memberdef srcmd srcmi memberdef srcmd samescope srcmd getouterscope getouterscope srcmd getouterscope definitiontype typefile getouterscope definitiontype typefile srcmd isfunction isfunction matcharguments2 srcmd getouterscope srcmd getfiledef srcmd argumentlist getouterscope getfiledef argumentlist matcharguments srcmd argumentlist argumentlist samescope srcmd getgroupalias setgroupalias srcmd setgroupalias srcmd getgroupalias memberinfo membernameinfo memberinfo allmembernameinfosdict membername allmemberlist membertype memberdef doconly config_getbool sort_brief_docs decvarmembers insort decvarmembers config_getbool sort_member_docs docvarmembers insort docvarmembers memberdef doconly config_getbool sort_brief_docs decfuncmembers insort decfuncmembers config_getbool sort_member_docs docfuncmembers insort docfuncmembers memberdef doconly config_getbool sort_brief_docs dectypedefmembers insort dectypedefmembers config_getbool sort_member_docs doctypedefmembers insort doctypedefmembers memberdef doconly config_getbool sort_brief_docs decenummembers insort decenummembers config_getbool sort_member_docs docenummembers insort docenummembers memberdef enumvalue memberdef doconly config_getbool sort_brief_docs decprotomembers insort decprotomembers config_getbool sort_member_docs docprotomembers insort docprotomembers memberdef doconly config_getbool sort_brief_docs decdefinemembers insort decdefinemembers config_getbool sort_member_docs docdefinemembers insort docdefinemembers groupdef insertmembers membertype getclassdef getclassdef void group def remove member member def md fprintf stderr group def s remove member s n title data md name data member name info mni all member name infos dict find md name if mni member name info iterator mnii mni while mnii current if mnii current member def md mni remove mnii current break mnii if mni is empty all member name infos dict remove md name delete mni all member list remove md switch md member type case member def variable dec var members remove md doc var members remove md break case member def function dec func members remove md doc func members remove md break case member def typedef dec typedef members remove md doc typedef members remove md break case member def enumeration dec enum members remove md doc enum members remove md break case member def enum value break case member def prototype dec proto members remove md doc proto members remove md break case member def define dec define members remove md doc define members remove md break default err group def remove member unexpected member remove in file n groupdef removemember memberdef groupdef removemember membernameinfo allmembernameinfosdict membernameinfoiterator memberdef isempty allmembernameinfosdict allmemberlist membertype memberdef decvarmembers docvarmembers memberdef decfuncmembers docfuncmembers memberdef dectypedefmembers doctypedefmembers memberdef decenummembers docenummembers memberdef enumvalue memberdef decprotomembers docprotomembers memberdef decdefinemembers docdefinemembers groupdef removemember bool group def contains group const group def def return group list find def 0 groupdef containsgroup groupdef grouplist void group def write detailed documentation output list ol if brief description is empty documentation is empty if page dict count count members classical layout ol write ruler ol push generator state ol disable output generator latex ol disable output generator rtf ol write anchor 0 details ol pop generator state ol start group header ol parse text the translator tr detailed description ol end group header repeat brief description if brief description is empty config getbool repeat brief ol parse doc brief file brief line this 0 brief description false false ol new paragraph write documentation if documentation is empty ol parse doc doc file doc line this 0 documentation n true false groupdef writedetaileddocumentation outputlist briefdescription isempty isempty pagedict countmembers writeruler pushgeneratorstate outputgenerator outputgenerator writeanchor _details popgeneratorstate startgroupheader parsetext thetranslator trdetaileddescription endgroupheader briefdescription isempty config_getbool repeat_brief parsedoc brieffile briefline briefdescription newparagraph isempty parsedoc docfile docline void group def write documentation output list ol ol push generator state start file ol get output file base name title start title ol get output file base ol parse text title add group list to title ol this end title ol get output file base title if config getbool searchengine doxygen search index set current doc title get output file base static q reg exp we a za z a za z 0 9 int i 0 p 0 l 0 while i we match title p l 1 foreach word in the title doxygen search index add word title mid i l true p i l if config getbool have dot config getbool group graphs dot group collaboration graph this if graph is trivial msg generating dependency graph for group s n qualified name data ol push generator state ol disable output generator man ol new paragraph ol start group collaboration ol parse text the translator tr collaboration diagram title ol end group collaboration graph ol pop generator state if config getbool details at top write detailed documentation ol ol new paragraph else if brief description is empty ol parse doc brief file brief line this 0 brief description true false ol write string n ol push generator state ol disable output generator latex ol disable output generator rtf ol disable output generator man ol start text link 0 details ol parse text the translator tr more ol end text link ol enable all ol disable all but output generator man ol new paragraph ol pop generator state if config getstring generate tagfile is empty doxygen tag file compound kind group endl doxygen tag file name convert toxml name name endl doxygen tag file title convert toxml title title endl doxygen tag file filename convert toxml get output file base doxygen html file extension filename endl ol start member sections write list of files if file list count 0 ol start member header ol parse text the translator tr file true false ol end member header ol start member list file def fd file list first while fd ol start member item 0 ol docify the translator tr file false true ol insert member align ol write object link fd get reference fd get output file base 0 fd name if config getstring generate tagfile is empty doxygen tag file file convert toxml fd name file endl ol end member item if fd brief description is empty config getbool brief member desc ol start member description ol parse doc brief file brief line fd 0 fd brief description false false ol end member description ol new paragraph fd file list next ol end member list write list of namespaces namespaces dict write declaration ol write list of groups if group list count 0 ol start member header ol parse text the translator tr modules ol end member header ol start member list group def gd group list first while gd ol start member item 0 ol docify the translator tr group false true ol docify ol insert member align ol write object link gd get reference gd get output file base 0 gd group title if config getstring generate tagfile is empty doxygen tag file subgroup convert toxml gd name subgroup endl ol end member item if gd brief description is empty config getbool brief member desc ol start member description ol parse doc brief file brief line gd 0 gd brief description false false ol end member description ol new paragraph gd group list next ol end member list write list of directories if dir list count 0 ol start member header ol parse text the translator tr directories ol end member header ol start member list dir def dd dir list first while dd ol start member item 0 ol parse text the translator tr dir false true ol insert member align ol write object link dd get reference dd get output file base 0 dd short name ol end member item if config getstring generate tagfile is empty doxygen tag file dir convert toxml dd display name dir endl if dd brief description is empty config getbool brief member desc ol start member description ol parse doc brief file brief line dd 0 dd brief description false false ol end member description ol new paragraph dd dir list next ol end member list write list of classes classs dict write declaration ol write list of members if all member list count 0 write user defined member groups member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg write declarations ol 0 0 0 this all member list write declarations ol 0 0 0 this 0 0 dec define members write declarations ol 0 0 0 this the translator tr defines 0 dec proto members write declarations ol 0 0 0 this the translator tr func protos 0 dec typedef members write declarations ol 0 0 0 this the translator tr typedefs 0 dec enum members write declarations ol 0 0 0 this the translator tr enumerations 0 dec func members write declarations ol 0 0 0 this the translator tr functions 0 dec var members write declarations ol 0 0 0 this the translator tr variables 0 ol end member sections if config getbool details at top write detailed documentation ol page def pd 0 pages dict iterator pdi page dict for pdi to first pd pdi current pdi if pd is reference qc string page name pd get output file base if config getstring generate tagfile is empty doxygen tag file page convert toxml page name page endl section info si 0 if pd title is empty pd name is empty si doxygen section dict pd name 0 ol start section si label si title section info subsection ol docify si title ol end section si label section info subsection ol start text block ol parse doc pd doc file pd doc line pd 0 pd documentation true false ol end text block write member documentation ol if config getstring generate tagfile is empty write doc anchors to tag file doxygen tag file compound endl end file ol ol pop generator state if config getbool separate member pages all member list sort write member pages ol groupdef writedocumentation outputlist pushgeneratorstate startfile getoutputfilebase starttitle getoutputfilebase parsetext addgrouplisttotitle endtitle getoutputfilebase config_getbool searchindex setcurrentdoc getoutputfilebase qregexp z_ z_0 searchindex addword config_getbool have_dot config_getbool group_graphs dotgroupcollaboration istrivial qualifiedname pushgeneratorstate outputgenerator newparagraph startgroupcollaboration parsetext thetranslator trcollaborationdiagram endgroupcollaboration popgeneratorstate config_getbool details_at_top writedetaileddocumentation newparagraph briefdescription isempty parsedoc brieffile briefline briefdescription writestring pushgeneratorstate outputgenerator outputgenerator outputgenerator starttextlink _details parsetext thetranslator trmore endtextlink enableall disableallbut outputgenerator newparagraph popgeneratorstate config_getstring generate_tagfile isempty tagfile tagfile converttoxml tagfile converttoxml tagfile converttoxml getoutputfilebase htmlfileextension startmembersections filelist startmemberheader parsetext thetranslator trfile endmemberheader startmemberlist filedef filelist startmemberitem thetranslator trfile insertmemberalign writeobjectlink getreference getoutputfilebase config_getstring generate_tagfile isempty tagfile converttoxml endmemberitem briefdescription isempty config_getbool brief_member_desc startmemberdescription parsedoc brieffile briefline briefdescription endmemberdescription newparagraph filelist endmemberlist namespacesdict writedeclaration grouplist startmemberheader parsetext thetranslator trmodules endmemberheader startmemberlist groupdef grouplist startmemberitem thetranslator trgroup insertmemberalign writeobjectlink getreference getoutputfilebase grouptitle config_getstring generate_tagfile isempty tagfile converttoxml endmemberitem briefdescription isempty config_getbool brief_member_desc startmemberdescription parsedoc brieffile briefline briefdescription endmemberdescription newparagraph grouplist endmemberlist dirlist startmemberheader parsetext thetranslator trdirectories endmemberheader startmemberlist dirdef dirlist startmemberitem parsetext thetranslator trdir insertmemberalign writeobjectlink getreference getoutputfilebase shortname endmemberitem config_getstring generate_tagfile isempty tagfile converttoxml displayname briefdescription isempty config_getbool brief_member_desc startmemberdescription parsedoc brieffile briefline briefdescription endmemberdescription newparagraph dirlist endmemberlist classsdict writedeclaration allmemberlist membergroupsdict membergroupsdict membergroup writedeclarations allmemberlist writedeclarations decdefinemembers writedeclarations thetranslator trdefines decprotomembers writedeclarations thetranslator trfuncprotos dectypedefmembers writedeclarations thetranslator trtypedefs decenummembers writedeclarations thetranslator trenumerations decfuncmembers writedeclarations thetranslator trfunctions decvarmembers writedeclarations thetranslator trvariables endmembersections config_getbool details_at_top writedetaileddocumentation pagedef pagesdict pagedict tofirst isreference qcstring pagename getoutputfilebase config_getstring generate_tagfile isempty tagfile converttoxml pagename sectioninfo isempty isempty sectiondict startsection sectioninfo endsection sectioninfo starttextblock parsedoc docfile docline endtextblock writememberdocumentation config_getstring generate_tagfile isempty writedocanchorstotagfile tagfile endfile popgeneratorstate config_getbool separate_member_pages allmemberlist writememberpages void group def write member documentation output list ol if config getbool separate member pages ol disable output generator html doc define members write documentation ol name this the translator tr define documentation doc proto members write documentation ol name this the translator tr function prototype documentation doc typedef members write documentation ol name this the translator tr typedef documentation doc enum members write documentation ol name this the translator tr enumeration type documentation doc func members write documentation ol name this the translator tr function documentation doc var members write documentation ol name this the translator tr variable documentation if config getbool separate member pages ol enable output generator html groupdef writememberdocumentation outputlist config_getbool separate_member_pages outputgenerator docdefinemembers writedocumentation thetranslator trdefinedocumentation docprotomembers writedocumentation thetranslator trfunctionprototypedocumentation doctypedefmembers writedocumentation thetranslator trtypedefdocumentation docenummembers writedocumentation thetranslator trenumerationtypedocumentation docfuncmembers writedocumentation thetranslator trfunctiondocumentation docvarmembers writedocumentation thetranslator trvariabledocumentation config_getbool separate_member_pages outputgenerator void group def write member pages output list ol ol push generator state ol disable all but output generator html doc define members write documentation page ol name this doc proto members write documentation page ol name this doc typedef members write documentation page ol name this doc enum members write documentation page ol name this doc func members write documentation page ol name this doc var members write documentation page ol name this ol pop generator state groupdef writememberpages outputlist pushgeneratorstate disableallbut outputgenerator docdefinemembers writedocumentationpage docprotomembers writedocumentationpage doctypedefmembers writedocumentationpage docenummembers writedocumentationpage docfuncmembers writedocumentationpage docvarmembers writedocumentationpage popgeneratorstate void group def write quick member links output list ol member def current md const static bool create sub dirs config getbool create subdirs ol write string div class navtab n ol write string table n member list iterator mli all member list member def md for mli to first md mli current mli if md get group def this md is linkable ol write string tr td class navtab if md is linkable in project if md current md selected item highlight ol write string a class qindexhl else ol write string a class qindex ol write string href if create sub dirs ol write string ol write string md get output file base doxygen html file extension md anchor ol write string ol write string md local name ol write string a ol write string td tr n ol write string table n ol write string div n groupdef writequickmemberlinks outputlist memberdef currentmd createsubdirs config_getbool create_subdirs writestring writestring memberlistiterator allmemberlist memberdef tofirst getgroupdef islinkable writestring islinkableinproject currentmd writestring writestring writestring createsubdirs writestring writestring getoutputfilebase htmlfileextension writestring writestring localname writestring writestring writestring writestring int group def count members const return file list count classs dict count namespaces dict count group list count all member list count page dict count example dict count groupdef countmembers filelist classsdict namespacesdict grouplist allmemberlist pagedict exampledict bool group def isa sub group const return m partofgroups m partofgroups count 0 groupdef isasubgroup m_partofgroups m_partofgroups void group def compute anchors printf group def compute anchors n set anchors 0 a all member list groupdef computeanchors groupdef computeanchors setanchors allmemberlist void group def add members to member group add members to member group dec define members member groups dict this add members to member group dec proto members member groups dict this add members to member group dec typedef members member groups dict this add members to member group dec enum members member groups dict this add members to member group dec enum val members member groups dict this add members to member group dec func members member groups dict this add members to member group dec var members member groups dict this printf group def add members to member group member group list d n member group list count member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg set in group true groupdef addmemberstomembergroup addmemberstomembergroup decdefinemembers membergroupsdict addmemberstomembergroup decprotomembers membergroupsdict addmemberstomembergroup dectypedefmembers membergroupsdict addmemberstomembergroup decenummembers membergroupsdict addmemberstomembergroup decenumvalmembers membergroupsdict addmemberstomembergroup decfuncmembers membergroupsdict addmemberstomembergroup decvarmembers membergroupsdict groupdef addmemberstomembergroup membergrouplist membergrouplist membergroupsdict membergroupsdict membergroup setingroup void group def distribute member group documentation member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg distribute member group documentation groupdef distributemembergroupdocumentation membergroupsdict membergroupsdict membergroup distributemembergroupdocumentation void group def find sections in documentation doc find sections documentation this 0 doc file member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg find sections in documentation dec define members find sections in documentation dec proto members find sections in documentation dec typedef members find sections in documentation dec enum members find sections in documentation dec func members find sections in documentation dec var members find sections in documentation groupdef findsectionsindocumentation docfindsections docfile membergroupsdict membergroupsdict membergroup findsectionsindocumentation decdefinemembers findsectionsindocumentation decprotomembers findsectionsindocumentation dectypedefmembers findsectionsindocumentation decenummembers findsectionsindocumentation decfuncmembers findsectionsindocumentation decvarmembers findsectionsindocumentation void group def add list references add ref item xref list items the translator tr group true true get output file base name member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg add list references this doc define members add list references this doc proto members add list references this doc typedef members add list references this doc enum members add list references this doc func members add list references this doc var members add list references this groupdef addlistreferences addrefitem xreflistitems thetranslator trgroup getoutputfilebase membergroupsdict membergroupsdict membergroup addlistreferences docdefinemembers addlistreferences docprotomembers addlistreferences doctypedefmembers addlistreferences docenummembers addlistreferences docfuncmembers addlistreferences docvarmembers addlistreferences int compare items gci item1 gci item2 return stricmp definition item1 name definition item2 name compareitems iterator const s dict t dict m li new q list iterator t dict m list sdict m_li qlistiterator m_list virtual iterator delete m li m_li t to first const return m li to first tofirst m_li tofirst t to last const return m li to last tolast m_li tolast t current const return m li current m_li t operator return m li operator m_li t operator return m li operator m_li iterator const s int dict t dict m li new q list iterator t dict m list sintdict m_li qlistiterator m_list virtual iterator delete m li m_li t to first const return m li to first tofirst m_li tofirst t to last const return m li to last tolast m_li tolast t current const return m li current m_li t operator return m li operator m_li t operator return m li operator m_li uses class dict used implementation classes const return m usesimplclassdict usesclassdict usedimplementationclasses m_usesimplclassdict uses class dict used by implementation classes const return m usedbyimplclassdict usesclassdict usedbyimplementationclasses m_usedbyimplclassdict uses class dict used interface classes const return m usesintfclassdict usesclassdict usedinterfaceclasses m_usesintfclassdict qc string class def get output file base const if m templatemaster return m templatemaster get output file base else if is reference return m filename else return convert name to file m filename qcstring classdef getoutputfilebase m_templatemaster m_templatemaster getoutputfilebase isreference m_filename convertnametofile m_filename qc string class def get instance output file base const if is reference return m filename else return convert name to file m filename qcstring classdef getinstanceoutputfilebase isreference m_filename convertnametofile m_filename qc string class def get file base const if m templatemaster return m templatemaster get file base else return m filename qcstring classdef getfilebase m_templatemaster m_templatemaster getfilebase m_filename qc string class def get source file base const if m templatemaster return m templatemaster get source file base else return convert name to file m filename source qcstring classdef getsourcefilebase m_templatemaster m_templatemaster getsourcefilebase convertnametofile m_filename qc string class def get reference const if m templatemaster return m templatemaster get reference else return definition get reference qcstring classdef getreference m_templatemaster m_templatemaster getreference getreference bool class def is reference const if m templatemaster return m templatemaster is reference else return definition is reference classdef isreference m_templatemaster m_templatemaster isreference isreference bool class def has documentation const return definition has documentation classdef hasdocumentation hasdocumentation qc string class def display name const static bool hide scope names config getbool hide scope names static bool optimize output for java config getbool optimize output java qc string n if hide scope names n m classname else n qualified name with template parameters if optimize output for java n substitute n if m comptype class def protocol n right 2 p n n left n length 2 return n qcstring classdef displayname hidescopenames config_getbool hide_scope_names optimizeoutputforjava config_getbool optimize_output_java qcstring hidescopenames m_classname qualifiednamewithtemplateparameters optimizeoutputforjava m_comptype classdef qc string class def compound type string const if m comptype interface m isobjc return class switch m comptype case class return class case struct return struct case union return union case interface return interface case protocol return protocol case category return category case exception return exception default return unknown qcstring classdef compoundtypestring m_comptype m_isobjc m_comptype void class def write documentation output list ol qc string page type page type compound type string toupper page type at 1 qc string page title the translator tr compound reference display name m comptype interface m isobjc class m comptype m tempargs 0 start file ol get output file base name page title if get outer scope doxygen global scope write navigation path ol start title ol get output file base ol parse text page title add group list to title ol this end title ol get output file base name ol push generator state ol disable all but output generator html ol write string doxytag class ol docify name ol write string if m inherits count 0 base class list iterator bli m inherits ol write string doxytag inherits base class def bcd 0 bool first true for bli to first bcd bli current bli if first ol write string ol docify bcd class def name first false ol write string ol pop generator state if config getbool searchengine doxygen search index set current doc page title get output file base doxygen search index add word local name true ol start text block printf class s brief s doc s n name data brief description data documentation data bool example flag has examples write brief description if brief description is empty if config getbool details at top ol parse doc brief file brief line this 0 brief description true false ol write string n ol push generator state ol disable all but output generator html ol start text link 0 details if config getbool repeat brief documentation is empty example flag ol parse text the translator tr more ol end text link ol pop generator state ol push generator state ol disable output generator rtf ol new paragraph ol pop generator state ol write synopsis if m incinfo config getbool show include files qc string nm m incinfo include name is empty m incinfo file def m incinfo file def doc name data m incinfo include name data if nm is empty ol start typewriter bool isid lor java nm right 4 idl nm right 5 pidl nm right 5 java if isid lor java ol docify import else if is objectivec ol docify import else ol docify include if m incinfo local isid lor java ol docify else ol docify ol push generator state ol disable output generator html ol docify nm ol disable all but output generator html ol enable output generator html if m incinfo file def ol write object link 0 m incinfo file def include name 0 nm else ol docify nm ol pop generator state if m incinfo local isid lor java ol docify else ol docify if isid lor java ol docify ol end typewriter ol new paragraph if config getstring generate tagfile is empty doxygen tag file compound kind compound type string doxygen tag file if is objectivec doxygen tag file objc yes doxygen tag file endl doxygen tag file name convert toxml name name endl doxygen tag file filename convert toxml get output file base doxygen html file extension filename endl if m tempargs argument list iterator ali m tempargs argument a for a ali current ali doxygen tag file templarg convert toxml a name templarg endl if config getbool class diagrams ol disable all but output generator man write super classes int count if count m inherits count 0 parse text ol the translator tr inherits qc string inherit line the translator tr inherits list m inherits count q reg exp marker 0 9 int index 0 new index match len now replace all markers in inherit line with links to the classes while new index marker match inherit line index match len 1 ol parse text inherit line mid index new index index bool ok uint entry index inherit line mid new index 1 match len 1 tou int ok base class def bcd m inherits at entry index if ok bcd class def cd bcd class def if cd is linkable if config getstring generate tagfile is empty doxygen tag file base if bcd prot protected doxygen tag file protection protected else if bcd prot private doxygen tag file protection private if bcd virt virtual doxygen tag file virtualness virtual doxygen tag file convert toxml cd name base endl ol write object link cd get reference cd get output file base 0 cd display name bcd templ specifiers else ol docify cd display name else err error invalid marker d in inherits list n entry index index new index match len ol parse text inherit line right inherit line length index ol new paragraph write subclasses if count m inheritedby count 0 qc string inherit line the translator tr inherited by list m inheritedby count q reg exp marker 0 9 int index 0 new index match len now replace all markers in inherit line with links to the classes while new index marker match inherit line index match len 1 ol parse text inherit line mid index new index index bool ok uint entry index inherit line mid new index 1 match len 1 tou int ok base class def bcd m inheritedby at entry index if ok bcd class def cd bcd class def if cd is linkable ol write object link cd get reference cd get output file base 0 cd display name else ol docify cd display name write inheritance specifier ol bcd index new index match len ol parse text inherit line right inherit line length index ol new paragraph if config getbool class diagrams ol enable all count 0 base class def ibcd ibcd m inheritedby first while ibcd class def icd ibcd class def if icd is visible in hierarchy count ibcd m inheritedby next ibcd m inherits first while ibcd class def icd ibcd class def if icd is visible in hierarchy count ibcd m inherits next if config getbool have dot config getbool class graph write class diagram using dot dot class graph inheritance graph this dot node inheritance config getint max dot graph depth if inheritance graph is trivial ol push generator state ol disable output generator man ol start dot graph ol parse text the translator tr class diagram display name ol end dot graph inheritance graph if config getbool generate legend ol push generator state ol disable all but output generator html ol write string center font size 2 ol start html link relative path to root 0 graph legend doxygen html file extension ol docify the translator tr legend ol end html link ol write string font center ol pop generator state ol pop generator state else if config getbool class diagrams count 0 write class diagram using build in generator class diagram diagram this create a diagram of this class ol start class diagram ol disable output generator man ol parse text the translator tr class diagram display name ol enable output generator man ol end class diagram diagram get output file base display name if config getbool have dot config getbool collaboration graph dot class graph usage impl graph this dot node collaboration config getint max dot graph depth if usage impl graph is trivial ol push generator state ol disable output generator man ol start dot graph ol parse text the translator tr collaboration diagram display name ol end dot graph usage impl graph if config getbool generate legend ol disable all but output generator html ol write string center font size 2 ol start html link relative path to root 0 graph legend doxygen html file extension ol docify the translator tr legend ol end html link ol write string font center ol pop generator state write link to list of all members html only if m allmembernameinfosdict count 0 config getbool classdef writedocumentation outputlist qcstring pagetype pagetype compoundtypestring pagetype qcstring pagetitle thetranslator trcompoundreference displayname m_comptype m_isobjc m_comptype m_tempargs startfile getoutputfilebase pagetitle getouterscope globalscope writenavigationpath starttitle getoutputfilebase parsetext pagetitle addgrouplisttotitle endtitle getoutputfilebase pushgeneratorstate disableallbut outputgenerator writestring writestring m_inherits baseclasslistiterator m_inherits writestring baseclassdef tofirst writestring classdef writestring popgeneratorstate config_getbool searchindex setcurrentdoc pagetitle getoutputfilebase searchindex addword localname starttextblock briefdescription exampleflag hasexamples briefdescription isempty config_getbool details_at_top parsedoc brieffile briefline briefdescription writestring pushgeneratorstate disableallbut outputgenerator starttextlink _details config_getbool repeat_brief isempty exampleflag parsetext thetranslator trmore endtextlink popgeneratorstate pushgeneratorstate outputgenerator newparagraph popgeneratorstate writesynopsis m_incinfo config_getbool show_include_files qcstring m_incinfo includename isempty m_incinfo filedef m_incinfo filedef docname m_incinfo includename isempty starttypewriter isidlorjava isidlorjava isobjectivec m_incinfo isidlorjava pushgeneratorstate outputgenerator disableallbut outputgenerator outputgenerator m_incinfo filedef writeobjectlink m_incinfo filedef includename popgeneratorstate m_incinfo isidlorjava isidlorjava endtypewriter newparagraph config_getstring generate_tagfile isempty tagfile compoundtypestring tagfile isobjectivec tagfile tagfile tagfile converttoxml tagfile converttoxml getoutputfilebase htmlfileextension m_tempargs argumentlistiterator m_tempargs tagfile converttoxml config_getbool class_diagrams disableallbut outputgenerator m_inherits parsetext thetranslator trinherits qcstring inheritline thetranslator trinheritslist m_inherits qregexp newindex matchlen inheritline newindex inheritline matchlen parsetext inheritline newindex entryindex inheritline newindex matchlen touint baseclassdef m_inherits entryindex classdef classdef islinkable config_getstring generate_tagfile isempty tagfile tagfile tagfile tagfile tagfile converttoxml writeobjectlink getreference getoutputfilebase displayname templspecifiers displayname entryindex newindex matchlen parsetext inheritline inheritline newparagraph m_inheritedby qcstring inheritline thetranslator trinheritedbylist m_inheritedby qregexp newindex matchlen inheritline newindex inheritline matchlen parsetext inheritline newindex entryindex inheritline newindex matchlen touint baseclassdef m_inheritedby entryindex classdef classdef islinkable writeobjectlink getreference getoutputfilebase displayname displayname writeinheritancespecifier newindex matchlen parsetext inheritline inheritline newparagraph config_getbool class_diagrams enableall baseclassdef m_inheritedby classdef classdef isvisibleinhierarchy m_inheritedby m_inherits classdef classdef isvisibleinhierarchy m_inherits config_getbool have_dot config_getbool class_graph dotclassgraph inheritancegraph dotnode config_getint max_dot_graph_depth inheritancegraph istrivial pushgeneratorstate outputgenerator startdotgraph parsetext thetranslator trclassdiagram displayname enddotgraph inheritancegraph config_getbool generate_legend pushgeneratorstate disableallbut outputgenerator writestring starthtmllink relativepathtoroot graph_legend htmlfileextension thetranslator trlegend endhtmllink writestring popgeneratorstate popgeneratorstate config_getbool class_diagrams classdiagram startclassdiagram outputgenerator parsetext thetranslator trclassdiagram displayname outputgenerator endclassdiagram getoutputfilebase displayname config_getbool have_dot config_getbool collaboration_graph dotclassgraph usageimplgraph dotnode config_getint max_dot_graph_depth usageimplgraph istrivial pushgeneratorstate outputgenerator startdotgraph parsetext thetranslator trcollaborationdiagram displayname enddotgraph usageimplgraph config_getbool generate_legend disableallbut outputgenerator writestring starthtmllink relativepathtoroot graph_legend htmlfileextension thetranslator trlegend endhtmllink writestring popgeneratorstate m_allmembernameinfosdict config_getbool void class def write documentation for inner classes output list ol write inner classes after the parent so the tag files contain the definition in proper order if m innerclasses classs dict iterator cli m innerclasses class def inner cd for cli to first inner cd cli current cli if inner cd is linkable in project inner cd template master 0 inner cd protection private config getbool extract private msg generating docs for nested compound s n inner cd name data inner cd write documentation ol inner cd write member list ol inner cd write documentation for inner classes ol classdef writedocumentationforinnerclasses outputlist m_innerclasses classsdict m_innerclasses classdef innercd tofirst innercd innercd islinkableinproject innercd templatemaster innercd config_getbool extract_private innercd innercd writedocumentation innercd writememberlist innercd writedocumentationforinnerclasses void class def write member documentation output list ol member definitions detailed documentation if config getbool separate member pages ol disable output generator html typedef members write documentation ol name this the translator tr member typedef documentation enum members write documentation ol name this the translator tr member enumeration documentation constructors write documentation ol name this the translator tr constructor documentation function members write documentation ol name this the translator tr member function documentation related members write documentation ol name this the translator tr related function documentation variable members write documentation ol name this the translator tr member data documentation property members write documentation ol name this the translator tr property documentation event members write documentation ol name this the translator tr event documentation if config getbool separate member pages ol enable output generator html classdef writememberdocumentation outputlist config_getbool separate_member_pages outputgenerator typedefmembers writedocumentation thetranslator trmembertypedefdocumentation enummembers writedocumentation thetranslator trmemberenumerationdocumentation writedocumentation thetranslator trconstructordocumentation functionmembers writedocumentation thetranslator trmemberfunctiondocumentation relatedmembers writedocumentation thetranslator trrelatedfunctiondocumentation variablemembers writedocumentation thetranslator trmemberdatadocumentation propertymembers writedocumentation thetranslator trpropertydocumentation eventmembers writedocumentation thetranslator treventdocumentation config_getbool separate_member_pages outputgenerator void class def write member pages output list ol member definitions on separate pages ol push generator state ol disable all but output generator html typedef members write documentation page ol name this enum members write documentation page ol name this constructors write documentation page ol name this function members write documentation page ol name this related members write documentation page ol name this variable members write documentation page ol name this property members write documentation page ol name this event members write documentation page ol name this ol pop generator state classdef writememberpages outputlist pushgeneratorstate disableallbut outputgenerator typedefmembers writedocumentationpage enummembers writedocumentationpage writedocumentationpage functionmembers writedocumentationpage relatedmembers writedocumentationpage variablemembers writedocumentationpage propertymembers writedocumentationpage eventmembers writedocumentationpage popgeneratorstate void class def write member list output list ol if m allmembernameinfosdict count 0 config getbool optimize output for c return only for html ol push generator state ol disable all but output generator html start file ol m memlistfilename m memlistfilename the translator tr member list start title ol 0 ol parse text display name the translator tr member list end title ol 0 0 ol parse text the translator tr this is the list of all members ol write object link get reference get output file base 0 display name ol parse text the translator tr including inherited members ol start item list ol write string p table n member name info mni m allmembernameinfolist first member name infos dict iterator mnii m allmembernameinfosdict member name info mni for mnii to first mni mnii current mnii member info mi mni first while mi member def md mi member def class def cd md get class def protection prot mi prot specifier virt md virtualness printf s member s of class s md protection d mi prot d prot d inherited d n name data md name data cd name data md protection mi prot prot mi inherited if cd md name is empty md name 0 bool member written false if cd is linkable md is linkable create a link to the documentation qc string name mi ambiguity resolution scope md name ol write list item ol write string tr class memlist td if cd is objectivec if md is objc method if md is static ol write string nbsp td td else ol write string nbsp td td else ol write string td td if md is objc method ol write object link md get reference md get output file base md anchor md name else definition bd md get group def if bd 0 bd cd ol write object link md get reference md get output file base md anchor name if md is function md is signal md is slot md is friend md args string ol docify md args string else if md is enumerate ol parse text the translator tr enum name else if md is enum value ol parse text the translator tr enum value else if md is typedef ol docify typedef else if md is friend strcmp md type string friend class ol docify class ol write string n ol write string td member written true else if config getbool hide undoc members md protection private config getbool extract private md is friend no documentation generate link to the class instead ol write list item ol write string tr bgcolor f0f0f0 td if cd is objectivec if md is objc method if md is static ol write string nbsp td td else ol write string nbsp td td else ol write string td td ol start bold ol docify md name ol end bold if md is objc method if md is function md is signal md is slot ol docify md args string else if md is enumerate ol parse text the translator tr enum name else if md is enum value ol parse text the translator tr enum value else if md is typedef ol docify typedef ol write string ol parse text the translator tr defined in if cd is linkable ol write object link cd get reference cd get output file base 0 cd display name else ol start bold ol docify cd display name ol end bold ol write string ol write string td member written true if member written ol write string td ol write object link cd get reference cd get output file base 0 cd display name ol write string td ol write string td if prot public virt normal m isobjc md is friend md is related md is explicit md is mutable md is inline config getbool inline info md is signal md is slot md is static member written ol start typewriter ol docify q str list sl if md is friend sl append friend else if md is related sl append related else if config getbool inline info md is inline sl append inline if md is explicit sl append explicit if md is mutable sl append mutable if prot protected sl append protected else if prot private sl append private else if prot package sl append package if virt virtual m isobjc sl append virtual else if virt pure sl append pure virtual if md is static sl append static if md is signal sl append signal if md is slot sl append slot const char s sl first while s ol docify s s sl next if s ol docify ol docify ol end typewriter if member written ol write string td ol write string tr n mi mni next ol end item list ol write string table end file ol ol pop generator state classdef writememberlist outputlist m_allmembernameinfosdict config_getbool optimize_output_for_c pushgeneratorstate disableallbut outputgenerator startfile m_memlistfilename m_memlistfilename thetranslator trmemberlist starttitle parsetext displayname thetranslator trmemberlist endtitle parsetext thetranslator trthisisthelistofallmembers writeobjectlink getreference getoutputfilebase displayname parsetext thetranslator trincludinginheritedmembers startitemlist writestring membernameinfo m_allmembernameinfolist membernameinfosdict m_allmembernameinfosdict membernameinfo tofirst memberinfo memberdef memberdef classdef getclassdef isempty memberwritten islinkable islinkable qcstring ambiguityresolutionscope writelistitem writestring isobjectivec isobjcmethod isstatic writestring writestring writestring isobjcmethod writeobjectlink getreference getoutputfilebase getgroupdef writeobjectlink getreference getoutputfilebase isfunction issignal isslot isfriend argsstring argsstring isenumerate parsetext thetranslator trenumname isenumvalue parsetext thetranslator trenumvalue istypedef isfriend typestring writestring writestring memberwritten config_getbool hide_undoc_members config_getbool extract_private isfriend writelistitem writestring isobjectivec isobjcmethod isstatic writestring writestring writestring startbold endbold isobjcmethod isfunction issignal isslot argsstring isenumerate parsetext thetranslator trenumname isenumvalue parsetext thetranslator trenumvalue istypedef writestring parsetext thetranslator trdefinedin islinkable writeobjectlink getreference getoutputfilebase displayname startbold displayname endbold writestring writestring memberwritten memberwritten writestring writeobjectlink getreference getoutputfilebase displayname writestring writestring m_isobjc isfriend isrelated isexplicit ismutable isinline config_getbool inline_info issignal isslot isstatic memberwritten starttypewriter qstrlist isfriend isrelated config_getbool inline_info isinline isexplicit ismutable m_isobjc isstatic issignal isslot endtypewriter memberwritten writestring writestring enditemlist writestring endfile popgeneratorstate void class def write declaration output list ol member def md bool in group ol insert member align printf class name s in group d n name data in group if in group md md get class def this return ol docify compound type string int ri name find rev if ri 1 ri name length qc string cn name right name length ri 2 if cn is empty cn at 0 md ol docify if is linkable ol write object link 0 0 md anchor cn else ol start bold ol docify cn ol end bold ol docify ol end member item write user defined member groups member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg set in group in group mg write plain declarations ol this 0 0 0 pub types set in group in group pub types write plain declarations ol this 0 0 0 pub methods set in group in group pub methods write plain declarations ol this 0 0 0 pub attribs set in group in group pub attribs write plain declarations ol this 0 0 0 pub slots set in group in group pub slots write plain declarations ol this 0 0 0 signals set in group in group signals write plain declarations ol this 0 0 0 dcop methods set in group in group dcop methods write plain declarations ol this 0 0 0 properties set in group in group properties write plain declarations ol this 0 0 0 events set in group in group events write plain declarations ol this 0 0 0 pub static methods set in group in group pub static methods write plain declarations ol this 0 0 0 pub static attribs set in group in group pub static attribs write plain declarations ol this 0 0 0 pro types set in group in group pro types write plain declarations ol this 0 0 0 pro methods set in group in group pro methods write plain declarations ol this 0 0 0 pro attribs set in group in group pro attribs write plain declarations ol this 0 0 0 pro slots set in group in group pro slots write plain declarations ol this 0 0 0 pro static methods set in group in group pro static methods write plain declarations ol this 0 0 0 pro static attribs set in group in group pro static attribs write plain declarations ol this 0 0 0 pac types set in group in group pac types write plain declarations ol this 0 0 0 pac methods set in group in group pac methods write plain declarations ol this 0 0 0 pac attribs set in group in group pac attribs write plain declarations ol this 0 0 0 pac static methods set in group in group pac static methods write plain declarations ol this 0 0 0 pac static attribs set in group in group pac static attribs write plain declarations ol this 0 0 0 if config getbool extract private pri types set in group in group pri types write plain declarations ol this 0 0 0 pri methods set in group in group pri methods write plain declarations ol this 0 0 0 pri attribs set in group in group pri attribs write plain declarations ol this 0 0 0 pri slots set in group in group pri slots write plain declarations ol this 0 0 0 pri static methods set in group in group pri static methods write plain declarations ol this 0 0 0 pri static attribs set in group in group pri static attribs write plain declarations ol this 0 0 0 friends set in group in group friends write plain declarations ol this 0 0 0 related set in group in group related write plain declarations ol this 0 0 0 classdef writedeclaration outputlist memberdef ingroup insertmemberalign classname ingroup ingroup ingroup getclassdef compoundtypestring findrev qcstring isempty islinkable writeobjectlink startbold endbold endmemberitem membergroupsdict membergroupsdict membergroup setingroup ingroup writeplaindeclarations pubtypes setingroup ingroup pubtypes writeplaindeclarations pubmethods setingroup ingroup pubmethods writeplaindeclarations pubattribs setingroup ingroup pubattribs writeplaindeclarations pubslots setingroup ingroup pubslots writeplaindeclarations setingroup ingroup writeplaindeclarations dcopmethods setingroup ingroup dcopmethods writeplaindeclarations setingroup ingroup writeplaindeclarations setingroup ingroup writeplaindeclarations pubstaticmethods setingroup ingroup pubstaticmethods writeplaindeclarations pubstaticattribs setingroup ingroup pubstaticattribs writeplaindeclarations protypes setingroup ingroup protypes writeplaindeclarations promethods setingroup ingroup promethods writeplaindeclarations proattribs setingroup ingroup proattribs writeplaindeclarations proslots setingroup ingroup proslots writeplaindeclarations prostaticmethods setingroup ingroup prostaticmethods writeplaindeclarations prostaticattribs setingroup ingroup prostaticattribs writeplaindeclarations pactypes setingroup ingroup pactypes writeplaindeclarations pacmethods setingroup ingroup pacmethods writeplaindeclarations pacattribs setingroup ingroup pacattribs writeplaindeclarations pacstaticmethods setingroup ingroup pacstaticmethods writeplaindeclarations pacstaticattribs setingroup ingroup pacstaticattribs writeplaindeclarations config_getbool extract_private pritypes setingroup ingroup pritypes writeplaindeclarations primethods setingroup ingroup primethods writeplaindeclarations priattribs setingroup ingroup priattribs writeplaindeclarations prislots setingroup ingroup prislots writeplaindeclarations pristaticmethods setingroup ingroup pristaticmethods writeplaindeclarations pristaticattribs setingroup ingroup pristaticattribs writeplaindeclarations setingroup ingroup writeplaindeclarations setingroup ingroup writeplaindeclarations void class def write detailed description output list ol const qc string page type bool example flag if brief description is empty config getbool repeat brief documentation is empty config getbool source browser get start body line 1 get body def example flag ol write ruler ol push generator state ol disable output generator latex ol disable output generator rtf ol write anchor 0 details ol pop generator state ol start group header ol parse text the translator tr detailed description ol end group header ol start text block write template spec ol this page type repeat brief description if brief description is empty config getbool repeat brief ol parse doc brief file brief line this 0 brief description false false if brief description is empty config getbool repeat brief documentation is empty ol push generator state ol disable output generator man ol new paragraph ol enable all ol disable all but output generator man ol write string n n ol pop generator state write documentation if documentation is empty ol push generator state ol disable all but output generator rtf ol new paragraph ol pop generator state ol parse doc doc file doc line this 0 documentation n true false write examples if example flag ol start simple sect base output doc interface examples 0 0 the translator tr examples ol write desc item ol new paragraph write example ol m examplesdict ol end simple sect ol new paragraph write source def ol name ol end text block else write template spec ol this page type classdef writedetaileddescription outputlist qcstring pagetype exampleflag briefdescription isempty config_getbool repeat_brief isempty config_getbool source_browser getstartbodyline getbodydef exampleflag writeruler pushgeneratorstate outputgenerator outputgenerator writeanchor _details popgeneratorstate startgroupheader parsetext thetranslator trdetaileddescription endgroupheader starttextblock writetemplatespec pagetype briefdescription isempty config_getbool repeat_brief parsedoc brieffile briefline briefdescription briefdescription isempty config_getbool repeat_brief isempty pushgeneratorstate outputgenerator newparagraph enableall disableallbut outputgenerator writestring popgeneratorstate isempty pushgeneratorstate disableallbut outputgenerator newparagraph popgeneratorstate parsedoc docfile docline exampleflag startsimplesect baseoutputdocinterface thetranslator trexamples writedescitem newparagraph writeexample m_examplesdict endsimplesect newparagraph writesourcedef endtextblock writetemplatespec pagetype void class def write quick member links output list ol member def current md const static bool create sub dirs config getbool create subdirs ol write string div class navtab n ol write string table n member name infos dict iterator mnili m allmembernameinfosdict member name info mni for mni mnili current mnili member name info iterator mnii mni member info mi for mnii to first mi mnii current mnii member def md mi member def if md get class def this md is linkable ol write string tr td class navtab if md is linkable in project if md current md selected item highlight ol write string a class qindexhl else ol write string a class qindex ol write string href if create sub dirs ol write string ol write string md get output file base doxygen html file extension md anchor ol write string ol write string md name ol write string a ol write string td tr n ol write string table n ol write string div n classdef writequickmemberlinks outputlist memberdef currentmd createsubdirs config_getbool create_subdirs writestring writestring membernameinfosdict m_allmembernameinfosdict membernameinfo membernameinfoiterator memberinfo tofirst memberdef memberdef getclassdef islinkable writestring islinkableinproject currentmd writestring writestring writestring createsubdirs writestring writestring getoutputfilebase htmlfileextension writestring writestring writestring writestring writestring writestring bool class def is linkable in project const if m templatemaster return m templatemaster is linkable in project else return name is empty no name m artificial name find 1 anonymous compound m prot private config getbool extract private private m islocal config getbool extract local classes local has documentation documented is reference not an external reference m isstatic config getbool extract static classdef islinkableinproject m_templatemaster m_templatemaster islinkableinproject isempty m_artificial m_prot config_getbool extract_private m_islocal config_getbool extract_local_classes hasdocumentation isreference m_isstatic config_getbool extract_static bool class def is linkable const if m templatemaster return m templatemaster is linkable else return is linkable in project is reference classdef islinkable m_templatemaster m_templatemaster islinkable islinkableinproject isreference bool class def is visible in hierarchy return show all classes or a subclass is visible config getbool allexternals has non reference super class and not an annonymous compound name find 1 not an artifically introduced class m artificial and not privately inherited m prot private config getbool extract private documented or shown anyway or documentation is external has documentation config getbool hide undoc classes m templatemaster m templatemaster has documentation is reference is not part of an unnamed namespace or shown anyway m isstatic config getbool extract static classdef isvisibleinhierarchy config_getbool hasnonreferencesuperclass m_artificial m_prot config_getbool extract_private hasdocumentation config_getbool hide_undoc_classes m_templatemaster m_templatemaster hasdocumentation isreference m_isstatic config_getbool extract_static member def class def get member by name const qc string name member def xmd 0 member name info mni m allmembernameinfosdict find name if mni const int max inheritance depth 100000 int mdist max inheritance depth member name info iterator mnii mni member info mi for mnii to first mi mnii current mnii class def mcd mi member def get class def int m min class distance this mcd printf found member in s linkable d m d n mcd name data mcd is linkable m if m mdist mcd is linkable mdist m xmd mi member def printf get member by name s p n name data xmd return xmd memberdef classdef getmemberbyname qcstring memberdef membernameinfo m_allmembernameinfosdict maxinheritancedepth maxinheritancedepth membernameinfoiterator memberinfo tofirst classdef memberdef getclassdef minclassdistance islinkable islinkable memberdef getmemberbyname bool class def is base class class def bcd bool follow instances int level bool found false printf is base class cd s looking for s n cd name data bcd name data if level 256 err possible recursive class relation while inside s and looking for s n name data bcd name data return false base class list iterator bcli base classes for bcli current found bcli class def ccd bcli current class def if follow instances ccd template master ccd ccd template master printf is base class baseclass s n ccd name data if ccd bcd found true else found ccd is base class bcd follow instances level 1 return found classdef isbaseclass classdef followinstances isbaseclass baseclasslistiterator baseclasses classdef classdef followinstances templatemaster templatemaster isbaseclass isbaseclass followinstances definition class def find inner compound const char name if name 0 return 0 return m innerclasses find name classdef findinnercompound m_innerclasses void class def get template parameter lists q list argument list lists const definition d get outer scope if d if d definition type definition type class class def cd class def d cd get template parameter lists lists if template arguments lists append template arguments classdef gettemplateparameterlists qlist argumentlist getouterscope definitiontype typeclass classdef classdef gettemplateparameterlists templatearguments templatearguments q list argument list actual params const static bool optimize output java config getbool optimize output java printf qualified name with template parameters local name s n local name data qc string sc name definition d get outer scope if d if d definition type definition type class class def cd class def d sc name cd qualified name with template parameters actual params else sc name d qualified name qc string scope separator if optimize output java scope separator else scope separator if sc name is empty sc name scope separator sc name local name argument list al 0 bool is specialization local name find 1 if template arguments if actual params al actual params current if is specialization sc name temp arg list to string al actual params next else if is specialization sc name temp arg list to string template arguments printf qualified name with template parameters scope s qualified name s n name data sc name data return sc name qlist argumentlist actualparams optimizeoutputjava config_getbool optimize_output_java qualifiednamewithtemplateparameters localname localname qcstring scname getouterscope definitiontype typeclass classdef classdef scname qualifiednamewithtemplateparameters actualparams scname qualifiedname qcstring scopeseparator optimizeoutputjava scopeseparator scopeseparator scname isempty scname scopeseparator scname localname argumentlist isspecialization localname templatearguments actualparams actualparams isspecialization scname temparglisttostring actualparams isspecialization scname temparglisttostring templatearguments qualifiednamewithtemplateparameters qualifiedname scname scname qc string class def class name const return m classname qcstring classdef classname m_classname specifier s const char t printf insert base class s into s n cd name data name data inherits in sort new base class def cd p s t m inherits append new base class def cd n p s t insort baseclassdef m_inherits baseclassdef specifier s const char t printf insert sub class s into s n cd name data name data m inheritedby in sort new base class def cd 0 p s t m_inheritedby insort baseclassdef const char include name bool local bool force printf class def set include file p s d d n fd include name local force if m incinfo m incinfo new include info if include name m incinfo include name is empty fd 0 m incinfo file def 0 printf setting file info n m incinfo file def fd m incinfo include name include name m incinfo local local if force include name m incinfo include name include name includename classdef setincludefile includename m_incinfo m_incinfo includeinfo includename m_incinfo includename isempty m_incinfo filedef m_incinfo filedef m_incinfo includename includename m_incinfo includename m_incinfo includename includename void class def insert member member def md internal insert member md md protection true classdef insertmember memberdef internalinsertmember void class def insert used file const char f if m files find f 1 m files append f if m templateinstances q dict iterator class def qdi m templateinstances class def cd for qdi to first cd qdi current qdi cd insert used file f classdef insertusedfile m_files m_files m_templateinstances qdictiterator classdef m_templateinstances classdef tofirst insertusedfile void class def compute anchors class def context config getbool inline inherited memb this 0 set anchors context a pub methods set anchors context b pro methods set anchors context c pac methods set anchors context d pri methods set anchors context e pub static methods set anchors context f pro static methods set anchors context g pac static methods set anchors context h pri static methods set anchors context i pub slots set anchors context j pro slots set anchors context k pri slots set anchors context l signals set anchors context m related set anchors context n friends set anchors context o pub attribs set anchors context p pro attribs set anchors context q pac attribs set anchors context r pri attribs set anchors context s pub static attribs set anchors context t pro static attribs set anchors context u pac static attribs set anchors context v pri static attribs set anchors context w pub types set anchors context x pro types set anchors context y pri types set anchors context z dcop methods set anchors context 0 properties set anchors context 1 events member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg set anchors context classdef computeanchors classdef config_getbool inline_inherited_memb setanchors pubmethods setanchors promethods setanchors pacmethods setanchors primethods setanchors pubstaticmethods setanchors prostaticmethods setanchors pacstaticmethods setanchors pristaticmethods setanchors pubslots setanchors proslots setanchors prislots setanchors setanchors setanchors setanchors pubattribs setanchors proattribs setanchors pacattribs setanchors priattribs setanchors pubstaticattribs setanchors prostaticattribs setanchors pacstaticattribs setanchors pristaticattribs setanchors pubtypes setanchors protypes setanchors pritypes setanchors dcopmethods setanchors setanchors membergroupsdict membergroupsdict membergroup setanchors const char file if m examplesdict m examplesdict find name str example e new example e anchor anchor e name name str e file file m examplesdict in sort name str e return true return false m_examplesdict m_examplesdict namestr namestr m_examplesdict insort namestr void class def add members to member group add members to member group pub types member groups dict this add members to member group pub methods member groups dict this add members to member group pub attribs member groups dict this add members to member group pub slots member groups dict this add members to member group signals member groups dict this add members to member group dcop methods member groups dict this add members to member group pub static methods member groups dict this add members to member group pub static attribs member groups dict this add members to member group pac types member groups dict this add members to member group pac methods member groups dict this add members to member group pac attribs member groups dict this add members to member group pac static methods member groups dict this add members to member group pac static attribs member groups dict this add members to member group pro types member groups dict this add members to member group pro methods member groups dict this add members to member group pro attribs member groups dict this add members to member group pro slots member groups dict this add members to member group pro static methods member groups dict this add members to member group pro static attribs member groups dict this add members to member group pri types member groups dict this add members to member group pri methods member groups dict this add members to member group pri attribs member groups dict this add members to member group pri slots member groups dict this add members to member group pri static methods member groups dict this add members to member group pri static attribs member groups dict this add members to member group friends member groups dict this add members to member group related member groups dict this add members to member group properties member groups dict this add members to member group events member groups dict this add members inside sections to their groups member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli if mg all members in same section m subgrouping printf add to declaration section s n mg header data mg add to declaration section classdef addmemberstomembergroup addmemberstomembergroup pubtypes membergroupsdict addmemberstomembergroup pubmethods membergroupsdict addmemberstomembergroup pubattribs membergroupsdict addmemberstomembergroup pubslots membergroupsdict addmemberstomembergroup membergroupsdict addmemberstomembergroup dcopmethods membergroupsdict addmemberstomembergroup pubstaticmethods membergroupsdict addmemberstomembergroup pubstaticattribs membergroupsdict addmemberstomembergroup pactypes membergroupsdict addmemberstomembergroup pacmethods membergroupsdict addmemberstomembergroup pacattribs membergroupsdict addmemberstomembergroup pacstaticmethods membergroupsdict addmemberstomembergroup pacstaticattribs membergroupsdict addmemberstomembergroup protypes membergroupsdict addmemberstomembergroup promethods membergroupsdict addmemberstomembergroup proattribs membergroupsdict addmemberstomembergroup proslots membergroupsdict addmemberstomembergroup prostaticmethods membergroupsdict addmemberstomembergroup prostaticattribs membergroupsdict addmemberstomembergroup pritypes membergroupsdict addmemberstomembergroup primethods membergroupsdict addmemberstomembergroup priattribs membergroupsdict addmemberstomembergroup prislots membergroupsdict addmemberstomembergroup pristaticmethods membergroupsdict addmemberstomembergroup pristaticattribs membergroupsdict addmemberstomembergroup membergroupsdict addmemberstomembergroup membergroupsdict addmemberstomembergroup membergroupsdict addmemberstomembergroup membergroupsdict membergroupsdict membergroupsdict membergroup allmembersinsamesection m_subgrouping addtodeclarationsection addtodeclarationsection void class def distribute member group documentation member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg distribute member group documentation classdef distributemembergroupdocumentation membergroupsdict membergroupsdict membergroup distributemembergroupdocumentation void class def find sections in documentation doc find sections documentation this 0 doc file member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg find sections in documentation pub types find sections in documentation pub methods find sections in documentation pub attribs find sections in documentation pub slots find sections in documentation signals find sections in documentation dcop methods find sections in documentation pub static methods find sections in documentation pub static attribs find sections in documentation pac types find sections in documentation pac methods find sections in documentation pac attribs find sections in documentation pac static methods find sections in documentation pac static attribs find sections in documentation pro types find sections in documentation pro methods find sections in documentation pro attribs find sections in documentation pro slots find sections in documentation pro static methods find sections in documentation pro static attribs find sections in documentation pri types find sections in documentation pri methods find sections in documentation pri attribs find sections in documentation pri slots find sections in documentation pri static methods find sections in documentation pri static attribs find sections in documentation friends find sections in documentation related find sections in documentation properties find sections in documentation events find sections in documentation classdef findsectionsindocumentation docfindsections docfile membergroupsdict membergroupsdict membergroup findsectionsindocumentation pubtypes findsectionsindocumentation pubmethods findsectionsindocumentation pubattribs findsectionsindocumentation pubslots findsectionsindocumentation findsectionsindocumentation dcopmethods findsectionsindocumentation pubstaticmethods findsectionsindocumentation pubstaticattribs findsectionsindocumentation pactypes findsectionsindocumentation pacmethods findsectionsindocumentation pacattribs findsectionsindocumentation pacstaticmethods findsectionsindocumentation pacstaticattribs findsectionsindocumentation protypes findsectionsindocumentation promethods findsectionsindocumentation proattribs findsectionsindocumentation proslots findsectionsindocumentation prostaticmethods findsectionsindocumentation prostaticattribs findsectionsindocumentation pritypes findsectionsindocumentation primethods findsectionsindocumentation priattribs findsectionsindocumentation prislots findsectionsindocumentation pristaticmethods findsectionsindocumentation pristaticattribs findsectionsindocumentation findsectionsindocumentation findsectionsindocumentation findsectionsindocumentation findsectionsindocumentation void class def set template arguments argument list al if al 0 return if m tempargs delete m tempargs delete old list if needed m tempargs new argument list argument list iterator ali al argument a for a ali current ali m tempargs append new argument a classdef settemplatearguments argumentlist m_tempargs m_tempargs m_tempargs argumentlist argumentlistiterator m_tempargs void class def merge members if m membersmerged return m membersmerged true printf merge members for s n name data bool inline inherited members config getbool inline inherited memb base class list iterator bcli base classes base class def bcd for bcd bcli current bcli class def b class bcd class def merge the members in the base class of this inheritance branch first b class merge members member name infos dict src mnd b class m allmembernameinfosdict member name infos dict dst mnd m allmembernameinfosdict member name infos dict iterator src mnili src mnd member name info src mni for src mni src mnili current src mnili printf base member name s n src mni member name member name info dst mni if dst mni dst mnd find src mni member name a member with that name is already in the class the member may hide or reimplement the one in the sub class or there may be another path to the base class that is already visited via another branch in the class hierarchy member name info iterator src mnii src mni member info src mi for src mi src mnii current src mnii member def src md src mi member def bool found false bool ambigue false bool hidden false member name info iterator dst mnii dst mni member info dst mi class def src cd src md get class def for dst mi dst mnii current found dst mnii member def dst md dst mi member def if src md dst md different members class def dst cd dst md get class def printf is s a base class of s n src cd name data dst cd name data if src cd dst cd dst cd is base class src cd true member is in the same or a base class ifdef newmatch found match arguments2 src md get outer scope src md get file def src md argument list dst md get outer scope dst md get file def dst md argument list true else found match arguments src md argument list dst md argument list endif printf yes matching s s d n arg list to string src md argument list data arg list to string dst md argument list data found hidden hidden found else member is in a non base class multiple inheritance using the same base class printf existing member s s add scope s n dst mi ambiguity resolution scope data dst md name data dst mi scope path left dst mi scope path find 2 data qc string scope dst mi scope path left dst mi scope path find 2 if scope dst mi ambiguity resolution scope left scope length dst mi ambiguity resolution scope prepend scope ambigue true else same members do not add if base class is virtual or if scope paths are equal or if base class is an interface and thus implicitly virtual printf same member found src mi virt d dst mi virt d n src mi virt dst mi virt if src mi virt normal dst mi virt normal b class name src mi scope path dst mi scope path dst md get class def compound type interface found true else member can be reached via multiple paths in the inheritance tree printf existing member s s add scope s n dst mi ambiguity resolution scope data dst md name data dst mi scope path left dst mi scope path find 2 data qc string scope dst mi scope path left dst mi scope path find 2 if scope dst mi ambiguity resolution scope left scope length dst mi ambiguity resolution scope prepend scope ambigue true printf member s s hidden d ambigue d src mi ambig class p n src cd name data src md name data hidden ambigue src mi ambig class todo fix the case where a member is hidden by inheritance of a member with the same name but with another prototype while there is more than one path to the member in the base class due to multiple inheritance in this case it seems that the member is not reachable by prefixing a scope name either according to my compiler currently this case is shown anyway if found src md protection private protection prot src md protection if bcd prot protected prot public prot bcd prot else if bcd prot private prot bcd prot if inline inherited members if is standard func src md printf insert member s n src md name data internal insert member src md prot false specifier virt src mi virt if src mi virt normal bcd virt normal virt bcd virt member info new mi new member info src md prot virt true new mi scope path b class name src mi scope path if ambigue printf new member s s add scope s n src mi ambiguity resolution scope data src md name data b class name data qc string scope b class name if scope src mi ambiguity resolution scope left scope length new mi ambiguity resolution scope scope src mi ambiguity resolution scope copy if hidden if src mi ambig class 0 new mi ambig class b class new mi ambiguity resolution scope b class name else new mi ambig class src mi ambig class new mi ambiguity resolution scope src mi ambig class name dst mni append new mi else base class has a member that is not in the sub class copy create a deep copy of the list only the member info s will be copied not the actual member def s member name info new mni 0 new mni new member name info src mni member name copy the member s from the base to the sub class member name info iterator mnii src mni member info mi for mi mnii current mnii protection prot mi prot if bcd prot protected if prot public prot protected else if bcd prot private prot private printf s s prot d bcd prot d result d n name data mi member def name data mi prot bcd prot prot if mi prot private specifier virt mi virt if mi virt normal bcd virt normal virt bcd virt if inline inherited members if is standard func mi member def printf insert member s n mi member def name data internal insert member mi member def prot false printf adding n member info new mi new member info mi member def prot virt true new mi scope path b class name mi scope path new mi ambig class mi ambig class new mi ambiguity resolution scope mi ambiguity resolution scope copy new mni append new mi add it to the dictionary dst mnd append new mni member name new mni printf end merge members n classdef mergemembers m_membersmerged m_membersmerged mergemembers inlineinheritedmembers config_getbool inline_inherited_memb baseclasslistiterator baseclasses baseclassdef classdef bclass classdef bclass mergemembers membernameinfosdict srcmnd bclass m_allmembernameinfosdict membernameinfosdict dstmnd m_allmembernameinfosdict membernameinfosdict srcmnili srcmnd membernameinfo srcmni srcmni srcmnili srcmnili srcmni membername membernameinfo dstmni dstmni dstmnd srcmni membername membernameinfoiterator srcmnii srcmni memberinfo srcmi srcmi srcmnii srcmnii memberdef srcmd srcmi memberdef membernameinfoiterator dstmnii dstmni memberinfo dstmi classdef srccd srcmd getclassdef dstmi dstmnii dstmnii memberdef dstmd dstmi memberdef srcmd dstmd classdef dstcd dstmd getclassdef srccd dstcd srccd dstcd dstcd isbaseclass srccd matcharguments2 srcmd getouterscope srcmd getfiledef srcmd argumentlist dstmd getouterscope dstmd getfiledef dstmd argumentlist matcharguments srcmd argumentlist dstmd argumentlist arglisttostring srcmd argumentlist arglisttostring dstmd argumentlist dstmi ambiguityresolutionscope dstmd dstmi scopepath dstmi scopepath qcstring dstmi scopepath dstmi scopepath dstmi ambiguityresolutionscope dstmi ambiguityresolutionscope srcmi dstmi srcmi dstmi srcmi dstmi bclass srcmi scopepath dstmi scopepath dstmd getclassdef compoundtype dstmi ambiguityresolutionscope dstmd dstmi scopepath dstmi scopepath qcstring dstmi scopepath dstmi scopepath dstmi ambiguityresolutionscope dstmi ambiguityresolutionscope srcmi ambigclass srccd srcmd srcmi ambigclass srcmd srcmd inlineinheritedmembers isstandardfunc srcmd insertmember srcmd internalinsertmember srcmd srcmi srcmi memberinfo newmi memberinfo srcmd newmi scopepath bclass srcmi scopepath srcmi ambiguityresolutionscope srcmd bclass qcstring bclass srcmi ambiguityresolutionscope newmi ambiguityresolutionscope srcmi ambiguityresolutionscope srcmi ambigclass newmi ambigclass bclass newmi ambiguityresolutionscope bclass newmi ambigclass srcmi ambigclass newmi ambiguityresolutionscope srcmi ambigclass dstmni newmi memberinfo memberdef membernameinfo newmni newmni membernameinfo srcmni membername membernameinfoiterator srcmni memberinfo memberdef inlineinheritedmembers isstandardfunc memberdef insertmember memberdef internalinsertmember memberdef memberinfo newmi memberinfo memberdef newmi scopepath bclass scopepath newmi ambigclass ambigclass newmi ambiguityresolutionscope ambiguityresolutionscope newmni newmi dstmnd newmni membername newmni mergemembers void class def merge category class def category category m categoryof this member name infos dict src mnd category m allmembernameinfosdict member name infos dict dst mnd m allmembernameinfosdict member name infos dict iterator src mnili src mnd member name info src mni for src mni src mnili current src mnili member name info dst mni dst mnd find src mni member name if dst mni method is already defined in the class todo we should remove the other member and insert this one else new method name create a deep copy of the list only the member info s will be copied not the actual member def s member name info new mni 0 new mni new member name info src mni member name copy the member s from the category to this class member name info iterator mnii src mni member info mi for mi mnii current mnii printf adding n member info new mi new member info mi member def mi prot mi virt mi inherited new mi scope path mi scope path new mi ambig class mi ambig class new mi ambiguity resolution scope mi ambiguity resolution scope copy new mni append new mi add it to the dictionary dst mnd append new mni member name new mni classdef mergecategory classdef m_categoryof membernameinfosdict srcmnd m_allmembernameinfosdict membernameinfosdict dstmnd m_allmembernameinfosdict membernameinfosdict srcmnili srcmnd membernameinfo srcmni srcmni srcmnili srcmnili membernameinfo dstmni dstmnd srcmni membername dstmni memberinfo memberdef membernameinfo newmni newmni membernameinfo srcmni membername membernameinfoiterator srcmni memberinfo memberinfo newmi memberinfo memberdef newmi scopepath scopepath newmi ambigclass ambigclass newmi ambiguityresolutionscope ambiguityresolutionscope newmni newmi dstmnd newmni membername newmni void class def set group def for all members group def gd grouping grouppri t pri const qc string file name int start line bool has docs gd add class this printf class def set group def for all members s n gd name data member name infos dict iterator mnili m allmembernameinfosdict member name info mni for mni mnili current mnili member name info iterator mnii mni member info mi for mnii to first mi mnii current mnii member def md mi member def md set group def gd pri file name start line has docs gd insert member md true class def inner class md get class def of anonymous type if inner class inner class set group def for all members gd pri file name start line has docs classdef setgroupdefforallmembers groupdef grouppri_t qcstring filename startline hasdocs addclass classdef setgroupdefforallmembers membernameinfosdict m_allmembernameinfosdict membernameinfo membernameinfoiterator memberinfo tofirst memberdef memberdef setgroupdef filename startline hasdocs insertmember classdef innerclass getclassdefofanonymoustype innerclass innerclass setgroupdefforallmembers filename startline hasdocs void class def add inner compound definition d m innerclasses in sort d local name class def d classdef addinnercompound m_innerclasses insort localname classdef void class def add used class class def cd const char access name if m usesimplclassdict 0 m usesimplclassdict new uses class dict 17 m usesimplclassdict set auto delete true uses class def ucd m usesimplclassdict find cd name if ucd 0 ucd new uses class def cd m usesimplclassdict insert cd name ucd printf adding used class s to class s n cd name data name data ucd add accessor access name classdef addusedclass classdef accessname m_usesimplclassdict m_usesimplclassdict usesclassdict m_usesimplclassdict setautodelete usesclassdef m_usesimplclassdict usesclassdef m_usesimplclassdict addaccessor accessname void class def add used by class class def cd const char access name if m usedbyimplclassdict 0 m usedbyimplclassdict new uses class dict 17 m usedbyimplclassdict set auto delete true uses class def ucd m usedbyimplclassdict find cd name if ucd 0 ucd new uses class def cd m usedbyimplclassdict insert cd name ucd printf adding used by class s to class s n cd name data name data ucd add accessor access name classdef addusedbyclass classdef accessname m_usedbyimplclassdict m_usedbyimplclassdict usesclassdict m_usedbyimplclassdict setautodelete usesclassdef m_usedbyimplclassdict usesclassdef m_usedbyimplclassdict addaccessor accessname int start line const qc string templ spec bool fresh instance fresh instance false if m templateinstances 0 m templateinstances new q dict class def 17 class def template class m templateinstances find templ spec if template class 0 debug print debug classes 0 new template instance class s s n name data templ spec data template class new class def file name start line name templ spec class def class template class set template master this template class set outer scope get outer scope m templateinstances insert templ spec template class fresh instance true return template class startline qcstring templspec freshinstance freshinstance m_templateinstances m_templateinstances qdict classdef classdef templateclass m_templateinstances templspec templateclass templspec templateclass classdef filename startline templspec classdef templateclass settemplatemaster templateclass setouterscope getouterscope m_templateinstances templspec templateclass freshinstance templateclass class def class def get variable instance const char templ spec if m variableinstances 0 m variableinstances new q dict class def 17 m variableinstances set auto delete true class def template class m variableinstances find templ spec if template class 0 debug print debug classes 0 new template variable instance class s s n name data templ spec template class new class def code 1 name templ spec class def class 0 0 false template class add members to template instance this templ spec template class set template master this m variableinstances insert templ spec template class return template class classdef classdef getvariableinstance templspec m_variableinstances m_variableinstances qdict classdef m_variableinstances setautodelete classdef templateclass m_variableinstances templspec templateclass templspec templateclass classdef templspec classdef templateclass addmemberstotemplateinstance templspec templateclass settemplatemaster m_variableinstances templspec templateclass templateclass void class def set template base class names q dict int template names if template names 0 return if m templbaseclassnames 0 m templbaseclassnames new q dict int 17 m templbaseclassnames set auto delete true make a deep copy of the dictionary q dict iterator int qdi template names for qdi current qdi if m templbaseclassnames find qdi current key 0 m templbaseclassnames insert qdi current key new int qdi current classdef settemplatebaseclassnames qdict templatenames templatenames m_templbaseclassnames m_templbaseclassnames qdict m_templbaseclassnames setautodelete qdictiterator templatenames m_templbaseclassnames currentkey m_templbaseclassnames currentkey q dict int class def get template base class names const return m templbaseclassnames qdict classdef gettemplatebaseclassnames m_templbaseclassnames void class def add members to template instance class def cd const char templ spec printf s add members to template instance s s n name data cd name data templ spec member name infos dict iterator mnili cd m allmembernameinfosdict member name info mni for mni mnili current mnili member name info iterator mnii mni member info mi for mnii to first mi mnii current mnii argument list actual arguments new argument list string to argument list templ spec actual arguments member def md mi member def member def imd md create template instance member cd template arguments actual arguments delete actual arguments printf s set member class p n imd name data this imd set member class this imd set template master md imd set documentation md documentation md doc file md doc line imd set brief description md brief description md brief file md brief line imd set inbody documentation md inbody documentation md inbody file md inbody line imd set member specifiers md get member specifiers insert member imd printf adding member s s s to class s templ spec s n imd type string imd name data imd args string imd get class def name data templ spec insert imd in the list of all members printf adding member s class s n imd name data name data member name mn doxygen member names dict imd name if mn 0 mn new member name imd name doxygen member names dict append imd name mn mn append imd classdef addmemberstotemplateinstance classdef templspec addmemberstotemplateinstance templspec membernameinfosdict m_allmembernameinfosdict membernameinfo membernameinfoiterator memberinfo tofirst argumentlist actualarguments argumentlist stringtoargumentlist templspec actualarguments memberdef memberdef memberdef createtemplateinstancemember templatearguments actualarguments actualarguments setmemberclass setmemberclass settemplatemaster setdocumentation docfile docline setbriefdescription briefdescription brieffile briefline setinbodydocumentation inbodydocumentation inbodyfile inbodyline setmemberspecifiers getmemberspecifiers insertmember templspec typestring argsstring getclassdef templspec membername membernamesdict membername membernamesdict void class def add list references if is linkable in project return printf class def s add list references n name data add ref item xref list items the translator tr class true true get output file base display name member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg add list references this constructors add list references this typedef members add list references this enum members add list references this enum val members add list references this function members add list references this related members add list references this variable members add list references this property members add list references this event members add list references this classdef addlistreferences islinkableinproject classdef addlistreferences addrefitem xreflistitems thetranslator trclass getoutputfilebase displayname membergroupsdict membergroupsdict membergroup addlistreferences addlistreferences typedefmembers addlistreferences enummembers addlistreferences enumvalmembers addlistreferences functionmembers addlistreferences relatedmembers addlistreferences variablemembers addlistreferences propertymembers addlistreferences eventmembers addlistreferences definition def file name def line remove redundant white space nm 0 0 is symbol m comptype ct qc string compound name compound type string if f name m filename strip extension f name else m filename compound name m name if lref m examplesdict 0 else m examplesdict new examples dict 17 m memlistfilename convert name to file compound name m name members m inherits new base class list m inherits set auto delete true m inheritedby new base class list m inheritedby set auto delete true m allmembernameinfosdict new member name infos dict 257 m allmembernameinfosdict set auto delete true visited false set reference lref m incinfo 0 m tempargs 0 m prot public m nspace 0 m filedef 0 m usesimplclassdict 0 m usedbyimplclassdict 0 m usesintfclassdict 0 member groups dict new member groups dict member groups dict set auto delete true m innerclasses new classs dict 17 m subgrouping config getbool subgrouping m templateinstances 0 m variableinstances 0 m templatemaster 0 m templbaseclassnames 0 m artificial false m isabstract false m isstatic false m isobjc false m membersmerged false m categoryof 0 qc string ns extract namespace name m name m classname ns printf m name s m classname s ns s n m name data m classname data ns data if qc string def file name right 5 java guess section def file name entry source sec m islocal true else m islocal false deffilename defline removeredundantwhitespace issymbol m_comptype qcstring compoundname compoundtypestring fname m_filename stripextension fname m_filename compoundname m_name m_examplesdict m_examplesdict examplesdict m_memlistfilename convertnametofile compoundname m_name m_inherits baseclasslist m_inherits setautodelete m_inheritedby baseclasslist m_inheritedby setautodelete m_allmembernameinfosdict membernameinfosdict m_allmembernameinfosdict setautodelete setreference m_incinfo m_tempargs m_prot m_nspace m_filedef m_usesimplclassdict m_usedbyimplclassdict m_usesintfclassdict membergroupsdict membergroupsdict membergroupsdict setautodelete m_innerclasses classsdict m_subgrouping config_getbool m_templateinstances m_variableinstances m_templatemaster m_templbaseclassnames m_artificial m_isabstract m_isstatic m_isobjc m_membersmerged m_categoryof qcstring extractnamespacename m_name m_classname m_name m_classname m_name m_classname qcstring deffilename guesssection deffilename source_sec m_islocal m_islocal class def class def delete m inherits delete m inheritedby delete m allmembernameinfosdict delete m examplesdict delete m usesimplclassdict delete m usedbyimplclassdict delete m usesintfclassdict delete m incinfo delete member groups dict delete m innerclasses delete m templateinstances delete m variableinstances delete m templbaseclassnames delete m tempargs classdef classdef m_inherits m_inheritedby m_allmembernameinfosdict m_examplesdict m_usesimplclassdict m_usedbyimplclassdict m_usesintfclassdict m_incinfo membergroupsdict m_innerclasses m_templateinstances m_variableinstances m_templbaseclassnames m_tempargs bool class def has examples if m examplesdict 0 return false else return m examplesdict count 0 classdef hasexamples m_examplesdict m_examplesdict bool class def has non reference super class bool found is reference is linkable in project if found return true we re done if this class is not a reference base class list iterator bcli m inheritedby for bcli current found bcli for each super class class def bcd bcli current class def recurse into the super class branch found found bcd has non reference super class if found look for template instances that might have non reference super classes q dict class def cil bcd get template instances if cil q dict iterator class def tidi cil for tidi current found tidi for each template instance recurse into the template instance branch found found tidi current has non reference super class return found classdef hasnonreferencesuperclass isreference islinkableinproject baseclasslistiterator m_inheritedby classdef classdef hasnonreferencesuperclass qdict classdef gettemplateinstances qdictiterator classdef hasnonreferencesuperclass void class def show used files output list ol if config getbool show used files ol write ruler ol parse text the translator tr generated from files m isobjc m comptype interface class m comptype m files count 1 bool first true const char file m files first while file bool ambig file def fd find file def doxygen input name dict file ambig if fd if first first false ol start item list ol write list item qc string path fd get path copy if config getbool full path names ol docify strip from path path qc string fname fd name if fd get version is empty append version if available fname fd get version for html ol push generator state ol disable all but output generator html if fd generate source file ol write object link 0 fd get source file base 0 fname else if fd is linkable ol write object link fd get reference fd get output file base 0 fname else ol docify fname ol pop generator state for other output formats ol push generator state ol disable output generator html if fd is linkable ol write object link fd get reference fd get output file base 0 fname else ol docify fname ol pop generator state file m files next if first ol end item list classdef showusedfiles outputlist config_getbool show_used_files writeruler parsetext thetranslator trgeneratedfromfiles m_isobjc m_comptype m_comptype m_files m_files filedef findfiledef inputnamedict startitemlist writelistitem qcstring getpath config_getbool full_path_names stripfrompath qcstring getversion isempty getversion pushgeneratorstate disableallbut outputgenerator generatesourcefile writeobjectlink getsourcefilebase islinkable writeobjectlink getreference getoutputfilebase popgeneratorstate pushgeneratorstate outputgenerator islinkable writeobjectlink getreference getoutputfilebase popgeneratorstate m_files enditemlist printf adding s s n name data md name data if is reference insert member in the declaration section if md is related config getbool extract private prot private if config getbool sort brief docs related in sort md else related append md md set section list this related else if md is friend if config getbool sort brief docs friends in sort md else friends append md md set section list this friends else switch md member type case member def signal qt specific if config getbool sort brief docs signals in sort md else signals append md md set section list this signals break case member def dcop kde2 specific if config getbool sort brief docs dcop methods in sort md else dcop methods append md md set section list this dcop methods break case member def property if config getbool sort brief docs properties in sort md else properties append md md set section list this properties break case member def event if config getbool sort brief docs events in sort md else events append md md set section list this events break case member def slot qt specific switch prot case protected case package slots in packages are not possible if config getbool sort brief docs pro slots in sort md else pro slots append md md set section list this pro slots break break case public if config getbool sort brief docs pub slots in sort md else pub slots append md md set section list this pub slots break case private if config getbool sort brief docs pri slots in sort md else pri slots append md md set section list this pri slots break break default any of the other members if md is static if md is variable switch prot case protected if config getbool sort brief docs pro static attribs in sort md else pro static attribs append md md set section list this pro static attribs break case package if config getbool sort brief docs pac static attribs in sort md else pac static attribs append md md set section list this pac static attribs break case public if config getbool sort brief docs pub static attribs in sort md else pub static attribs append md md set section list this pub static attribs break case private if config getbool sort brief docs pri static attribs in sort md else pri static attribs append md md set section list this pri static attribs break else function switch prot case protected if config getbool sort brief docs pro static methods in sort md else pro static methods append md md set section list this pro static methods break case package if config getbool sort brief docs pac static methods in sort md else pac static methods append md md set section list this pac static methods break case public if config getbool sort brief docs pub static methods in sort md else pub static methods append md md set section list this pub static methods break case private if config getbool sort brief docs pri static methods in sort md else pri static methods append md md set section list this pri static methods break else not static if md is variable switch prot case protected if config getbool sort brief docs pro attribs in sort md else pro attribs append md md set section list this pro attribs break case package if config getbool sort brief docs pac attribs in sort md else pac attribs append md md set section list this pac attribs break case public if config getbool sort brief docs pub attribs in sort md else pub attribs append md md set section list this pub attribs break case private if config getbool sort brief docs pri attribs in sort md else pri attribs append md md set section list this pri attribs break else if md is typedef md is enumerate md is enum value switch prot case protected if config getbool sort brief docs pro types in sort md else pro types append md md set section list this pro types break case package if config getbool sort brief docs pac types in sort md else pac types append md md set section list this pac types break case public if config getbool sort brief docs pub types in sort md else pub types append md md set section list this pub types break case private if config getbool sort brief docs pri types in sort md else pri types append md md set section list this pri types break else member function switch prot case protected if config getbool sort brief docs pro methods in sort md else pro methods append md md set section list this pro methods break case package if config getbool sort brief docs pac methods in sort md else pac methods append md md set section list this pac methods break case public if config getbool sort brief docs pub methods in sort md else pub methods append md md set section list this pub methods break case private if config getbool sort brief docs pri methods in sort md else pri methods append md md set section list this pri methods break break insert member in the detailed documentation section if md is related config getbool extract private prot private md is friend if config getbool sort member docs related members in sort md else related members append md else switch md member type case member def property if config getbool sort member docs property members in sort md else property members append md break case member def event if config getboo isreference isrelated config_getbool extract_private config_getbool sort_brief_docs insort setsectionlist isfriend config_getbool sort_brief_docs insort setsectionlist membertype memberdef config_getbool sort_brief_docs insort setsectionlist memberdef config_getbool sort_brief_docs dcopmethods insort dcopmethods setsectionlist dcopmethods memberdef config_getbool sort_brief_docs insort setsectionlist memberdef config_getbool sort_brief_docs insort setsectionlist memberdef config_getbool sort_brief_docs proslots insort proslots setsectionlist proslots config_getbool sort_brief_docs pubslots insort pubslots setsectionlist pubslots config_getbool sort_brief_docs prislots insort prislots setsectionlist prislots isstatic isvariable config_getbool sort_brief_docs prostaticattribs insort prostaticattribs setsectionlist prostaticattribs config_getbool sort_brief_docs pacstaticattribs insort pacstaticattribs setsectionlist pacstaticattribs config_getbool sort_brief_docs pubstaticattribs insort pubstaticattribs setsectionlist pubstaticattribs config_getbool sort_brief_docs pristaticattribs insort pristaticattribs setsectionlist pristaticattribs config_getbool sort_brief_docs prostaticmethods insort prostaticmethods setsectionlist prostaticmethods config_getbool sort_brief_docs pacstaticmethods insort pacstaticmethods setsectionlist pacstaticmethods config_getbool sort_brief_docs pubstaticmethods insort pubstaticmethods setsectionlist pubstaticmethods config_getbool sort_brief_docs pristaticmethods insort pristaticmethods setsectionlist pristaticmethods isvariable config_getbool sort_brief_docs proattribs insort proattribs setsectionlist proattribs config_getbool sort_brief_docs pacattribs insort pacattribs setsectionlist pacattribs config_getbool sort_brief_docs pubattribs insort pubattribs setsectionlist pubattribs config_getbool sort_brief_docs priattribs insort priattribs setsectionlist priattribs istypedef isenumerate isenumvalue config_getbool sort_brief_docs protypes insort protypes setsectionlist protypes config_getbool sort_brief_docs pactypes insort pactypes setsectionlist pactypes config_getbool sort_brief_docs pubtypes insort pubtypes setsectionlist pubtypes config_getbool sort_brief_docs pritypes insort pritypes setsectionlist pritypes config_getbool sort_brief_docs promethods insort promethods setsectionlist promethods config_getbool sort_brief_docs pacmethods insort pacmethods setsectionlist pacmethods config_getbool sort_brief_docs pubmethods insort pubmethods setsectionlist pubmethods config_getbool sort_brief_docs primethods insort primethods setsectionlist primethods isrelated config_getbool extract_private isfriend config_getbool sort_member_docs relatedmembers insort relatedmembers membertype memberdef config_getbool sort_member_docs propertymembers insort propertymembers memberdef config_getboo bool is linkable in project const int i name find rev if i 1 i 0 else i 2 return name is empty name at i has documentation is reference islinkableinproject findrev isempty hasdocumentation isreference bool is linkable const return is linkable in project is reference islinkable islinkableinproject isreference definition df dl name if f name file name strip extension f name else file name namespace file name name classs dict new classs dict 17 namespaces dict new namespaces dict 17 m innercompounds new s dict definition 17 using dir list 0 using decl list 0 set reference lref member groups dict new member groups dict member groups dict set auto delete true visited false fname filename stripextension fname filename filename classsdict classsdict namespacesdict namespacesdict m_innercompounds sdict usingdirlist usingdecllist setreference membergroupsdict membergroupsdict membergroupsdict setautodelete namespace def namespace def delete classs dict delete namespaces dict delete m innercompounds delete using dir list delete using decl list delete member groups dict namespacedef namespacedef classsdict namespacesdict m_innercompounds usingdirlist usingdecllist membergroupsdict qc string namespace def get output file base const if is reference return file name else return convert name to file file name qcstring namespacedef getoutputfilebase isreference filename convertnametofile filename void namespace def insert used file const char f if files find f 1 if config getbool sort member docs files in sort f else files append f namespacedef insertusedfile config_getbool sort_member_docs insort void namespace def write detailed documentation output list ol if brief description is empty config getbool repeat brief documentation is empty ol write ruler ol push generator state ol disable all but output generator html bool latex on ol is enabled output generator latex if latex on ol disable output generator latex ol write anchor 0 details if latex on ol enable output generator latex ol pop generator state ol start group header ol parse text the translator tr detailed description ol end group header ol start text block if brief description is empty config getbool repeat brief ol parse doc brief file brief line this 0 brief description false false if brief description is empty config getbool repeat brief documentation is empty ol push generator state ol disable output generator man ol new paragraph ol enable all ol disable all but output generator man ol write string n n ol pop generator state if documentation is empty ol parse doc doc file doc line this 0 documentation n true false ol new paragraph ol end text block namespacedef writedetaileddocumentation outputlist briefdescription isempty config_getbool repeat_brief isempty writeruler pushgeneratorstate disableallbut outputgenerator latexon isenabled outputgenerator latexon outputgenerator writeanchor _details latexon outputgenerator popgeneratorstate startgroupheader parsetext thetranslator trdetaileddescription endgroupheader starttextblock briefdescription isempty config_getbool repeat_brief parsedoc brieffile briefline briefdescription briefdescription isempty config_getbool repeat_brief isempty pushgeneratorstate outputgenerator newparagraph enableall disableallbut outputgenerator writestring popgeneratorstate isempty parsedoc docfile docline newparagraph endtextblock void namespace def write documentation output list ol qc string page title if config getbool optimize output java page title the translator tr package display name else page title the translator tr namespace reference display name start file ol get output file base name page title if get outer scope doxygen global scope write navigation path ol start title ol get output file base ol parse text page title add group list to title ol this end title ol get output file base display name if config getbool searchengine doxygen search index set current doc page title get output file base doxygen search index add word local name true if config getstring generate tagfile is empty doxygen tag file compound kind namespace endl doxygen tag file name convert toxml name name endl doxygen tag file filename convert toxml get output file base doxygen html file extension filename endl ol start text block if config getbool details at top write detailed documentation ol ol new paragraph else if brief description is empty ol parse doc brief file brief line this 0 brief description true false ol write string n ol push generator state ol disable all but output generator html ol start text link 0 details ol parse text the translator tr more ol end text link ol enable all ol disable all but output generator man ol new paragraph ol pop generator state ol disable output generator man ol new paragraph ol enable output generator man ol write synopsis ol end text block ol start member sections classs dict write declaration ol 0 0 true namespaces dict write declaration ol true write user defined member groups member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg write declarations ol 0 this 0 0 all member list write declarations ol 0 this 0 0 0 0 dec define members write declarations ol 0 this 0 0 the translator tr defines 0 dec proto members write declarations ol 0 this 0 0 the translator tr func protos 0 dec typedef members write declarations ol 0 this 0 0 the translator tr typedefs 0 dec enum members write declarations ol 0 this 0 0 the translator tr enumerations 0 dec func members write declarations ol 0 this 0 0 the translator tr functions 0 dec var members write declarations ol 0 this 0 0 the translator tr variables 0 ol end member sections if config getbool details at top write detailed documentation ol write member documentation ol write author section man only ol push generator state ol disable all but output generator man ol start group header ol parse text the translator tr author true true ol end group header ol parse text the translator tr generated automatically config getstring project name if config getstring generate tagfile is empty write doc anchors to tag file doxygen tag file compound endl ol pop generator state end file ol if config getbool separate member pages all member list sort write member pages ol namespacedef writedocumentation outputlist qcstring pagetitle config_getbool optimize_output_java pagetitle thetranslator trpackage displayname pagetitle thetranslator trnamespacereference displayname startfile getoutputfilebase pagetitle getouterscope globalscope writenavigationpath starttitle getoutputfilebase parsetext pagetitle addgrouplisttotitle endtitle getoutputfilebase displayname config_getbool searchindex setcurrentdoc pagetitle getoutputfilebase searchindex addword localname config_getstring generate_tagfile isempty tagfile tagfile converttoxml tagfile converttoxml getoutputfilebase htmlfileextension starttextblock config_getbool details_at_top writedetaileddocumentation newparagraph briefdescription isempty parsedoc brieffile briefline briefdescription writestring pushgeneratorstate disableallbut outputgenerator starttextlink _details parsetext thetranslator trmore endtextlink enableall disableallbut outputgenerator newparagraph popgeneratorstate outputgenerator newparagraph outputgenerator writesynopsis endtextblock startmembersections classsdict writedeclaration namespacesdict writedeclaration membergroupsdict membergroupsdict membergroup writedeclarations allmemberlist writedeclarations decdefinemembers writedeclarations thetranslator trdefines decprotomembers writedeclarations thetranslator trfuncprotos dectypedefmembers writedeclarations thetranslator trtypedefs decenummembers writedeclarations thetranslator trenumerations decfuncmembers writedeclarations thetranslator trfunctions decvarmembers writedeclarations thetranslator trvariables endmembersections config_getbool details_at_top writedetaileddocumentation writememberdocumentation pushgeneratorstate disableallbut outputgenerator startgroupheader parsetext thetranslator trauthor endgroupheader parsetext thetranslator trgeneratedautomatically config_getstring project_name config_getstring generate_tagfile isempty writedocanchorstotagfile tagfile popgeneratorstate endfile config_getbool separate_member_pages allmemberlist writememberpages void namespace def write member documentation output list ol if config getbool separate member pages ol disable output generator html doc define members write documentation ol name this the translator tr define documentation doc proto members write documentation ol name this the translator tr function prototype documentation doc typedef members write documentation ol name this the translator tr typedef documentation doc enum members write documentation ol name this the translator tr enumeration type documentation doc func members write documentation ol name this the translator tr function documentation doc var members write documentation ol name this the translator tr variable documentation if config getbool separate member pages ol enable output generator html namespacedef writememberdocumentation outputlist config_getbool separate_member_pages outputgenerator docdefinemembers writedocumentation thetranslator trdefinedocumentation docprotomembers writedocumentation thetranslator trfunctionprototypedocumentation doctypedefmembers writedocumentation thetranslator trtypedefdocumentation docenummembers writedocumentation thetranslator trenumerationtypedocumentation docfuncmembers writedocumentation thetranslator trfunctiondocumentation docvarmembers writedocumentation thetranslator trvariabledocumentation config_getbool separate_member_pages outputgenerator void namespace def write member pages output list ol ol push generator state ol disable all but output generator html doc define members write documentation page ol name this doc proto members write documentation page ol name this doc typedef members write documentation page ol name this doc enum members write documentation page ol name this doc func members write documentation page ol name this doc var members write documentation page ol name this ol pop generator state namespacedef writememberpages outputlist pushgeneratorstate disableallbut outputgenerator docdefinemembers writedocumentationpage docprotomembers writedocumentationpage doctypedefmembers writedocumentationpage docenummembers writedocumentationpage docfuncmembers writedocumentationpage docvarmembers writedocumentationpage popgeneratorstate void namespace def write quick member links output list ol member def current md const static bool create sub dirs config getbool create subdirs ol write string div class navtab n ol write string table n member list iterator mli all member list member def md for mli to first md mli current mli if md get namespace def this md is linkable ol write string tr td class navtab if md is linkable in project if md current md selected item highlight ol write string a class qindexhl else ol write string a class qindex ol write string href if create sub dirs ol write string ol write string md get output file base doxygen html file extension md anchor ol write string ol write string md local name ol write string a ol write string td tr n ol write string table n ol write string div n namespacedef writequickmemberlinks outputlist memberdef currentmd createsubdirs config_getbool create_subdirs writestring writestring memberlistiterator allmemberlist memberdef tofirst getnamespacedef islinkable writestring islinkableinproject currentmd writestring writestring writestring createsubdirs writestring writestring getoutputfilebase htmlfileextension writestring writestring localname writestring writestring writestring writestring void namespace def insert class class def cd if classs dict find cd name 0 if config getbool sort brief docs classs dict in sort cd name cd else classs dict append cd name cd namespacedef insertclass classdef classsdict config_getbool sort_brief_docs classsdict insort classsdict void namespace def insert namespace namespace def nd if namespaces dict find nd name 0 if config getbool sort member docs namespaces dict in sort nd name nd else namespaces dict append nd name nd namespacedef insertnamespace namespacedef namespacesdict config_getbool sort_member_docs namespacesdict insort namespacesdict void namespace def insert member member def md mem list append md all member list append md switch md member type case member def variable if config getbool sort brief docs dec var members in sort md else dec var members append md if config getbool sort member docs doc var members in sort md else doc var members append md break case member def function if config getbool sort brief docs dec func members in sort md else dec func members append md if config getbool sort member docs doc func members in sort md else doc func members append md break case member def typedef if config getbool sort brief docs dec typedef members in sort md else dec typedef members append md if config getbool sort member docs doc typedef members in sort md else doc typedef members append md break case member def enumeration if config getbool sort brief docs dec enum members in sort md else dec enum members append md if config getbool sort member docs doc enum members in sort md else doc enum members append md break case member def enum value break case member def prototype if config getbool sort brief docs dec proto members in sort md else dec proto members append md if config getbool sort member docs doc proto members in sort md else doc proto members append md break case member def define if config getbool sort brief docs dec define members in sort md else dec define members append md if config getbool sort member docs doc define members in sort md else doc define members append md break default err namespace def insert members member s with class scope s inserted in namespace scope s n md name data md get class def md get class def name data name data add member to group md group id namespacedef insertmember memberdef memlist allmemberlist membertype memberdef config_getbool sort_brief_docs decvarmembers insort decvarmembers config_getbool sort_member_docs docvarmembers insort docvarmembers memberdef config_getbool sort_brief_docs decfuncmembers insort decfuncmembers config_getbool sort_member_docs docfuncmembers insort docfuncmembers memberdef config_getbool sort_brief_docs dectypedefmembers insort dectypedefmembers config_getbool sort_member_docs doctypedefmembers insort doctypedefmembers memberdef config_getbool sort_brief_docs decenummembers insort decenummembers config_getbool sort_member_docs docenummembers insort docenummembers memberdef enumvalue memberdef config_getbool sort_brief_docs decprotomembers insort decprotomembers config_getbool sort_member_docs docprotomembers insort docprotomembers memberdef config_getbool sort_brief_docs decdefinemembers insort decdefinemembers config_getbool sort_member_docs docdefinemembers insort docdefinemembers namespacedef insertmembers getclassdef getclassdef addmembertogroup groupid void namespace def compute anchors set anchors 0 a all member list namespacedef computeanchors setanchors allmemberlist int namespace def count members all member list count doc members return all member list num doc members classs dict count namespacedef countmembers allmemberlist countdocmembers allmemberlist numdocmembers classsdict void namespace def add using directive namespace def nd if using dir list 0 using dir list new namespaces dict if using dir list find nd qualified name 0 using dir list append nd qualified name nd namespacedef addusingdirective namespacedef usingdirlist usingdirlist namespacesdict usingdirlist qualifiedname usingdirlist qualifiedname void namespace def add using declaration definition d if using decl list 0 using decl list new s dict definition 17 if using decl list find d qualified name 0 using decl list append d qualified name d namespacedef addusingdeclaration usingdecllist usingdecllist sdict usingdecllist qualifiedname usingdecllist qualifiedname void namespace def combine using relations if visited return already done visited true if using dir list namespaces dict iterator nli using dir list namespace def nd for nli to first nd nli current nli nd combine using relations for nli to first nd nli current nli add used namespaces of namespace nd to this namespace if nd get used namespaces namespaces dict iterator unli nd get used namespaces namespace def und for unli to first und unli current unli printf adding namespace s to the using list of s n und qualified name data qualified name data add using directive und add used classes of namespace nd to this namespace if nd get used classes s dict definition iterator cli nd get used classes definition ucd for cli to first ucd cli current cli printf adding class s to the using list of s n cd qualified name data qualified name data add using declaration ucd namespacedef combineusingrelations usingdirlist namespacesdict usingdirlist namespacedef tofirst combineusingrelations tofirst getusednamespaces namespacesdict getusednamespaces namespacedef tofirst qualifiedname qualifiedname addusingdirective getusedclasses sdict getusedclasses tofirst qualifiedname qualifiedname addusingdeclaration qc string namespace def display name const qc string result name if config getbool optimize output java result substitute result return result qcstring namespacedef displayname qcstring config_getbool optimize_output_java void namespace def add members to member group add members to member group dec define members member groups dict this add members to member group dec proto members member groups dict this add members to member group dec typedef members member groups dict this add members to member group dec enum members member groups dict this add members to member group dec func members member groups dict this add members to member group dec var members member groups dict this namespacedef addmemberstomembergroup addmemberstomembergroup decdefinemembers membergroupsdict addmemberstomembergroup decprotomembers membergroupsdict addmemberstomembergroup dectypedefmembers membergroupsdict addmemberstomembergroup decenummembers membergroupsdict addmemberstomembergroup decfuncmembers membergroupsdict addmemberstomembergroup decvarmembers membergroupsdict void namespace def distribute member group documentation member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg distribute member group documentation namespacedef distributemembergroupdocumentation membergroupsdict membergroupsdict membergroup distributemembergroupdocumentation void namespace def find sections in documentation doc find sections documentation this 0 doc file member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg find sections in documentation dec define members find sections in documentation dec proto members find sections in documentation dec typedef members find sections in documentation dec enum members find sections in documentation dec func members find sections in documentation dec var members find sections in documentation namespacedef findsectionsindocumentation docfindsections docfile membergroupsdict membergroupsdict membergroup findsectionsindocumentation decdefinemembers findsectionsindocumentation decprotomembers findsectionsindocumentation dectypedefmembers findsectionsindocumentation decenummembers findsectionsindocumentation decfuncmembers findsectionsindocumentation decvarmembers findsectionsindocumentation definition namespace def find inner compound const char n if n 0 return 0 return m innercompounds find n namespacedef findinnercompound m_innercompounds void namespace def add inner compound definition d m innercompounds append d local name d if d definition type definition type namespace insert namespace namespace def d else if d definition type definition type class insert class class def d namespacedef addinnercompound m_innercompounds localname definitiontype typenamespace insertnamespace namespacedef definitiontype typeclass insertclass classdef void namespace def add list references add ref item xref list items the translator tr namespace true true get output file base display name member groups dict iterator mgli member groups dict member group mg for mg mgli current mgli mg add list references this doc define members add list references this doc proto members add list references this doc typedef members add list references this doc enum members add list references this doc func members add list references this doc var members add list references this namespacedef addlistreferences addrefitem xreflistitems thetranslator trnamespace getoutputfilebase displayname membergroupsdict membergroupsdict membergroup addlistreferences docdefinemembers addlistreferences docprotomembers addlistreferences doctypedefmembers addlistreferences docenummembers addlistreferences docfuncmembers addlistreferences docvarmembers addlistreferences member list member list q list member def member group list 0 m numdecmembers 1 special value indicating that computation is needed m numdocmembers 1 special value indicating that computation is needed m ingroup false m infile false memberlist memberlist qlist memberdef membergrouplist m_numdecmembers m_numdocmembers m_ingroup m_infile member list member list delete member group list memberlist memberlist membergrouplist bool member list insert uint index const member def md return q list member def insert index md memberlist memberdef qlist memberdef void member list in sort const member def md q list member def in sort md memberlist insort memberdef qlist memberdef insort void member list append const member def md q list member def append md memberlist memberdef qlist memberdef int member list compare items gci item1 gci item2 member def c1 member def item1 member def c2 member def item2 return stricmp c1 name c2 name memberlist compareitems memberdef memberdef memberdef memberdef void member list count dec members if m numdecmembers 1 return printf count dec members count d n count m varcnt m funccnt m enumcnt m enumvalcnt 0 m typecnt m protocnt m defcnt m friendcnt 0 m numdecmembers 0 q list iterator member def mli this member def md for mli to first md mli current mli if md is brief section visible switch md member type case member def variable fall through case member def event fall through case member def property m varcnt m numdecmembers break case member def function fall through case member def signal fall through case member def dcop fall through case member def slot if md is related md get class def m funccnt m numdecmembers break case member def enumeration m enumcnt m numdecmembers break case member def enum value m enumvalcnt m numdecmembers break case member def typedef m typecnt m numdecmembers break case member def prototype m protocnt m numdecmembers break case member def define if config getbool extract all md args string md initializer is empty md has documentation m defcnt m numdecmembers break case member def friend m friendcnt m numdecmembers break default err error unknown member type found for member s n md name data if member group list member group list iterator mgli member group list member group mg for mg mgli current mgli mg count dec members m varcnt mg var count m funccnt mg func count m enumcnt mg enum count m enumvalcnt mg enum value count m typecnt mg typedef count m protocnt mg proto count m defcnt mg define count m friendcnt mg friend count m numdecmembers mg num dec members printf end count dec members n printf member list count dec members d n m numdecmembers memberlist countdecmembers m_numdecmembers countdecmembers m_varcnt m_funccnt m_enumcnt m_enumvalcnt m_typecnt m_protocnt m_defcnt m_friendcnt m_numdecmembers qlistiterator memberdef memberdef tofirst isbriefsectionvisible membertype memberdef memberdef memberdef m_varcnt m_numdecmembers memberdef memberdef memberdef memberdef isrelated getclassdef m_funccnt m_numdecmembers memberdef m_enumcnt m_numdecmembers memberdef enumvalue m_enumvalcnt m_numdecmembers memberdef m_typecnt m_numdecmembers memberdef m_protocnt m_numdecmembers memberdef config_getbool extract_all argsstring isempty hasdocumentation m_defcnt m_numdecmembers memberdef m_friendcnt m_numdecmembers membergrouplist membergrouplistiterator membergrouplist membergroup countdecmembers m_varcnt varcount m_funccnt funccount m_enumcnt enumcount m_enumvalcnt enumvaluecount m_typecnt typedefcount m_protocnt protocount m_defcnt definecount m_friendcnt friendcount m_numdecmembers numdecmembers countdecmembers memberlist countdecmembers m_numdecmembers void member list count doc members if m numdocmembers 1 return used cached value m numdocmembers 0 q list iterator member def mli this member def md for mli to first md mli current mli if md is detailed section visible m ingroup m infile do not count enum values since they do not produce entries of their own if md member type member def enum value m numdocmembers if member group list member group list iterator mgli member group list member group mg for mg mgli current mgli mg count dec members m numdocmembers mg num doc members printf member list count doc members d member group list p n m numdocmembers member group list memberlist countdocmembers m_numdocmembers m_numdocmembers qlistiterator memberdef memberdef tofirst isdetailedsectionvisible m_ingroup m_infile membertype memberdef enumvalue m_numdocmembers membergrouplist membergrouplistiterator membergrouplist membergroup countdecmembers m_numdocmembers numdocmembers memberlist countdocmembers membergrouplist m_numdocmembers membergrouplist printf write plain declaration n count dec members if num dec members 0 return no members in this list printf write plain declaration num dec members d n num dec members ol push generator state bool first true member def md member list iterator mli this for md mli current mli if md is brief section visible printf member s type d n md name data md member type switch md member type case member def define fall through case member def prototype fall through case member def typedef fall through case member def variable fall through case member def function fall through case member def signal fall through case member def slot fall through case member def dcop fall through case member def property fall through case member def event if first ol start member list first false md write declaration ol cd nd fd gd m ingroup break case member def enumeration if first ol start member list first false int enum vars 0 member list iterator vmli this member def vmd qc string name md name int i name find rev if i 1 name name right name length i 2 strip scope todo is this needed if name 0 anonymous enum append variables for vmd vmli current vmli qc string vtype vmd type string if vtype find name 1 enum vars vmd set anonymous enum type md if this is an anoymous enum and there are variables of this enum type i e enum vars 0 then we do not show the enum here if enum vars 0 show enum here ol start member item 0 ol write string enum ol insert member align md write enum declaration ol cd nd fd gd ol end member item if md brief description is empty config getbool brief member desc ol start member description ol parse doc md brief file md brief line cd md md brief description true false if md is detailed section linkable ol disable all but output generator html ol docify ol start text link md get output file base md anchor ol parse text the translator tr more ol end text link ol enable all ol end member description md warn if undocumented break case member def friend if first ol start member list first false md write declaration ol cd nd fd gd m ingroup break case member def enum value break handle members that are inside anonymous compounds and for which no variables of the anonymous compound type exist if cd member list iterator mli this for md mli current mli if md from anonymous scope md anonymous decl shown md set from anonymous scope false printf anonymous compound members n if md is brief section visible if first ol start member list first false md write declaration ol cd nd fd gd m ingroup md set from anonymous scope true if first ol end member list ol pop generator state printf end write plain declaration n writeplaindeclaration countdecmembers numdecmembers writeplaindeclaration numdecmembers numdecmembers pushgeneratorstate memberdef memberlistiterator isbriefsectionvisible membertype membertype memberdef memberdef memberdef memberdef memberdef memberdef memberdef memberdef memberdef memberdef startmemberlist writedeclaration m_ingroup memberdef startmemberlist enumvars memberlistiterator memberdef qcstring findrev qcstring typestring enumvars setanonymousenumtype enumvars enumvars startmemberitem writestring insertmemberalign writeenumdeclaration endmemberitem briefdescription isempty config_getbool brief_member_desc startmemberdescription parsedoc brieffile briefline briefdescription isdetailedsectionlinkable disableallbut outputgenerator starttextlink getoutputfilebase parsetext thetranslator trmore endtextlink enableall endmemberdescription warnifundocumented memberdef startmemberlist writedeclaration m_ingroup memberdef enumvalue memberlistiterator fromanonymousscope anonymousdeclshown setfromanonymousscope isbriefsectionvisible startmemberlist writedeclaration m_ingroup setfromanonymousscope endmemberlist popgeneratorstate writeplaindeclaration bool in group bool count sub groups printf write declaration n count dec members count member not in group if num dec members 0 return printf member list write declaration title s subtitle s d n title subtitle num dec members if title ol start member header ol parse text title ol end member header if subtitle subtitle 0 0 printf subtitle s n subtitle ol start member subtitle ol parse doc generated 1 0 0 subtitle false false ol end member subtitle write plain declarations ol cd nd fd gd printf member group list p n member group list if member group list member group list iterator mgli member group list member group mg while mg mgli current bool has header mg header noheader ol start member group header has header if has header ol parse text mg header ol end member group header if mg documentation is empty printf member group has docs n ol start member group docs ol parse doc generated 1 0 0 mg documentation n false false ol end member group docs ol start member group printf mg write plain declarations n mg write plain declarations ol cd nd fd gd ol end member group has header mgli printf end write declaration n ingroup countsubgroups writedeclaration countdecmembers numdecmembers memberlist writedeclaration numdecmembers startmemberheader parsetext endmemberheader startmembersubtitle parsedoc endmembersubtitle writeplaindeclarations membergrouplist membergrouplist membergrouplist membergrouplistiterator membergrouplist membergroup hasheader startmembergroupheader hasheader hasheader parsetext endmembergroupheader isempty startmembergroupdocs parsedoc endmembergroupdocs startmembergroup writeplaindeclarations writeplaindeclarations endmembergroup hasheader writedeclaration const char title printf member list write documentation n count doc members if num doc members 0 return if title ol write ruler ol start group header ol parse text title ol end group header member list iterator mli this member def md for md mli current mli md write documentation this ol scope name container m ingroup if member group list printf member list write documentation member groups n member group list iterator mgli member group list member group mg for mg mgli current mgli mg write documentation ol scope name container memberlist writedocumentation countdocmembers numdocmembers writeruler startgroupheader parsetext endgroupheader memberlistiterator memberdef writedocumentation scopename m_ingroup membergrouplist memberlist writedocumentation membergrouplistiterator membergrouplist membergroup writedocumentation scopename const char scope name definition container member list iterator mli this member def md for md mli current mli qc string disk name md get output file base qc string title md qualified name start file ol disk name md name title container write navigation path ol ol write string table cellspacing 0 cellpadding 0 border 0 n tr n td valign top n container write quick member links ol md ol write string td n ol write string td valign top n md write documentation this ol scope name container m ingroup ol write string td n ol write string tr n ol write string table n end file ol if member group list printf member list write documentation member groups n member group list iterator mgli member group list member group mg for mg mgli current mgli mg write documentation page ol scope name container scopename memberlistiterator memberdef qcstring diskname getoutputfilebase qcstring qualifiedname startfile diskname writenavigationpath writestring writequickmemberlinks writestring writestring writedocumentation scopename m_ingroup writestring writestring writestring endfile membergrouplist memberlist writedocumentation membergrouplistiterator membergrouplist membergroup writedocumentationpage scopename void member list add member group member group mg if member group list 0 member group list new member group list member group list append mg memberlist addmembergroup membergroup membergrouplist membergrouplist membergrouplist membergrouplist void member list add list references definition def member list iterator mli this member def md for md mli current mli if md get group def 0 def definition type definition type group md add list reference def if md member type member def enumeration md enum field list member list iterator vmli md enum field list member def vmd for vmd vmli current vmli vmd add list reference def if member group list member group list iterator mgli member group list member group mg for mg mgli current mgli mg add list references def memberlist addlistreferences memberlistiterator memberdef getgroupdef definitiontype typegroup addlistreference membertype memberdef enumfieldlist memberlistiterator enumfieldlist memberdef addlistreference membergrouplist membergrouplistiterator membergrouplist membergroup addlistreferences void member list find sections in documentation member list iterator mli this member def md for md mli current mli md find sections in documentation if member group list member group list iterator mgli member group list member group mg for mg mgli current mgli mg find sections in documentation memberlist findsectionsindocumentation memberlistiterator memberdef findsectionsindocumentation membergrouplist membergrouplistiterator membergrouplist membergroup findsectionsindocumentation member list iterator member list iterator const q list member def l q list iterator member def l memberlistiterator memberlistiterator qlist memberdef qlistiterator memberdef class list class list q list class def classlist classlist qlist classdef class list class list classlist classlist int class list compare items gci item1 gci item2 return comp items item1 item2 classlist compareitems compitems int classs dict compare items gci item1 gci item2 return comp items item1 item2 classsdict compareitems compitems const char header bool local names if count 0 classs dict iterator sdi this class def cd 0 bool found false for sdi to first cd sdi current sdi if cd name find 1 filter 0 filter cd compound type bool is link cd is linkable if is link config getbool hide undoc classes cd is local config getbool extract local classes if found ol start member header if header ol parse text header else ol parse text the translator tr compounds ol end member header ol start member list found true if config getstring generate tagfile is empty doxygen tag file class kind cd compound type string convert toxml cd name class endl ol start member item false qc string tmp cd compound type string qc string cname if local names cname cd local name else cname cd display name ol write string tmp ol write string ol insert member align if is link ol write object link cd get reference cd get output file base 0 cname else ol start bold ol docify cname ol end bold ol end member item if cd brief description is empty ol start member description ol parse doc cd brief file cd brief line cd 0 cd brief description false false if cd brief description is empty config getbool repeat brief cd documentation is empty cd is linkable in project ol push generator state ol disable all but output generator html ol end emphasis ol docify ol start text link cd get output file base details ol parse text the translator tr more ol end text link ol start emphasis ol pop generator state ol end member description if found ol end member list localnames classsdict classdef tofirst compoundtype islink islinkable islink config_getbool hide_undoc_classes islocal config_getbool extract_local_classes startmemberheader parsetext parsetext thetranslator trcompounds endmemberheader startmemberlist config_getstring generate_tagfile isempty tagfile compoundtypestring converttoxml startmemberitem qcstring compoundtypestring qcstring localnames localname displayname writestring writestring insertmemberalign islink writeobjectlink getreference getoutputfilebase startbold endbold endmemberitem briefdescription isempty startmemberdescription parsedoc brieffile briefline briefdescription briefdescription isempty config_getbool repeat_brief isempty islinkableinproject pushgeneratorstate disableallbut outputgenerator endemphasis starttextlink getoutputfilebase _details parsetext thetranslator trmore endtextlink startemphasis popgeneratorstate endmemberdescription endmemberlist int compare items gci item1 gci item2 class def c1 base class def item1 class def class def c2 base class def item2 class def if c1 0 c2 0 return false else return stricmp c1 name c2 name compareitems classdef baseclassdef classdef classdef baseclassdef classdef int compare items gci item1 gci item2 return stricmp member name info item1 member name member name info item2 member name compareitems membernameinfo membername membernameinfo membername int compare items gci item1 gci item2 return stricmp namespace def item1 name namespace def item2 name compareitems namespacedef namespacedef void namespaces dict write declaration output list ol bool local name if count 0 return no namespaces in the list s dict namespace def iterator ni this namespace def nd bool found false for ni to first nd ni current found ni if nd is linkable found true if found return no linkable namespaces in the list write list of namespaces ol start member header bool java opt config getbool optimize output java if java opt ol parse text the translator tr packages else ol parse text the translator tr namespaces ol end member header ol start member list for ni to first nd ni current ni if nd is linkable ol start member item 0 if java opt ol docify package else ol docify namespace ol insert member align qc string name if local name name nd local name else name nd display name ol write object link nd get reference nd get output file base 0 name if config getstring generate tagfile is empty doxygen tag file namespace convert toxml nd name namespace endl ol end member item if nd brief description is empty config getbool brief member desc ol start member description ol parse doc nd brief file nd brief line nd 0 nd brief description false false ol end member description ol new paragraph ol end member list namespacesdict writedeclaration outputlist localname sdict namespacedef namespacedef tofirst islinkable startmemberheader javaopt config_getbool optimize_output_java javaopt parsetext thetranslator trpackages parsetext thetranslator trnamespaces endmemberheader startmemberlist tofirst islinkable startmemberitem javaopt insertmemberalign qcstring localname localname displayname writeobjectlink getreference getoutputfilebase config_getstring generate_tagfile isempty tagfile converttoxml endmemberitem briefdescription isempty config_getbool brief_member_desc startmemberdescription parsedoc brieffile briefline briefdescription endmemberdescription newparagraph endmemberlist static config instance if m instance 0 m instance new config return m instance m_instance m_instance m_instance static void delete instance delete m instance deleteinstance m_instance q list iterator config option iterator return q list iterator config option m options qlistiterator configoption qlistiterator configoption m_options config option get const char name const return m dict find name configoption m_dict config info add info const char name const char doc config info result new config info name doc m options append result return result configinfo addinfo configinfo configinfo m_options const char doc config string result new config string name doc m options append result m dict insert name result return result configstring configstring m_options m_dict const char def val config enum result new config enum name doc def val m options append result m dict insert name result return result defval configenum configenum defval m_options m_dict const char doc config list result new config list name doc m options append result m dict insert name result return result configlist configlist m_options m_dict int min val int max val int def val config int result new config int name doc min val max val def val m options append result m dict insert name result return result minval maxval defval configint configint minval maxval defval m_options m_dict bool def val config bool result new config bool name doc def val m options append result m dict insert name result return result defval configbool configbool defval m_options m_dict config option add obsolete const char name config obsolete option new config obsolete config option o obsolete m dict insert name option m obsolete append option return option configoption addobsolete configobsolete configobsolete configoption o_obsolete m_dict m_obsolete config m options new q list config option m obsolete new q list config option m dict new q dict config option 257 m options set auto delete true m obsolete set auto delete true m initialized false create m_options qlist configoption m_obsolete qlist configoption m_dict qdict configoption m_options setautodelete m_obsolete setautodelete m_initialized config delete m options delete m obsolete delete m dict m_options m_obsolete m_dict config option option type t m kind t m spaces fill 40 configoption optiontype m_kind m_spaces virtual config option configoption config option o info m name name m doc doc configoption o_info m_name m_doc void write template q text stream t bool sl bool if sl t n t n t m doc endl t n writetemplate qtextstream m_doc config option o list m name name m doc doc m widgettype string configoption o_list m_name m_doc m_widgettype void write template q text stream t bool sl bool if sl t endl t convert to comment m doc t endl t m name m spaces left max option length m name length write string list t m value t n writetemplate qtextstream converttocomment m_doc m_name m_spaces max_option_length m_name writestringlist m_value config option o enum m name name m doc doc m value def val m defvalue def val configoption o_enum m_name m_doc m_value defval m_defvalue defval q str list iterator iterator return q str list iterator m valuerange qstrlistiterator qstrlistiterator m_valuerange void write template q text stream t bool sl bool if sl t endl t convert to comment m doc t endl t m name m spaces left max option length m name length write string value t m value t n writetemplate qtextstream converttocomment m_doc m_name m_spaces max_option_length m_name writestringvalue m_value config option o string m name name m doc doc m widgettype string configoption o_string m_name m_doc m_widgettype config string configstring void write template q text stream t bool sl bool if sl t endl t convert to comment m doc t endl t m name m spaces left max option length m name length write string value t m value t n writetemplate qtextstream converttocomment m_doc m_name m_spaces max_option_length m_name writestringvalue m_value config option o int m name name m doc doc m value def val m defvalue def val m minval min val m maxval max val configoption o_int m_name m_doc m_value defval m_defvalue defval m_minval minval m_maxval maxval void write template q text stream t bool sl bool upd if sl t endl t convert to comment m doc t endl t m name m spaces left max option length m name length if upd m valuestring is empty write string value t m valuestring else write int value t m value t n writetemplate qtextstream converttocomment m_doc m_name m_spaces max_option_length m_name m_valuestring isempty writestringvalue m_valuestring writeintvalue m_value config option o bool m name name m doc doc m value def val m defvalue def val configoption o_bool m_name m_doc m_value defval m_defvalue defval void write template q text stream t bool sl bool upd if sl t endl t convert to comment m doc t endl t m name m spaces left max option length m name length if upd m valuestring is empty write string value t m valuestring else write bool value t m value t n writetemplate qtextstream converttocomment m_doc m_name m_spaces max_option_length m_name m_valuestring isempty writestringvalue m_valuestring writeboolvalue m_value qc string translator win1250 toiso88592 const qc string s input the conversion table for characters 127 qc string result int len s input length for int i 0 i len i unsigned int c s input i result c 127 win1250 toiso88592 tab c 0x7f c return result qcstring win1250toiso88592 qcstring sinput qcstring sinput sinput win1250toiso88592tab qc string translator iso88592 to win1250 const qc string s input the conversion table for characters 127 qc string result int len s input length for int i 0 i len i unsigned int c s input i result c 127 iso88592 to win1250 tab c 0x7f c return result qcstring iso88592towin1250 qcstring sinput qcstring sinput sinput iso88592towin1250tab qc string translator koi8r to windows1251 const qc string s input qc string result s input int len s input length const unsigned char c const unsigned char const char s input unsigned char dc unsigned char const char result for int i 0 i len i if c i 127 dc i koi8r to windows1251 tab c i 128 return result qcstring koi8rtowindows1251 qcstring sinput qcstring sinput sinput sinput koi8rtowindows1251tab qc string translator windows1251 to koi8r const qc string s input qc string result s input int len s input length const unsigned char c const unsigned char const char s input unsigned char dc unsigned char const char result for int i 0 i len i if c i 127 dc i windows1251 to koi8r tab c i 128 return result qcstring windows1251tokoi8r qcstring sinput qcstring sinput sinput sinput windows1251tokoi8rtab qc string translator japanese euc to sjis const qc string s input q string result int len s input length int c1 c2 sj result set unicode 0 len q char uc q char result unicode const cast const unsigned char c const unsigned char const char s input for int i 0 i len c1 c i if c1 eof break if msb 0 then the character is ascii if c1 0x80 uc i c i i i 1 else c2 c i 1 if c2 eof break sj euc2sjis c1 8 c2 uc i sj 8 uc i 1 sj 0xff i 2 return result latin1 qcstring japaneseeuctosjis qcstring sinput qstring sinput setunicode qchar qchar const_cast sinput html help html help get instance if the instance 0 the instance new html help return the instance htmlhelp htmlhelp getinstance theinstance theinstance htmlhelp theinstance void html help initialize open the contents file qc string f name config getstring html output index hhc cf new q file f name if cf open io writeonly err could not open file s for writing n f name data exit 1 write the header of the contents file cts set device cf if qt version 200 cts set encoding q text stream latin1 endif cts doctype html public ietf dtd html en n html head head body n object type text site properties n param name frame name value right n object n ul n open the contents file f name config getstring html output index hhk kf new q file f name if kf open io writeonly err could not open file s for writing n f name data exit 1 write the header of the contents file kts set device kf if qt version 200 kts set encoding q text stream latin1 endif kts doctype html public ietf dtd html en n html head head body n object type text site properties n param name frame name value right n object n ul n language codes for html help 0x405 czech 0x406 danish 0x413 dutch 0xc09 english australia 0x809 english britain 0x1009 english canada 0x1809 english ireland 0x1409 english new zealand 0x1c09 english south africa 0x409 english united states 0x40b finnish 0x40c french 0x407 german 0x408 greece 0x40e hungarian 0x410 italian 0x814 norwegian 0x415 polish 0x816 portuguese portugal 0x416 portuguese brazil 0x419 russian 0x80a spanish mexico 0xc0a spanish modern sort 0x40a spanish traditional sort 0x41d swedish 0x41f turkey 0x411 japanese 0x412 korean 0x804 chinese prc 0x404 chinese taiwan s languagedict set auto delete true s languagedict clear s languagedict insert czech new qc string 0x405 czech s languagedict insert danish new qc string 0x406 danish s languagedict insert dutch new qc string 0x413 dutch s languagedict insert finnish new qc string 0x40b finnish s languagedict insert french new qc string 0x40c french s languagedict insert german new qc string 0x407 german s languagedict insert greece new qc string 0x408 greece s languagedict insert hungarian new qc string 0x40e hungarian s languagedict insert italian new qc string 0x410 italian s languagedict insert norwegian new qc string 0x814 norwegian s languagedict insert polish new qc string 0x415 polish s languagedict insert portugese new qc string 0x816 portuguese portugal s languagedict insert brazil new qc string 0x416 portuguese brazil s languagedict insert russian new qc string 0x419 russian s languagedict insert spanish new qc string 0x40a spannish traditional sort s languagedict insert swedish new qc string 0x41d swedish s languagedict insert turkey new qc string 0x41f turkey s languagedict insert japanese new qc string 0x411 japanese s languagedict insert japanese en new qc string 0x411 japanese s languagedict insert korean new qc string 0x412 korean s languagedict insert chinese new qc string 0x804 chinese prc s languagedict insert chinese traditional new qc string 0x404 chinese taiwan htmlhelp qcstring fname config_getstring html_output qfile fname io_writeonly fname setdevice qt_version setencoding qtextstream framename fname config_getstring html_output qfile fname io_writeonly fname setdevice qt_version setencoding qtextstream framename s_languagedict setautodelete s_languagedict s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring s_languagedict qcstring void html help finalize end the contents file cts ul n cts unset device cf close delete cf index write fields kts end the index file kts ul n kts unset device kf close delete kf create project file s languagedict clear htmlhelp unsetdevice writefields unsetdevice createprojectfile s_languagedict int html help inc contents depth int i for i 0 i dc 1 i cts cts ul n return dc htmlhelp inccontentsdepth int html help dec contents depth int i for i 0 i dc i cts cts ul n return dc htmlhelp deccontentsdepth const char anchor if we re using a binary toc then folders cannot have links if config getbool binary toc is dir ref 0 anchor 0 int i for i 0 i dc i cts cts li object type text sitemap cts param name name value name if ref made ref optional param kpw cts param name local value ref doxygen html file extension if anchor cts anchor cts cts param name image number value if is dir added kpw cts int book closed else cts int text cts cts object n config_getbool binary_toc isdir htmlfileextension imagenumber isdir book_closed const char anchor index add item level1 level2 cont ref anchor true false index add item level2 level1 mem ref anchor true true additem contref additem memref void html help add index file const char s if index file dict find s 0 index files append s index file dict insert s void 0x8 htmlhelp addindexfile indexfiledict indexfiles indexfiledict void html help create project file write the project file qc string f name config getstring html output index hhp q file f f name if f open io writeonly q text stream t f if qt version 200 t set encoding q text stream latin1 endif qc string index name index doxygen html file extension if config getbool generate treeview index name main doxygen html file extension t options n if config getstring chm file is empty t compiled file config getstring chm file n t compatibility 1 1 n full text search yes n contents file index hhc n default window main n default topic index name n index file index hhk n language get language string endl if config getbool binary toc t binary toc yes n if config getbool generate chi t create chi file yes n t title config getstring project name endl endl t windows endl t main config getstring project name index hhc index hhk index name index name 0x23520 0x387e 0 endl endl t files endl char s index files first while s t s endl s index files next f close else err could not open file s for writing n f name data htmlhelp createprojectfile qcstring fname config_getstring html_output qfile fname io_writeonly qtextstream qt_version setencoding qtextstream qcstring indexname htmlfileextension config_getbool generate_treeview indexname htmlfileextension config_getstring chm_file isempty config_getstring chm_file indexname getlanguagestring config_getbool binary_toc config_getbool generate_chi config_getstring project_name config_getstring project_name indexname indexname indexfiles indexfiles fname html help html help index file dict 1009 initial depth dc 0 cf kf 0 index new html help index htmlhelp htmlhelp indexfiledict htmlhelpindex int compare items gci item1 gci item2 file def md1 file def item1 file def md2 file def item2 return stricmp md1 name md2 name compareitems filedef filedef filedef filedef dir def dir def const char path definition path 1 path get display name stipping the paths mentioned in strip from path m dispname strip from path path get short name last part of path m shortname path if m shortname at m shortname length 1 strip trailing m shortname m shortname left m shortname length 1 int pi m shortname find rev if pi 1 remove everything till the last m shortname m shortname mid pi 1 set local name m shortname m filelist new file list m useddirs new q dict used dir 257 m useddirs set auto delete true m dircount g dircount m level 1 m parent 0 dirdef dirdef strip_from_path m_dispname stripfrompath m_shortname m_shortname m_shortname m_shortname m_shortname m_shortname m_shortname findrev m_shortname m_shortname setlocalname m_shortname m_filelist filelist m_useddirs qdict useddir m_useddirs setautodelete m_dircount g_dircount m_level m_parent dir def dir def delete m filelist delete m useddirs dirdef dirdef m_filelist m_useddirs qc string dir def get output file base const return dir convert name to file name return qc string sprintf dir 06d m dircount qcstring dirdef getoutputfilebase dir_ convertnametofile qcstring dir_ m_dircount bool dir def is linkable in project const return is reference config getbool show directories dirdef islinkableinproject isreference config_getbool show_directories bool dir def is linkable const return is reference is linkable in project dirdef islinkable isreference islinkableinproject void dir def add sub dir dir def subdir m subdirs in sort subdir subdir set outer scope this subdir m parent this dirdef addsubdir dirdef m_subdirs insort setouterscope m_parent void dir def add file file def fd m filelist in sort fd fd set dir def this dirdef addfile filedef m_filelist insort setdirdef bool dir def is parent of dir def dir const if dir parent this this is a parent of dir return true else if dir parent repeat for the parent of dir return is parent of dir parent else return false dirdef isparentof dirdef isparentof bool dir def dep graph is trivial const return false dirdef depgraphistrivial void dir def write detailed documentation output list ol if brief description is empty documentation is empty ol write ruler ol push generator state ol disable output generator latex ol disable output generator rtf ol write anchor 0 details ol pop generator state ol start group header ol parse text the translator tr detailed description ol end group header repeat brief description if brief description is empty config getbool repeat brief ol parse doc brief file brief line this 0 brief description false false ol new paragraph write documentation if documentation is empty ol parse doc doc file doc line this 0 documentation n true false dirdef writedetaileddocumentation outputlist briefdescription isempty isempty writeruler pushgeneratorstate outputgenerator outputgenerator writeanchor _details popgeneratorstate startgroupheader parsetext thetranslator trdetaileddescription endgroupheader briefdescription isempty config_getbool repeat_brief parsedoc brieffile briefline briefdescription newparagraph isempty parsedoc docfile docline void dir def write documentation output list ol ol push generator state qc string short title the translator tr dir reference m shortname qc string title the translator tr dir reference m dispname start file ol get output file base name title write navigation path write navigation path ol start title ol get output file base ol push generator state ol disable all but output generator html ol parse text short title ol enable all ol disable output generator html ol parse text title ol pop generator state end title ol get output file base title write brief or details if details at top if config getbool details at top write detailed documentation ol ol new paragraph else if brief description is empty ol parse doc brief file brief line this 0 brief description true false ol write string n ol push generator state ol disable output generator latex ol disable output generator rtf ol disable output generator man ol start text link 0 details ol parse text the translator tr more ol end text link ol enable all ol disable all but output generator man ol new paragraph ol pop generator state if config getstring generate tagfile is empty doxygen tag file compound kind dir endl doxygen tag file name convert toxml display name name endl doxygen tag file path convert toxml name path endl doxygen tag file filename convert toxml get output file base doxygen html file extension filename endl write graph dependency graph if config getbool directory graph config getbool have dot dot dir deps dir dep this if dir dep is trivial msg generating dependency graph for directory s n display name data ol disable output generator man ol new paragraph ol start dir dep graph todo ol parse text the translator tr dir dep graph ol end dir dep graph dir dep ol enable all ol start member sections write subdir list if m subdirs count 0 ol start member header ol parse text the translator tr dir true false ol end member header ol start member list dir def dd m subdirs first while dd ol start member item 0 ol parse text the translator tr dir false true ol insert member align ol write object link dd get reference dd get output file base 0 dd short name ol end member item if config getstring generate tagfile is empty doxygen tag file dir convert toxml dd display name dir endl if dd brief description is empty config getbool brief member desc ol start member description ol parse doc brief file brief line dd 0 dd brief description false false ol end member description ol new paragraph dd m subdirs next ol end member list write file list if m filelist count 0 ol start member header ol parse text the translator tr file true false ol end member header ol start member list file def fd m filelist first while fd ol start member item 0 ol docify the translator tr file false true ol insert member align if fd is linkable ol write object link fd get reference fd get output file base 0 fd name else ol start bold ol docify fd name ol end bold if fd generate source file ol push generator state ol disable all but output generator html ol docify ol start text link fd include name 0 ol docify ol parse text the translator tr code ol docify ol end text link ol pop generator state if config getstring generate tagfile is empty doxygen tag file file convert toxml fd name file endl ol end member item if fd brief description is empty config getbool brief member desc ol start member description ol parse doc brief file brief line fd 0 fd brief description false false ol end member description ol new paragraph fd m filelist next ol end member list ol end member sections if config getstring generate tagfile is empty write doc anchors to tag file doxygen tag file compound endl if config getbool details at top write detailed documentation ol end file ol ol pop generator state dirdef writedocumentation outputlist pushgeneratorstate qcstring shorttitle thetranslator trdirreference m_shortname qcstring thetranslator trdirreference m_dispname startfile getoutputfilebase writenavigationpath starttitle getoutputfilebase pushgeneratorstate disableallbut outputgenerator parsetext shorttitle enableall outputgenerator parsetext popgeneratorstate endtitle getoutputfilebase details_at_top config_getbool details_at_top writedetaileddocumentation newparagraph briefdescription isempty parsedoc brieffile briefline briefdescription writestring pushgeneratorstate outputgenerator outputgenerator outputgenerator starttextlink _details parsetext thetranslator trmore endtextlink enableall disableallbut outputgenerator newparagraph popgeneratorstate config_getstring generate_tagfile isempty tagfile tagfile converttoxml displayname tagfile converttoxml tagfile converttoxml getoutputfilebase htmlfileextension config_getbool directory_graph config_getbool have_dot dotdirdeps dirdep dirdep istrivial displayname outputgenerator newparagraph startdirdepgraph parsetext thetranslator trdirdepgraph enddirdepgraph dirdep enableall startmembersections m_subdirs startmemberheader parsetext thetranslator trdir endmemberheader startmemberlist dirdef m_subdirs startmemberitem parsetext thetranslator trdir insertmemberalign writeobjectlink getreference getoutputfilebase shortname endmemberitem config_getstring generate_tagfile isempty tagfile converttoxml displayname briefdescription isempty config_getbool brief_member_desc startmemberdescription parsedoc brieffile briefline briefdescription endmemberdescription newparagraph m_subdirs endmemberlist m_filelist startmemberheader parsetext thetranslator trfile endmemberheader startmemberlist filedef m_filelist startmemberitem thetranslator trfile insertmemberalign islinkable writeobjectlink getreference getoutputfilebase startbold endbold generatesourcefile pushgeneratorstate disableallbut outputgenerator starttextlink includename parsetext thetranslator trcode endtextlink popgeneratorstate config_getstring generate_tagfile isempty tagfile converttoxml endmemberitem briefdescription isempty config_getbool brief_member_desc startmemberdescription parsedoc brieffile briefline briefdescription endmemberdescription newparagraph m_filelist endmemberlist endmembersections config_getstring generate_tagfile isempty writedocanchorstotagfile tagfile config_getbool details_at_top writedetaileddocumentation endfile popgeneratorstate void dir def write dep graph q text stream t t digraph g n if config getbool dot transparent t bgcolor transparent n t compound true n t node fontsize 10 fontname helvetica n t edge labelfontsize 9 labelfontname helvetica n q dict dir def dirs in graph 257 dirs in graph insert get output file base this if parent t subgraph cluster parent get output file base n t graph bgcolor ddddee pencolor black label parent short name fontname helvetica fontsize 10 url t parent get output file base doxygen html file extension t n if is cluster t subgraph cluster get output file base n t graph bgcolor eeeeff pencolor black label url get output file base doxygen html file extension n t get output file base shape plaintext label short name n add nodes for sub directories q list iterator dir def sdi m subdirs dir def sdir for sdi to first sdir sdi current sdi t sdir get output file base shape box label sdir short name if sdir is cluster t color red else t color black t fillcolor white style filled t url sdir get output file base doxygen html file extension t n dirs in graph insert sdir get output file base sdir t n else t get output file base shape box label short name style filled fillcolor eeeeff pencolor black url get output file base doxygen html file extension n if parent t n add nodes for other used directories q dict iterator used dir udi m useddirs used dir udir printf for dir s n short name data for udi to first udir udi current udi for each used dir directly used or a parent of a directly used dir const dir def used dir udir dir dir def dir this while dir printf check relation s s same parent d s is parent of s d n dir short name data used dir short name data dir parent used dir parent used dir short name data short name data used dir is parent of this if dir used dir dir parent used dir parent used dir is parent of this include if both have the same parent or no parent t used dir get output file base shape box label used dir short name if used dir is cluster if config getbool dot transparent t fillcolor white style filled t color red t url used dir get output file base doxygen html file extension n dirs in graph insert used dir get output file base used dir break dir dir parent add relations between all selected directories dir def dir q dict iterator dir def di dirs in graph for di to first dir di current di foreach dir in the graph q dict iterator used dir udi dir used dirs used dir udir for udi to first udir udi current udi foreach used dir const dir def used dir udir dir if dir this udir inherited only show direct dependendies for this dir used dir this udir inherited only show direct dependendies for this dir used dir is parent of dir don t point to own parent dirs in graph find used dir get output file base only point to nodes that are in the graph qc string relation name relation name sprintf dir 06d 06d dir m dircount used dir m dircount if doxygen dir relations find relation name 0 new relation doxygen dir relations append relation name new dir relation relation name dir udir int nrefs udir file pairs count t dir get output file base used dir get output file base t headlabel nrefs labeldistance 1 5 t headhref relation name doxygen html file extension n t n dirdef writedepgraph qtextstream config_getbool dot_transparent qdict dirdef dirsingraph dirsingraph getoutputfilebase getoutputfilebase shortname getoutputfilebase htmlfileextension iscluster getoutputfilebase getoutputfilebase htmlfileextension getoutputfilebase shortname qlistiterator dirdef m_subdirs dirdef tofirst getoutputfilebase shortname iscluster getoutputfilebase htmlfileextension dirsingraph getoutputfilebase getoutputfilebase shortname getoutputfilebase htmlfileextension qdictiterator useddir m_useddirs useddir shortname tofirst dirdef useddir dirdef same_parent isparentof shortname useddir shortname useddir useddir shortname shortname useddir isparentof useddir useddir useddir isparentof useddir getoutputfilebase useddir shortname useddir iscluster config_getbool dot_transparent useddir getoutputfilebase htmlfileextension dirsingraph useddir getoutputfilebase useddir dirdef qdictiterator dirdef dirsingraph tofirst qdictiterator useddir useddirs useddir tofirst dirdef useddir useddir useddir isparentof dirsingraph useddir getoutputfilebase qcstring relationname relationname dir_ 06d_ m_dircount useddir m_dircount dirrelations relationname dirrelations relationname dirrelation relationname filepairs getoutputfilebase useddir getoutputfilebase relationname htmlfileextension dir def dir def merge directory in tree const qc string path printf dir def merge directory in tree s n path data int p 0 i 0 dir def dir 0 while i path find p 1 qc string part path left i 1 if match path part config getlist strip from path part dir create new dir part p i 1 return dir dirdef dirdef mergedirectoryintree qcstring dirdef mergedirectoryintree dirdef qcstring matchpath config_getlist strip_from_path createnewdir void dir def set level if m level 1 level not set before dir def p parent if p p set level m level p level 1 else m level 0 dirdef setlevel m_level dirdef setlevel m_level m_level dir def dir def create new dir const char path assert path 0 dir def dir doxygen directories find path if dir 0 new dir printf adding new dir s n path dir new dir def path printf create new dir s short s n path dir short name data doxygen directories in sort path dir return dir dirdef dirdef createnewdir dirdef dirdef createnewdir shortname insort bool dir def match path const qc string path q str list l const char s l first while s qc string prefix s if stricmp prefix left path length path 0 case insensitive compare return true s l next return false dirdef matchpath qcstring qstrlist qcstring file def dst fd bool inherited if this dir return do not add self dependencies printf add dependency s s due to s n short name data dir short name data fd name data levels match add direct dependency bool added false used dir used dir m useddirs find dir get output file base if used dir dir dependency already present file pair used pair used dir find file pair src fd get output file base dst fd get output file base if used pair 0 new file dependency printf new file n used dir add file dep src fd dst fd added true else dir file dependency already added else new directory dependency printf new file n used dir new used dir dir inherited used dir add file dep src fd dst fd m useddirs insert dir get output file base used dir added true if added dir parent add relation to parent of used dir add uses dependency dir parent src fd dst fd inherited if parent add relation for the parent of this dir as well parent add uses dependency dir src fd dst fd true filedef dstfd shortname shortname useddir useddir m_useddirs getoutputfilebase useddir filepair usedpair useddir findfilepair srcfd getoutputfilebase dstfd getoutputfilebase usedpair useddir addfiledep srcfd dstfd useddir useddir useddir addfiledep srcfd dstfd m_useddirs getoutputfilebase useddir addusesdependency srcfd dstfd addusesdependency srcfd dstfd void dir def compute dependencies file list fl m filelist if fl q list iterator file def fli fl file def fd for fli to first fd fli current fli foreach file in dir dd printf dir s file s n short name data fd name data q list include info ifl fd include file list if ifl q list iterator include info ifli ifl include info ii for ifli to first ii ifli current ifli foreach include file printf s n ii include name data if ii file def ii file def is linkable linkable file dir def used dir ii file def get dir def if used dir add dependency this dir used dir add uses dependency used dir fd ii file def false dirdef computedependencies filelist m_filelist qlistiterator filedef filedef tofirst shortname qlist includeinfo includefilelist qlistiterator includeinfo includeinfo tofirst includename filedef filedef islinkable dirdef useddir filedef getdirdef useddir thisdir useddir addusesdependency useddir filedef inline int dir list compare items gci item1 gci item2 return stricmp dir def item1 short name dir def item2 short name dirlist compareitems dirdef shortname dirdef shortname file name file name const char fn const char n file list set auto delete true f name fn name n filename filename filelist setautodelete fname file name file name filename filename void file name generate disk names qc string common prefix file def fd first int count 0 while fd if fd is reference count fd next if count 1 fd first skip references while fd fd is reference fd next name if unique so diskname is simply the name printf unique disk name s for fd s n name data fd diskname data fd diskname name copy else if count 1 multiple occurrences of the same file name printf multiple occurrences of s n name data int i 0 j 0 bool found false while found search for the common prefix of all paths fd first while fd fd is reference fd next char c fd path at i if c j i remember last position of dirname fd next while fd found if fd is reference printf i d j d fd path s fd name s n i j fd path left i data fd name data if i int fd path length warning warning input file s found multiple times n the generated documentation for this file may not be correct n fd abs file path data found true else if fd path i c found true fd next i fd first while fd printf fd set name s n fd path right fd path length j 1 name data if fd is reference qc string prefix fd path right fd path length j 1 fd set name prefix name printf non unique disk name s for fd s n prefix name data fd diskname data fd diskname prefix name fd next filename generatedisknames qcstring commonprefix filedef isreference isreference isreference isreference absfilepath setname isreference qcstring setname int file name compare items gci item1 gci item2 file name f1 file name item1 file name f2 file name item2 return stricmp f1 file name f2 file name filename compareitems filename filename filename filename filename filename int compare items gci item1 gci item2 file list fl1 file list item1 file list fl2 file list item2 return stricmp fl1 path fl2 path compareitems filelist filelist filelist filelist class list iterator class list iterator const class list cllist q list iterator class def cllist classlistiterator classlistiterator classlist qlistiterator classdef member name member name const char n q list member def name n set auto delete true membername membername qlist memberdef setautodelete member name member name membername membername int member name compare items gci item1 gci item2 member def m1 member def item1 member def m2 member def item2 class def c1 m1 get class def class def c2 m2 get class def file def f1 m1 get file def file def f2 m2 get file def if c1 c2 return strcmp c1 name c2 name else if f1 f2 return strcmp f1 name f2 name else return 0 membername compareitems memberdef memberdef memberdef memberdef classdef getclassdef classdef getclassdef filedef getfiledef filedef getfiledef member name iterator member name iterator const member name mnlist q list iterator member def mnlist membernameiterator membernameiterator membername qlistiterator memberdef int member names dict compare items gci item1 gci item2 member name n1 member name item1 member name n2 member name item2 return stricmp n1 member name n2 member name membernamesdict compareitems membername membername membername membername membername membername member name info member name info const char n q list member info name n set auto delete true membernameinfo membernameinfo qlist memberinfo setautodelete int member name info compare items gci item1 gci item2 member info m1 member info item1 member info m2 member info item2 class def c1 m1 member def get class def class def c2 m2 member def get class def file def f1 m1 member def get file def file def f2 m2 member def get file def if c1 c2 return strcmp c1 name c2 name else if f1 f2 return strcmp f1 name f2 name else return 0 membernameinfo compareitems memberinfo memberinfo memberinfo memberinfo classdef memberdef getclassdef classdef memberdef getclassdef filedef memberdef getfiledef filedef memberdef getfiledef file name iterator file name iterator const file name fname q list iterator file def fname filenameiterator filenameiterator filename qlistiterator filedef file name list file name list q list file name filenamelist filenamelist qlist filename file name list file name list filenamelist filenamelist void file name list generate disk names file name fn first while fn fn generate disk names fn next filenamelist generatedisknames filename generatedisknames int file name list compare items gci item1 gci item2 file name f1 file name item1 file name f2 file name item2 printf file name list compare items s s n f1 file name f2 file name return config getbool full path names stricmp f1 full name f2 full name stricmp f1 file name f2 file name filenamelist compareitems filename filename filename filename filenamelist compareitems filename filename config_getbool full_path_names fullname fullname filename filename file name list iterator file name list iterator const file name list fnlist q list iterator file name fnlist filenamelistiterator filenamelistiterator filenamelist qlistiterator filename int compare items gci item1 gci item2 return stricmp namespace def item1 name namespace def item2 name compareitems namespacedef namespacedef formula formula const char text static int count 0 number count form text formula formula const char int formula get id return number getid void formula list generate bitmaps const char path int x1 y1 x2 y2 q dir d path store the original directory if d exists err error output dir s does not exist n path exit 1 qc string old dir convert toqc string q dir current dir path go to the html output directory i e path q dir set current d abs path q dir this dir generate a latex file containing one formula per page qc string tex name formulas tex q list int pages to generate pages to generate set auto delete true formula list iterator fli this formula formula q file f tex name bool formula error false if f open io writeonly q text stream t f if config getbool latex batchmode t batchmode endl t documentclass article endl t usepackage epsfig endl for those who want to include images const char s config getlist extra packages first while s t usepackage s n s config getlist extra packages next t pagestyle empty endl t begin document endl int page 0 for fli to first formula fli current fli qc string result name result name sprintf form d png formula get id only formulas for which no image exists are generated q file info fi result name if fi exists we force a pagebreak after each formula t formula get formula text endl pagebreak n n pages to generate append new int page page t end document endl f close if pages to generate count 0 there are new formulas printf running latex n system latex formulas tex dev null dev null qc string latex cmd config getstring latex cmd name if latex cmd is empty latex cmd latex if i system latex cmd formulas tex 0 err problems running latex check your installation or look for typos in formulas tex n formula error true return printf running dvips n q list iterator int pli pages to generate int page ptr int page index 1 for page ptr pli current pli page index int page num page ptr msg generating image form d png for formula n page num char dvi args 4096 qc string form base form base sprintf form d page num run dvips to convert the page with number page index to an encapsulated postscript sprintf dvi args q d 600 e n 1 p d o s eps formulas dvi page index form base data if i system dvips dvi args 0 err problems running dvips check your installation n return now we read the generated postscript file to extract the bounding box q file info fi form base eps if fi exists qc string eps file to string form base eps int i eps find bounding box if i 1 sscanf eps data i bounding box d d d d x1 y1 x2 y2 else err error couldn t extract bounding box n next we generate a postscript file which contains the eps and displays it in the right colors and the right bounding box f set name form base ps if f open io writeonly q text stream t f t 1 1 1 setrgbcolor endl anti alias to white background t newpath endl t 1 1 moveto endl t x2 x1 2 1 lineto endl t x2 x1 2 y2 y1 2 lineto endl t 1 y2 y1 2 lineto endl t closepath endl t fill endl t x1 y1 translate endl t 0 0 0 setrgbcolor endl t form base eps run endl f close scale the image so that it is four times larger than needed and the sizes are a multiple of four const double scale factor 16 0 3 0 int gx int x2 x1 scale factor 3 2 int gy int y2 y1 scale factor 3 2 then we run ghostscript to convert the postscript to a pixmap the pixmap is a truecolor image where only black and white are used if defined win32 defined cygwin char gs args 256 sprintf gs args q g dx d r dx dx sdevice ppmraw s output file s pnm dnopause dbatch s ps gx gy int scale factor 72 int scale factor 72 form base data form base data gswin32 is a gui api which will pop up a window and run asynchronously to prevent both we use shell execute ex and wait for single object thanks to robert golias for the code shellexecuteinfo s info sizeof shellexecuteinfo structure size see mask nocloseprocess leave the process running null window handle null action to perform open gswin32 exe file to execute gs args argument list null use current working dir sw hide minimize on start up 0 application instance handle null ignored id list null ignored class name null ignored key class 0 ignored hot key null ignored icon null resulting application handle if shell execute ex s info err problem running ghostscript check your installation n return else if s info h process executable was launched wait for it to finish wait for single object s info h process infinite else char gs args 4096 sprintf gs args q g dx d r dx dx sdevice ppmraw s output file s pnm dnopause dbatch s ps gx gy int scale factor 72 int scale factor 72 form base data form base data if i system gs gs args 0 err problem running ghostscript check your installation n return endif f set name form base pnm uint imagex 0 imagey 0 we read the generated image again to obtain the pixel data if f open io readonly q text stream t f qc string s if t eof s t read line if s length 2 s left 2 p6 err error ghostscript produced an illegal image format else assume the size if after the first line that does not start with excluding the first line of the file while t eof s t read line s is empty s at 0 sscanf s d d imagex imagey if imagex 0 imagey 0 printf converting image n char data new char imagex imagey 3 rgb 8 8 8 format uint i x y ix iy f read block data imagex imagey 3 image src image imagex imagey filtered image imagex imagey dst image imagex 4 imagey 4 uchar ps src image get data convert image to black 1 and white 0 index for i 0 i imagex imagey i ps data i 3 0 1 0 apply a simple box filter to the image static int filter mask 1 2 1 2 8 2 1 2 1 for y 0 y src image get height y for x 0 x src image get width x int s 0 for iy 0 iy 2 iy for ix 0 ix 2 ix s src image get pixel x ix 1 y iy 1 filter mask iy 3 ix filtered image set pixel x y s down sample the image to 1 16th of the area using 16 gray scale colors todo optimize this code for y 0 y dst image get height y for x 0 x dst image get width x int xp x 2 int yp y 2 int c filtered image get pixel xp 0 yp 0 filtered image get pixel xp 1 yp 0 filtered image get pixel xp 2 yp 0 filtered image get pixel xp 3 yp 0 filtered image get pixel xp 0 yp 1 filtered image get pixel xp 1 yp 1 filtered image get pixel xp 2 yp 1 filtered image get pixel xp 3 yp 1 filtered image get pixel xp 0 yp 2 filtered image get pixel xp 1 yp 2 filtered image get pixel xp 2 yp 2 filtered image get pixel xp 3 yp 2 filtered image get pixel xp 0 yp 3 filtered image get pixel xp 1 yp 3 filtered image get pixel xp 2 yp 3 filtered image get pixel xp 3 yp 3 here we scale and clip the color value so the resulting image has a reasonable contrast dst image set pixel x y qmin 15 c 15 16 10 save the result as a png qc string formulalist generatebitmaps qdir qcstring olddir converttoqcstring qdir currentdirpath qdir setcurrent abspath qdir thisdir qcstring texname _formulas qlist pagestogenerate pagestogenerate setautodelete formulalistiterator qfile texname formulaerror io_writeonly qtextstream config_getbool latex_batchmode config_getlist extra_packages config_getlist extra_packages tofirst qcstring resultname resultname form_ getid qfileinfo resultname getformulatext pagestogenerate pagestogenerate _formulas qcstring latexcmd config_getstring latex_cmd_name latexcmd isempty latexcmd isystem latexcmd _formulas _formulas formulaerror qlistiterator pagestogenerate pageptr pageindex pageptr pageindex pagenum pageptr form_ pagenum dviargs qcstring formbase formbase _form pagenum pageindex dviargs _formulas pageindex formbase isystem dviargs qfileinfo formbase qcstring filetostring formbase boundingbox boundingbox setname formbase io_writeonly qtextstream formbase scalefactor scalefactor scalefactor _win32 __cygwin__ gsargs gsargs soutputfile scalefactor scalefactor formbase formbase shellexecuteex waitforsingleobject sinfo see_mask_nocloseprocess gsargs sw_hide shellexecuteex sinfo sinfo hprocess waitforsingleobject sinfo hprocess gsargs gsargs soutputfile scalefactor scalefactor formbase formbase isystem gsargs setname formbase io_readonly qtextstream qcstring readline readline isempty readblock srcimage filteredimage dstimage srcimage getdata filtermask srcimage getheight srcimage getwidth srcimage getpixel filtermask filteredimage setpixel dstimage getheight dstimage getwidth filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel filteredimage getpixel dstimage setpixel qcstring int ref list add ref item if m dict 0 m dict new q int dict ref item 1009 m dict set auto delete true m dictiterator new q int dict iterator ref item m dict ref item item new ref item m id m dict insert m id item return m id reflist addrefitem m_dict m_dict qintdict refitem m_dict setautodelete m_dictiterator qintdictiterator refitem m_dict refitem refitem m_id m_dict m_id m_id ref item ref list get ref item int item id return m dict m dict find item id 0 refitem reflist getrefitem itemid m_dict m_dict itemid ref item ref list get first ref item return m dictiterator m dictiterator to first 0 refitem reflist getfirstrefitem m_dictiterator m_dictiterator tofirst ref item ref list get next ref item return m dictiterator m dictiterator operator 0 refitem reflist getnextrefitem m_dictiterator m_dictiterator qc string ref list list name const return m listname qcstring reflist listname m_listname qc string ref list page title const return m pagetitle qcstring reflist pagetitle m_pagetitle qc string ref list section title const return m sectitle qcstring reflist sectiontitle m_sectitle m dict 0 m dictiterator 0 m id 0 m listname list name m pagetitle page title m sectitle sec title m_dict m_dictiterator m_id m_listname listname m_pagetitle pagetitle m_sectitle sectitle ref list ref list delete m dictiterator delete m dict reflist reflist m_dictiterator m_dict m dir dir m filepairs 7 m inherited inherited m filepairs set auto delete true m_dir m_filepairs m_inherited m_filepairs setautodelete used dir used dir useddir useddir void used dir add file dep file def src fd file def dst fd m filepairs in sort src fd get output file base dst fd get output file base new file pair src fd dst fd useddir addfiledep filedef srcfd filedef dstfd m_filepairs insort srcfd getoutputfilebase dstfd getoutputfilebase filepair srcfd dstfd file pair used dir find file pair const char name qc string n name return n is empty 0 m filepairs find n filepair useddir findfilepair qcstring isempty m_filepairs int file pair dict compare items gci item1 gci item2 file pair left file pair item1 file pair right file pair item2 int order hi stricmp left source name right source name int order lo stricmp left destination name right destination name return order hi 0 order lo order hi filepairdict compareitems filepair filepair filepair filepair orderhi orderlo orderhi orderlo orderhi void dir relation write documentation output list ol ol push generator state ol disable all but output generator html qc string short title m src short name rarr m dst dir short name relation the translator tr dir relation m shortname qc string title m src display name m dst dir short name relation the translator tr dir relation m dispname start file ol get output file base get output file base title write navigation path m src write navigation path ol start title ol get output file base ol parse text short title end title ol get output file base title ol write string h3 short title h3 ol write string table class dirtab ol write string tr class dirtab ol write string th class dirtab file in m src write path fragment ol ol write string th ol write string th class dirtab includes file in m dst dir write path fragment ol ol write string th ol write string tr s dict file pair iterator fpi m dst file pairs file pair fp for fpi to first fp fpi current fpi ol write string tr class dirtab ol write string td class dirtab write partial file path ol m src fp source ol write string td ol write string td class dirtab write partial file path ol m dst dir fp destination ol write string td ol write string tr ol write string table end file ol ol pop generator state dirrelation writedocumentation outputlist pushgeneratorstate disableallbut outputgenerator qcstring shorttitle m_src shortname m_dst shortname thetranslator trdirrelation m_shortname qcstring m_src displayname m_dst shortname thetranslator trdirrelation m_dispname startfile getoutputfilebase getoutputfilebase m_src writenavigationpath starttitle getoutputfilebase parsetext shorttitle endtitle getoutputfilebase writestring shorttitle writestring writestring writestring m_src writepathfragment writestring writestring m_dst writepathfragment writestring writestring sdict filepair m_dst filepairs filepair tofirst writestring writestring writepartialfilepath m_src writestring writestring writepartialfilepath m_dst writestring writestring writestring endfile popgeneratorstate int compare items gci item1 gci item2 return stricmp dir def item1 short name dir def item2 short name compareitems dirdef shortname dirdef shortname dot class graph dot class graph class def cd dot node graph type t int max recursion depth printf dot class graph dot class graph s n cd display name data m graphtype t m maxdistance 0 m recdepth max recursion depth qc string tmp url if cd is linkable tmp url cd get reference cd get output file base qc string class name cd display name if cd template arguments class name temp arg list to string cd template arguments m startnode new dot node m curnodenumber class name tmp url data 0 distance true is a root node cd m usednodes new q dict dot node 1009 m usednodes insert class name m startnode classs dict iterator cli doxygen classs dict class def icd for cli to first icd cli current cli icd init template mapping printf root node s n cd name data if m recdepth 0 build graph cd m startnode 1 true if t dot node inheritance build graph cd m startnode 1 false m diskname cd get file base copy dotclassgraph dotclassgraph classdef dotnode graphtype maxrecursiondepth dotclassgraph dotclassgraph displayname m_graphtype m_maxdistance m_recdepth maxrecursiondepth qcstring tmp_url islinkable tmp_url getreference getoutputfilebase qcstring classname displayname templatearguments classname temparglisttostring templatearguments m_startnode dotnode m_curnodenumber classname tmp_url m_usednodes qdict dotnode m_usednodes classname m_startnode classsdict classsdict classdef tofirst inittemplatemapping m_recdepth buildgraph m_startnode dotnode buildgraph m_startnode m_diskname getfilebase dot class graph dot class graph delete nodes m startnode delete m usednodes dotclassgraph dotclassgraph deletenodes m_startnode m_usednodes bool dot class graph is trivial const if m graphtype dot node inheritance return m startnode m children 0 m startnode m parents 0 else return m startnode m children 0 dotclassgraph istrivial m_graphtype dotnode m_startnode m_children m_startnode m_parents m_startnode m_children bool generate image map q dir d path store the original directory if d exists err error output dir s does not exist n path exit 1 qc string old dir convert toqc string q dir current dir path go to the html output directory i e path q dir set current d abs path q dir this dir qc string base name qc string map name switch m graphtype case dot node collaboration map name coll map break case interface map name intf map break case dot node inheritance map name inherit map break default assert 0 break base name convert name to file disk name qc string img ext config getenum dot image format qc string md5 compute md5 signature m startnode root m graphtype gt format format istb rank lr rank m graphtype dot node inheritance render parent qmin m recdepth m maxdistance max dist true back arrows if check and update md5 signature base name md5 q file info base name map exists find maximal dot graph m startnode root qmin m recdepth m maxdistance max dist base name base name this dir this dir m graphtype gt format format istb rank lr rank m graphtype dot node inheritance render parents true back arrows if format bitmap run dot to create a bitmap image qc string dot args max cmd line qc string img name base name img ext dot runner dot run base name dot dot run add job img ext img name if generate image map dot run add job imap base name map if dot run run q dir set current old dir return base name dot args sprintf s dot t s o s base name data img ext data img name data if generate image map run dot also to create an image map dot args qc string max cmd line sprintf timap o s map base name data if i system config getstring dot path dot dot args 0 err error problems running dot check your installation n q dir set current old dir return base name check dot result img name else if format eps run dot to create a eps image dot runner dot run base name dot dot run add job ps base name eps if dot run run q dir set current old dir return base name qc string dot args max cmd line dot args sprintf tps s dot o s eps base name data base name data if i system config getstring dot path dot dot args 0 err error problems running dot check your installation n q dir set current old dir return base name if config getbool use pdflatex qc string epstopdf args max cmd line epstopdf args sprintf s eps outfile s pdf base name data base name data if i system epstopdf epstopdf args true 0 err error problems running epstopdf check your tex installation n q dir set current old dir return base name if config getbool dot cleanup this dir remove base name dot if format bitmap generate image map run dot to create a image map qc string map label convert name to file m startnode m label map name out p center img src rel path base name img ext border 0 usemap map label alt switch m graphtype case dot node collaboration out collaboration graph break case dot node inheritance out inheritance graph break default assert 0 break out center endl q string tmpstr q texto stream tmpout tmpstr convert map file tmpout base name map rel path if tmpstr is empty out map name map label endl out tmpstr out map endl this dir remove base name map else if format eps run dot to create a eps image int width height if read bounding boxeps base name eps width height err error could not extract bounding box from eps n q dir set current old dir return base name int max width 420 approx page width in points out begin figure h n begin center n leavevmode n includegraphics width qmin width 2 max width pt base name n end center n end figure n q dir set current old dir return base name generateimagemap qdir qcstring olddir converttoqcstring qdir currentdirpath qdir setcurrent abspath qdir thisdir qcstring basename qcstring mapname m_graphtype dotnode mapname coll_map mapname intf_map dotnode mapname inherit_map basename convertnametofile diskname qcstring imgext config_getenum dot_image_format qcstring computemd5signature m_startnode m_graphtype istbrank lrrank m_graphtype dotnode renderparent m_recdepth m_maxdistance maxdist backarrows checkandupdatemd5signature basename qfileinfo basename findmaximaldotgraph m_startnode m_recdepth m_maxdistance maxdist basename basename thisdir thisdir m_graphtype istbrank lrrank m_graphtype dotnode renderparents backarrows qcstring dotargs maxcmdline qcstring imgname basename imgext dotrunner dotrun basename dotrun addjob imgext imgname generateimagemap dotrun addjob basename dotrun qdir setcurrent olddir basename dotargs basename imgext imgname generateimagemap dotargs qcstring maxcmdline basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename checkdotresult imgname dotrunner dotrun basename dotrun addjob basename dotrun qdir setcurrent olddir basename qcstring dotargs maxcmdline dotargs basename basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename config_getbool use_pdflatex qcstring epstopdfargs maxcmdline epstopdfargs basename basename isystem epstopdfargs qdir setcurrent olddir basename config_getbool dot_cleanup thisdir basename generateimagemap qcstring maplabel convertnametofile m_startnode m_label _ mapname relpath basename imgext maplabel m_graphtype dotnode dotnode qstring qtextostream convertmapfile basename relpath isempty maplabel thisdir basename readboundingboxeps basename qdir setcurrent olddir basename maxwidth maxwidth basename qdir setcurrent olddir basename void dot class graph writexml q text stream t q dict iterator dot node dni m usednodes dot node node for node dni current dni node writexml t true dotclassgraph qtextstream qdictiterator dotnode m_usednodes dotnode void dot class graph writedef q text stream t q dict iterator dot node dni m usednodes dot node node for node dni current dni node writedef t dotclassgraph qtextstream qdictiterator dotnode m_usednodes dotnode qc string dot class graph disk name const qc string result m diskname copy switch m graphtype case dot node collaboration result coll graph break case interface result intf graph break case dot node inheritance result inherit graph break default assert 0 break return result qcstring dotclassgraph diskname qcstring m_diskname m_graphtype dotnode _coll_graph _intf_graph dotnode _inherit_graph void dot class graph build graph class def cd dot node n int distance bool base printf doc class graph build graph s distance d base d n cd name data distance base add inheritance relations if m graphtype dot node inheritance m graphtype dot node collaboration base class list iterator bcli base cd base classes cd sub classes base class def bcd for bcd bcli current bcli printf inheritance relation s s templ s n cd name data bcd class def name data bcd templ specifiers data add class bcd class def n bcd prot 0 distance bcd used name bcd templ specifiers base if m graphtype dot node collaboration add usage relations uses class dict dict base cd used implementation classes cd used by implementation classes if dict uses class dict iterator ucdi dict uses class def ucd for ucd ucdi current ucdi if base printf s uses s n cd name data ucd class def name data else printf s is used by s n cd name data ucd class def name data printf drawing n qc string label q dict iterator void dvi ucd accessors const char s bool first true for s dvi current key dvi if first label s first false else label qc string n s add class ucd class def n edge info purple label distance 0 ucd templ specifiers base add template instantiation relations if config getbool template relations if base template relations for base classes class def templ master cd template master if templ master q dict iterator class def cli templ master get template instances class def templ instance for templ instance cli current cli if templ instance cd add class templ master n edge info orange cli current key distance 0 0 true else template relations for super classes q dict class def templ instances cd get template instances if templ instances q dict iterator class def cli templ instances class def templ instance for templ instance cli current cli add class templ instance n edge info orange cli current key distance 0 0 false dotclassgraph buildgraph classdef dotnode docclassgraph buildgraph m_graphtype dotnode m_graphtype dotnode baseclasslistiterator baseclasses subclasses baseclassdef classdef templspecifiers addclass classdef usedname templspecifiers m_graphtype dotnode usesclassdict usedimplementationclasses usedbyimplementationclasses usesclassdictiterator usesclassdef classdef classdef qcstring qdictiterator currentkey qcstring addclass classdef edgeinfo templspecifiers config_getbool template_relations classdef templmaster templatemaster templmaster qdictiterator classdef templmaster gettemplateinstances classdef templinstance templinstance templinstance addclass templmaster edgeinfo currentkey qdict classdef templinstances gettemplateinstances templinstances qdictiterator classdef templinstances classdef templinstance templinstance addclass templinstance edgeinfo currentkey const char label int distance const char used name const char templ spec bool base if config getbool hide undoc classes cd is linkable return int edge style label prot edge info orange edge info dashed edge info solid qc string class name if used name name is a typedef class name used name else if templ spec name has a template part class name insert template specifier in scope cd name templ spec else just a normal name class name cd display name printf dot class graph add class class s parent s prot d label s dist d used name s templ spec s base d n class name data n m label data prot label distance used name templ spec base dot node bn m usednodes find class name if bn class already inserted if base n add child bn prot edge style label bn add parent n else bn add child n prot edge style label n add parent bn bn set distance distance printf add exiting node s of s n bn m label data n m label data else new class qc string display name class name if config getbool hide scope names display name strip scope display name qc string tmp url if cd is linkable tmp url cd get reference cd get output file base bn new dot node m curnodenumber display name tmp url data distance false root node cd if distance m maxdistance m maxdistance distance if base n add child bn prot edge style label bn add parent n else bn add child n prot edge style label n add parent bn m usednodes insert class name bn printf add new child node s to s n class name data n m label data we use i s o to cause one more level than intended which is used to detect truncated nodes if distance m recdepth build graph cd bn distance 1 base usedname templspec config_getbool hide_undoc_classes islinkable edgestyle edgeinfo edgeinfo edgeinfo qcstring classname usedname classname usedname templspec classname inserttemplatespecifierinscope templspec classname displayname dotclassgraph addclass usedname templspec classname m_label usedname templspec dotnode m_usednodes classname addchild edgestyle addparent addchild edgestyle addparent setdistance m_label m_label qcstring displayname classname config_getbool hide_scope_names displayname stripscope displayname qcstring tmp_url islinkable tmp_url getreference getoutputfilebase dotnode m_curnodenumber displayname tmp_url rootnode m_maxdistance m_maxdistance addchild edgestyle addparent addchild edgestyle addparent m_usednodes classname classname m_label m_recdepth buildgraph dot incl dep graph dot incl dep graph file def fd int max recursion depth bool inverse m maxdistance 0 m recdepth max recursion depth m inverse inverse assert fd 0 m diskname fd get file base copy qc string tmp url fd get reference fd get file base m startnode new dot node m curnodenumber fd doc name tmp url data 0 distance true root node m usednodes new q dict dot node 1009 m usednodes insert fd abs file path m startnode build graph m startnode fd 1 dotincldepgraph dotincldepgraph filedef maxrecursiondepth m_maxdistance m_recdepth maxrecursiondepth m_inverse m_diskname getfilebase qcstring tmp_url getreference getfilebase m_startnode dotnode m_curnodenumber docname tmp_url m_usednodes qdict dotnode m_usednodes absfilepath m_startnode buildgraph m_startnode dot incl dep graph dot incl dep graph delete nodes m startnode delete m usednodes dotincldepgraph dotincldepgraph deletenodes m_startnode m_usednodes q dir d path store the original directory if d exists err error output dir s does not exist n path exit 1 qc string old dir convert toqc string q dir current dir path go to the html output directory i e path q dir set current d abs path q dir this dir qc string base name m diskname if m inverse base name dep base name incl base name convert name to file base name qc string map name m startnode m label copy if m inverse map name dep qc string img ext config getenum dot image format qc string md5 compute md5 signature m startnode root dot node call graph gt format format true lr rank false render parents qmin m recdepth m maxdistance max dist false back arrows if check and update md5 signature base name md5 q file info base name map exists find maximal dot graph m startnode root qmin m recdepth m maxdistance max dist base name base name this dir this dir dot node call graph gt format format true lr rank false render parents m inverse back arrows if format bitmap run dot to create a bitmap image qc string dot args max cmd line qc string img name base name img ext dot runner dot run base name dot dot run add job img ext img name if generate image map dot run add job imap base name map if dot run run q dir set current old dir return base name dot args sprintf s dot t s o s base name data img ext data img name data if generate image map run dot also to create an image map dot args qc string max cmd line sprintf timap o s map base name data if i system config getstring dot path dot dot args 0 err problems running dot check your installation n q dir set current old dir return base name check dot result img name else if format eps run dot to create a eps image dot runner dot run base name dot dot run add job ps base name eps if dot run run q dir set current old dir return base name qc string dot args max cmd line dot args sprintf tps s dot o s eps base name data base name data if i system config getstring dot path dot dot args 0 err problems running dot check your installation n q dir set current old dir return base name if config getbool use pdflatex qc string epstopdf args max cmd line epstopdf args sprintf s eps outfile s pdf base name data base name data if i system epstopdf epstopdf args true 0 err error problems running epstopdf check your tex installation n q dir set current old dir return base name if format bitmap generate image map out p center img src rel path base name img ext border 0 usemap map name map alt out out center endl q string tmpstr q texto stream tmpout tmpstr convert map file tmpout base name map rel path if tmpstr is empty out map name map name map endl out tmpstr out map endl this dir remove base name map else if format eps int width height if read bounding boxeps base name eps width height err error could not extract bounding box from eps n q dir set current old dir return base name int max width 420 approx page width in points out begin figure h n begin center n leavevmode n includegraphics width qmin width 2 max width pt base name n end center n end figure n if config getbool dot cleanup this dir remove base name dot q dir set current old dir return base name qdir qcstring olddir converttoqcstring qdir currentdirpath qdir setcurrent abspath qdir thisdir qcstring basename m_diskname m_inverse basename _dep basename _incl basename convertnametofile basename qcstring mapname m_startnode m_label m_inverse mapname qcstring imgext config_getenum dot_image_format qcstring computemd5signature m_startnode dotnode callgraph lrrank renderparents m_recdepth m_maxdistance maxdist backarrows checkandupdatemd5signature basename qfileinfo basename findmaximaldotgraph m_startnode m_recdepth m_maxdistance maxdist basename basename thisdir thisdir dotnode callgraph lrrank renderparents m_inverse backarrows qcstring dotargs maxcmdline qcstring imgname basename imgext dotrunner dotrun basename dotrun addjob imgext imgname generateimagemap dotrun addjob basename dotrun qdir setcurrent olddir basename dotargs basename imgext imgname generateimagemap dotargs qcstring maxcmdline basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename checkdotresult imgname dotrunner dotrun basename dotrun addjob basename dotrun qdir setcurrent olddir basename qcstring dotargs maxcmdline dotargs basename basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename config_getbool use_pdflatex qcstring epstopdfargs maxcmdline epstopdfargs basename basename isystem epstopdfargs qdir setcurrent olddir basename generateimagemap relpath basename imgext mapname _map qstring qtextostream convertmapfile basename relpath isempty mapname _map thisdir basename readboundingboxeps basename qdir setcurrent olddir basename maxwidth maxwidth basename config_getbool dot_cleanup thisdir basename qdir setcurrent olddir basename bool dot incl dep graph is trivial const return m startnode m children 0 dotincldepgraph istrivial m_startnode m_children qc string dot incl dep graph disk name const qc string result m diskname copy if m inverse result dep result incl return convert name to file result qcstring dotincldepgraph diskname qcstring m_diskname m_inverse _dep _incl convertnametofile void dot incl dep graph writexml q text stream t q dict iterator dot node dni m usednodes dot node node for node dni current dni node writexml t false dotincldepgraph qtextstream qdictiterator dotnode m_usednodes dotnode void dot incl dep graph build graph dot node n file def fd int distance q list include info include files m inverse fd included by file list fd include file list q list iterator include info ili include files include info ii for ii ili current ili file def bfd ii file def qc string in ii include name printf in s bfd p n ii include name data bfd bool doc true src false if bfd in bfd abs file path doc bfd is linkable src bfd generate source file if doc src config getbool hide undoc relations qc string url if bfd url bfd get output file base copy if doc src url source dot node bn m usednodes find in if bn file is already a node in the graph n add child bn 0 0 0 bn add parent n bn set distance distance else qc string tmp url if bfd tmp url doc src bfd get reference url qc string bn new dot node m curnodenumber ii include name tmp url distance if distance m maxdistance m maxdistance distance n add child bn 0 0 0 bn add parent n m usednodes insert in bn we use i s o to cause one more level than intended which is used to detect truncated nodes if bfd distance m recdepth build graph bn bfd distance 1 dotincldepgraph buildgraph dotnode filedef qlist includeinfo includefiles m_inverse includedbyfilelist includefilelist qlistiterator includeinfo includefiles includeinfo filedef filedef qcstring includename includename absfilepath islinkable generatesourcefile config_getbool hide_undoc_relations qcstring getoutputfilebase dotnode m_usednodes addchild addparent setdistance qcstring tmp_url tmp_url getreference qcstring dotnode m_curnodenumber includename tmp_url m_maxdistance m_maxdistance addchild addparent m_usednodes m_recdepth buildgraph dot call graph dot call graph member def md int max recursion depth m maxdistance 0 m recdepth max recursion depth m diskname md get output file base md anchor m scope md get outer scope qc string unique id unique id md get reference md get output file base md anchor qc string name if config getbool hide scope names name md name else name md qualified name m startnode new dot node m curnodenumber link to text name false unique id data 0 distance true root node m usednodes new q dict dot node 1009 m usednodes insert unique id m startnode build graph m startnode md 1 dotcallgraph dotcallgraph memberdef maxrecursiondepth m_maxdistance m_recdepth maxrecursiondepth m_diskname getoutputfilebase _ m_scope getouterscope qcstring uniqueid uniqueid getreference getoutputfilebase qcstring config_getbool hide_scope_names qualifiedname m_startnode dotnode m_curnodenumber linktotext uniqueid m_usednodes qdict dotnode m_usednodes uniqueid m_startnode buildgraph m_startnode dot call graph dot call graph delete nodes m startnode delete m usednodes dotcallgraph dotcallgraph deletenodes m_startnode m_usednodes const char path const char rel path bool generate image map q dir d path store the original directory if d exists err error output dir s does not exist n path exit 1 qc string old dir convert toqc string q dir current dir path go to the html output directory i e path q dir set current d abs path q dir this dir qc string base name m diskname cgraph qc string map name base name qc string img ext config getenum dot image format qc string md5 compute md5 signature m startnode root dot node call graph gt format format true lr rank false render parents qmin m recdepth m maxdistance max dist false back arrows if check and update md5 signature base name md5 q file info base name map exists find maximal dot graph m startnode root qmin m recdepth m maxdistance max dist base name base name this dir this dir dot node call graph gt format format true lr rank false render parents false back arrows if format bitmap run dot to create a bitmap image qc string dot args max cmd line qc string img name base name img ext dot runner dot run base name dot dot run add job img ext img name if generate image map dot run add job imap base name map if dot run run q dir set current old dir return base name dot args sprintf s dot t s o s base name data img ext data img name data if generate image map run dot also to create an image map dot args qc string max cmd line sprintf timap o s map base name data if i system config getstring dot path dot dot args 0 err problems running dot check your installation n q dir set current old dir return base name check dot result img name else if format eps run dot to create a eps image dot runner dot run base name dot dot run add job ps base name eps if dot run run q dir set current old dir return base name qc string dot args max cmd line dot args sprintf tps s dot o s eps base name data base name data if i system config getstring dot path dot dot args 0 err problems running dot check your installation n q dir set current old dir return base name if config getbool use pdflatex qc string epstopdf args max cmd line epstopdf args sprintf s eps outfile s pdf base name data base name data if i system epstopdf epstopdf args true 0 err error problems running epstopdf check your tex installation n q dir set current old dir return base name if format bitmap generate image map out p center img src rel path base name img ext border 0 usemap map name map alt out out center endl q string tmpstr q texto stream tmpout tmpstr convert map file tmpout base name map rel path if tmpstr is empty out map name map name map endl out tmpstr out map endl this dir remove base name map else if format eps int width height if read bounding boxeps base name eps width height err error could not extract bounding box from eps n q dir set current old dir return base name int max width 420 approx page width in points out begin figure h n begin center n leavevmode n includegraphics width qmin width 2 max width pt base name n end center n end figure n if config getbool dot cleanup this dir remove base name dot q dir set current old dir return base name relpath generateimagemap qdir qcstring olddir converttoqcstring qdir currentdirpath qdir setcurrent abspath qdir thisdir qcstring basename m_diskname _cgraph qcstring mapname basename qcstring imgext config_getenum dot_image_format qcstring computemd5signature m_startnode dotnode callgraph lrrank renderparents m_recdepth m_maxdistance maxdist backarrows checkandupdatemd5signature basename qfileinfo basename findmaximaldotgraph m_startnode m_recdepth m_maxdistance maxdist basename basename thisdir thisdir dotnode callgraph lrrank renderparents backarrows qcstring dotargs maxcmdline qcstring imgname basename imgext dotrunner dotrun basename dotrun addjob imgext imgname generateimagemap dotrun addjob basename dotrun qdir setcurrent olddir basename dotargs basename imgext imgname generateimagemap dotargs qcstring maxcmdline basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename checkdotresult imgname dotrunner dotrun basename dotrun addjob basename dotrun qdir setcurrent olddir basename qcstring dotargs maxcmdline dotargs basename basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename config_getbool use_pdflatex qcstring epstopdfargs maxcmdline epstopdfargs basename basename isystem epstopdfargs qdir setcurrent olddir basename generateimagemap relpath basename imgext mapname _map qstring qtextostream convertmapfile basename relpath isempty mapname _map thisdir basename readboundingboxeps basename qdir setcurrent olddir basename maxwidth maxwidth basename config_getbool dot_cleanup thisdir basename qdir setcurrent olddir basename void dot call graph build graph dot node n member def md int distance members dict refs md get references members if refs members dict iterator mri refs member def rmd for rmd mri current mri if rmd is function qc string unique id unique id rmd get reference rmd get output file base rmd anchor dot node bn m usednodes find unique id if bn file is already a node in the graph n add child bn 0 0 0 bn add parent n bn set distance distance else qc string name if config getbool hide scope names name rmd get outer scope m scope rmd name rmd qualified name else name rmd qualified name bn new dot node m curnodenumber link to text name false unique id distance if distance m maxdistance m maxdistance distance n add child bn 0 0 0 bn add parent n m usednodes insert unique id bn we use i s o to cause one more level than intended which is used to detect truncated nodes if distance m recdepth build graph bn rmd distance 1 dotcallgraph buildgraph dotnode memberdef membersdict getreferencesmembers membersdict memberdef isfunction qcstring uniqueid uniqueid getreference getoutputfilebase dotnode m_usednodes uniqueid addchild addparent setdistance qcstring config_getbool hide_scope_names getouterscope m_scope qualifiedname qualifiedname dotnode m_curnodenumber linktotext uniqueid m_maxdistance m_maxdistance addchild addparent m_usednodes uniqueid m_recdepth buildgraph bool dot call graph is trivial const return m startnode m children 0 dotcallgraph istrivial m_startnode m_children dot dir deps dot dir deps dir def dir m dir dir dotdirdeps dotdirdeps dirdef m_dir dot dir deps dot dir deps dotdirdeps dotdirdeps bool dot dir deps is trivial const return m dir dep graph is trivial dotdirdeps istrivial m_dir depgraphistrivial bool generate image map q dir d path store the original directory if d exists err error output dir s does not exist n path exit 1 qc string old dir convert toqc string q dir current dir path go to the html output directory i e path q dir set current d abs path q dir this dir qc string base name m dir get output file base dep qc string map name base name qc string img ext config getenum dot image format todo create check update md5 checksum q file f base name dot if f open io writeonly err cannot create file s dot for writing n base name data q text stream t f m dir write dep graph t f close if format bitmap run dot to create a bitmap image qc string dot args max cmd line qc string img name base name img ext dot runner dot run base name dot dot run add job img ext img name if generate image map dot run add job imap base name map if dot run run q dir set current old dir return base name dot args sprintf s dot t s o s base name data img ext data img name data if generate image map run dot also to create an image map dot args qc string max cmd line sprintf timap o s map base name data if i system config getstring dot path dot dot args 0 err problems running dot check your installation n q dir set current old dir return base name check dot result img name else if format eps run dot to create a eps image dot runner dot run base name dot dot run add job ps base name eps if dot run run q dir set current old dir return base name qc string dot args max cmd line dot args sprintf tps s dot o s eps base name data base name data if i system config getstring dot path dot dot args 0 err problems running dot check your installation n q dir set current old dir return base name if config getbool use pdflatex qc string epstopdf args max cmd line epstopdf args sprintf s eps outfile s pdf base name data base name data if i system epstopdf epstopdf args true 0 err error problems running epstopdf check your tex installation n q dir set current old dir return base name if format bitmap generate image map out p center img src rel path base name img ext border 0 usemap map name map alt out m dir display name out out center endl q string tmpstr q texto stream tmpout tmpstr convert map file tmpout base name map rel path true if tmpstr is empty out map name map name map endl out tmpstr out map endl else printf map is empty n this dir remove base name map else if format eps int width height if read bounding boxeps base name eps width height err error could not extract bounding box from eps n q dir set current old dir return base name int max width 420 approx page width in points out begin figure h n begin center n leavevmode n includegraphics width qmin width 2 max width pt base name n end center n end figure n if config getbool dot cleanup this dir remove base name dot q dir set current old dir return base name generateimagemap qdir qcstring olddir converttoqcstring qdir currentdirpath qdir setcurrent abspath qdir thisdir qcstring basename m_dir getoutputfilebase _dep qcstring mapname basename qcstring imgext config_getenum dot_image_format qfile basename io_writeonly basename qtextstream m_dir writedepgraph qcstring dotargs maxcmdline qcstring imgname basename imgext dotrunner dotrun basename dotrun addjob imgext imgname generateimagemap dotrun addjob basename dotrun qdir setcurrent olddir basename dotargs basename imgext imgname generateimagemap dotargs qcstring maxcmdline basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename checkdotresult imgname dotrunner dotrun basename dotrun addjob basename dotrun qdir setcurrent olddir basename qcstring dotargs maxcmdline dotargs basename basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename config_getbool use_pdflatex qcstring epstopdfargs maxcmdline epstopdfargs basename basename isystem epstopdfargs qdir setcurrent olddir basename generateimagemap relpath basename imgext mapname _map m_dir displayname qstring qtextostream convertmapfile basename relpath isempty mapname _map thisdir basename readboundingboxeps basename qdir setcurrent olddir basename maxwidth maxwidth basename config_getbool dot_cleanup thisdir basename qdir setcurrent olddir basename dot gfx hierarchy table dot gfx hierarchy table m curnodenumber 0 m rootnodes new q list dot node m usednodes new q dict dot node 1009 m usednodes set auto delete true m rootsubgraphs new dot node list build a graph with each class as a node and the inheritance relations as edges init class hierarchy doxygen classs dict init class hierarchy doxygen hidden classes add class list doxygen classs dict add class list doxygen hidden classes m usednodes now contains all nodes in the graph color the graph into a set of independent subgraphs bool done false int cur color 0 q list iterator dot node dnli m rootnodes while done there are still nodes to color dot node n done true we are done unless there are still uncolored nodes for dnli to last n dnli current dnli if n m subgraphid 1 not yet colored printf starting at node s p d n n m label data n cur color done false still uncolored nodes n m subgraphid cur color n color connected nodes cur color cur color const dot node dn n find doc node if dn 0 m rootsubgraphs in sort dn else m rootsubgraphs in sort n printf number of independent subgraphs d n cur color q list iterator dot node dnli2 m rootsubgraphs dot node n for dnli2 to first n dnli2 current dnli2 printf node s color d c d p d n n m label data n m subgraphid n m children n m children count 0 n m parents n m parents count 0 dotgfxhierarchytable dotgfxhierarchytable m_curnodenumber m_rootnodes qlist dotnode m_usednodes qdict dotnode m_usednodes setautodelete m_rootsubgraphs dotnodelist initclasshierarchy classsdict initclasshierarchy hiddenclasses addclasslist classsdict addclasslist hiddenclasses m_usednodes curcolor qlistiterator dotnode m_rootnodes dotnode tolast m_subgraphid m_label curcolor m_subgraphid curcolor colorconnectednodes curcolor curcolor dotnode finddocnode m_rootsubgraphs insort m_rootsubgraphs insort curcolor qlistiterator dotnode m_rootsubgraphs dotnode tofirst m_label m_subgraphid m_children m_children m_parents m_parents dot gfx hierarchy table dot gfx hierarchy table printf dot gfx hierarchy table dot gfx hierarchy table n q dict iterator dot node di m usednodes dot node n for n di current di printf node p s n n n label data delete m rootnodes delete m usednodes delete m rootsubgraphs dotgfxhierarchytable dotgfxhierarchytable dotgfxhierarchytable dotgfxhierarchytable qdictiterator dotnode m_usednodes dotnode m_rootnodes m_usednodes m_rootsubgraphs void dot gfx hierarchy table write graph q text stream out const char path printf dot gfx hierarchy table write graph s n name printf m rootnodes p count d n m rootnodes m rootnodes count if m rootsubgraphs count 0 return q dir d path store the original directory if d exists err error output dir s does not exist n path exit 1 qc string old dir convert toqc string q dir current dir path go to the html output directory i e path q dir set current d abs path q dir this dir put each connected subgraph of the hierarchy in a row of the html output out table border 0 cellspacing 10 cellpadding 0 endl q list iterator dot node dnli m rootsubgraphs dot node n int count 0 for dnli to first n dnli current dnli qc string base name qc string img ext config getenum dot image format base name sprintf inherit graph d count base name convert name to file base name qc string img name base name img ext qc string map name base name map q list iterator dot node dnli2 m rootnodes dot node node compute md5 checksum of the graph were are about to generate q string buf q text stream md5stream buf io writeonly for dnli2 to first node dnli2 current dnli2 if node m subgraphid n m subgraphid node clear write flag for dnli2 to first node dnli2 current dnli2 if node m subgraphid n m subgraphid node write md5stream dot node hierarchy bitmap false true 1000 true true reset re numbering uchar md5 sig 16 qc string sig str 33 md5 buffer const unsigned char buf ascii buf length md5 sig md5 sig to string md5 sig sig str data 33 if check and update md5 signature base name sig str q file info map name exists image was new or has changed qc string dot name base name dot q file f dot name if f open io writeonly return q text stream t f write graph header t t rankdir lr endl for dnli2 to first node dnli2 current dnli2 if node m subgraphid n m subgraphid node clear write flag for dnli2 to first node dnli2 current dnli2 if node m subgraphid n m subgraphid node write t dot node hierarchy bitmap false true 1000 true true write graph footer t f close reset re numbering dot runner dot run dot name dot run add job img ext img name dot run add job imap map name if dot run run out table endl return qc string dot args max cmd line dot args sprintf s t s o s timap o s dot name data img ext data img name data map name data if i system config getstring dot path dot dot args 0 err problems running dot check your installation n return check dot result img name if config getbool dot cleanup this dir remove dot name write image and map in a table row qc string map label convert name to file n m label out tr td img src img name border 0 alt usemap map label map endl out map name map label map endl convert map file out map name out map td tr endl this dir remove map name out table endl q dir set current old dir dotgfxhierarchytable writegraph qtextstream dotgfxhierarchytable writegraph m_rootnodes m_rootnodes m_rootnodes m_rootsubgraphs qdir qcstring olddir converttoqcstring qdir currentdirpath qdir setcurrent abspath qdir thisdir qlistiterator dotnode m_rootsubgraphs dotnode tofirst qcstring basename qcstring imgext config_getenum dot_image_format basename inherit_graph_ basename convertnametofile basename qcstring imgname basename imgext qcstring mapname basename qlistiterator dotnode m_rootnodes dotnode qstring qtextstream io_writeonly tofirst m_subgraphid m_subgraphid clearwriteflag tofirst m_subgraphid m_subgraphid dotnode resetrenumbering md5_sig qcstring sigstr md5buffer md5_sig md5sigtostring md5_sig sigstr checkandupdatemd5signature basename sigstr qfileinfo mapname qcstring dotname basename qfile dotname io_writeonly qtextstream writegraphheader tofirst m_subgraphid m_subgraphid clearwriteflag tofirst m_subgraphid m_subgraphid dotnode writegraphfooter resetrenumbering dotrunner dotrun dotname dotrun addjob imgext imgname dotrun addjob mapname dotrun qcstring dotargs maxcmdline dotargs dotname imgext imgname mapname isystem config_getstring dot_path dotargs checkdotresult imgname config_getbool dot_cleanup thisdir dotname qcstring maplabel convertnametofile m_label imgname maplabel _map maplabel _map convertmapfile mapname thisdir mapname qdir setcurrent olddir void dot gfx hierarchy table add hierarchy dot node n class def cd bool hide super printf add hierarchy s base classes d n cd name data cd base classes count base class list iterator bcli cd sub classes base class def bcd for bcd bcli current bcli class def b class bcd class def printf trying super class s used nodes d n b class name data m usednodes count if b class is visible in hierarchy has visible root b class base classes dot node bn printf node s found visible class s n n m label data b class name data if bn m usednodes find b class name node already present if n m children 0 n m children find ref bn 1 no arrow yet n add child bn bcd prot bn add parent n printf adding node s to existing base node s c d p d n n m label data bn m label data bn m children bn m children count 0 bn m parents bn m parents count 0 else printf class already has an arrow n else qc string tmp url if b class is linkable tmp url b class get reference b class get output file base bn new dot node m curnodenumber b class display name tmp url data n add child bn bcd prot bn add parent n printf adding node s to new base node s c d p d n n m label data bn m label data bn m children bn m children count 0 bn m parents bn m parents count 0 printf inserting s p n b class name data bn m usednodes insert b class name bn add node to the used list if b class visited hide super b class sub classes count 0 bool was visited b class visited b class visited true add hierarchy bn b class was visited printf end add hierarchy n dotgfxhierarchytable addhierarchy dotnode classdef hidesuper addhierarchy baseclasses baseclasses baseclasslistiterator subclasses baseclassdef classdef bclass classdef usednodes bclass m_usednodes bclass isvisibleinhierarchy hasvisibleroot bclass baseclasses dotnode m_label bclass m_usednodes bclass m_children m_children findref addchild addparent m_label m_label m_children m_children m_parents m_parents qcstring tmp_url bclass islinkable tmp_url bclass getreference bclass getoutputfilebase dotnode m_curnodenumber bclass displayname tmp_url addchild addparent m_label m_label m_children m_children m_parents m_parents bclass m_usednodes bclass bclass hidesuper bclass subclasses wasvisited bclass bclass addhierarchy bclass wasvisited addhierarchy void dot gfx hierarchy table add class list classs dict cl classs dict iterator cli cl class def cd for cli to last cd cli current cli printf trying s sub classes d n cd name data cd sub classes count if has visible root cd base classes cd is visible in hierarchy root node in the forest qc string tmp url if cd is linkable tmp url cd get reference cd get output file base printf inserting root class s n cd name data dot node n new dot node m curnodenumber cd display name tmp url data m usednodes clear m usednodes insert cd name n m rootnodes insert 0 n if cd visited cd sub classes count 0 add hierarchy n cd cd visited cd visited true dotgfxhierarchytable addclasslist classsdict classsdict classdef tolast subclasses subclasses hasvisibleroot baseclasses isvisibleinhierarchy qcstring tmp_url islinkable tmp_url getreference getoutputfilebase dotnode dotnode m_curnodenumber displayname tmp_url m_usednodes m_usednodes m_rootnodes subclasses addhierarchy void dot group collaboration edge write q text stream t int const char link type color darkorchid3 orange blueviolet darkgreen firebrick4 grey75 midnightblue qc string arrow style dir none style dashed t node pn start number t t node pn end number t shape plaintext if links count 0 there are links t html like edge labels crash on my mac with graphviz 2 0 and are not supported by older version of dot t label table border 0 cellborder 0 q list iterator link lli links link link for lli to first link lli current lli t tr td if link url is empty t href link url t link label td tr t table t label q list iterator link lli links link link bool first true for lli to first link lli current lli if first first false else t n t convert label link label t switch e type case thierarchy arrow style dir back style solid default t color link type color int e type break t arrow style t endl dotgroupcollaboration qtextstream linktypecolor qcstring arrowstyle pnstart pnend qlistiterator tofirst isempty qlistiterator tofirst convertlabel etype arrowstyle linktypecolor etype arrowstyle dot group collaboration dot group collaboration group def gd m curnodeid 0 qc string tmp url gd get reference gd get output file base m usednodes new q dict dot node 1009 m rootnode new dot node m curnodeid gd group title tmp url 0 true m usednodes insert gd name m rootnode m edges set auto delete true m diskname gd get output file base build graph gd 0 dotgroupcollaboration dotgroupcollaboration groupdef m_curnodeid qcstring tmp_url getreference getoutputfilebase m_usednodes qdict dotnode m_rootnode dotnode m_curnodeid grouptitle tmp_url m_usednodes m_rootnode m_edges setautodelete m_diskname getoutputfilebase buildgraph dot group collaboration dot group collaboration delete m usednodes dotgroupcollaboration dotgroupcollaboration m_usednodes bool write image map q dir d path store the original directory if d exists err error output dir s does not exist n path exit 1 qc string old dir convert toqc string q dir current dir path go to the output directory i e path q dir set current d abs path q dir this dir qc string base name m diskname q file dotfile base name dot if dotfile open io writeonly q text stream tdot dotfile write graph header tdot clean write flags q dict iterator dot node dni m usednodes dot node pn for dni to first pn dni current dni pn clear write flag write other nodes for dni to first pn dni current dni pn write tdot dot node inheritance format true false 1 false false write edges q list iterator edge eli m edges edge edge for eli to first edge eli current eli edge write tdot m curnodeid write graph footer tdot dotfile close qc string img ext config getenum dot image format if format bitmap run dot to create a bitmap image qc string dot args max cmd line qc string img name base name img ext qc string map name base name map dot runner dot run base name dot dot run add job img ext img name if write image map dot run add job imap map name if dot run run q dir set current old dir return base name dot args sprintf s dot t s o s base name data img ext data img name data if write image map run dot also to create an image map dot args timap o map name if i system config getstring dot path dot dot args 0 err error problems running dot check your installation n q dir set current old dir return base name if write image map qc string map label convert name to file base name t center table tr td img src rel path img name border 0 alt usemap map label map endl t map name map label map endl convert map file t map name rel path t map td tr table center endl this dir remove map name else if format eps dot runner dot run base name dot dot run add job ps base name eps if dot run run q dir set current old dir return base name qc string dot args max cmd line dot args sprintf tps s dot o s eps base name data base name data if i system config getstring dot path dot dot args 0 err error problems running dot check your installation n q dir set current old dir return base name if config getbool use pdflatex qc string epstopdf args max cmd line epstopdf args sprintf s eps outfile s pdf base name data base name data if i system epstopdf epstopdf args true 0 err error problems running epstopdf check your tex installation n q dir set current old dir return base name int width height if read bounding boxeps base name eps width height err error could not extract bounding box from eps n q dir set current old dir return base name int max width 420 approx page width in points t begin figure h n begin center n leavevmode n includegraphics width qmin width 2 max width pt base name n end center n end figure n if config getbool dot cleanup this dir remove base name dot q dir set current old dir return base name writeimagemap qdir qcstring olddir converttoqcstring qdir currentdirpath qdir setcurrent abspath qdir thisdir qcstring basename m_diskname qfile basename io_writeonly qtextstream writegraphheader qdictiterator dotnode m_usednodes dotnode tofirst clearwriteflag tofirst dotnode qlistiterator m_edges tofirst m_curnodeid writegraphfooter qcstring imgext config_getenum dot_image_format qcstring dotargs maxcmdline qcstring imgname basename imgext qcstring mapname basename dotrunner dotrun basename dotrun addjob imgext imgname writeimagemap dotrun addjob mapname dotrun qdir setcurrent olddir basename dotargs basename imgext imgname writeimagemap dotargs mapname isystem config_getstring dot_path dotargs qdir setcurrent olddir basename writeimagemap qcstring maplabel convertnametofile basename relpath imgname maplabel _map maplabel _map convertmapfile mapname relpath thisdir mapname dotrunner dotrun basename dotrun addjob basename dotrun qdir setcurrent olddir basename qcstring dotargs maxcmdline dotargs basename basename isystem config_getstring dot_path dotargs qdir setcurrent olddir basename config_getbool use_pdflatex qcstring epstopdfargs maxcmdline epstopdfargs basename basename isystem epstopdfargs qdir setcurrent olddir basename readboundingboxeps basename qdir setcurrent olddir basename maxwidth maxwidth basename config_getbool dot_cleanup thisdir basename qdir setcurrent olddir basename void dot group collaboration build graph group def gd int qc string tmp url hierarchy write parents if gd part of groups group list iterator gli gd part of groups group def d for gli to first d gli current gli dot node nnode m usednodes find d name if nnode add node tmp url d get reference d get output file base nnode new dot node m curnodeid d group title tmp url m usednodes insert d name nnode tmp url add edge nnode m rootnode dot group collaboration thierarchy tmp url tmp url add subgroups if gd get sub groups gd get sub groups count q list iterator group def defli gd get sub groups group def def for def defli current defli dot node nnode m usednodes find def name if nnode add node tmp url def get reference def get output file base nnode new dot node m curnodeid def group title tmp url m usednodes insert def name nnode tmp url add edge m rootnode nnode dot group collaboration thierarchy tmp url tmp url write collaboration add members add member list gd get members add classes if gd get classes gd get classes count classs dict iterator defli gd get classes class def def for def defli current defli tmp url def get reference def get output file base doxygen html file extension add collaboration member def tmp url dot group collaboration tclass add namespaces if gd get namespaces gd get namespaces count namespaces dict iterator defli gd get namespaces namespace def def for def defli current defli tmp url def get reference def get output file base doxygen html file extension add collaboration member def tmp url dot group collaboration tnamespace add files if gd get files gd get files count q list iterator file def defli gd get files file def def for def defli current defli tmp url def get reference def get output file base doxygen html file extension add collaboration member def tmp url dot group collaboration tfile add pages if gd get pages gd get pages count pages dict iterator defli gd get pages page def def for def defli current defli tmp url def get reference def get output file base doxygen html file extension add collaboration member def tmp url dot group collaboration tpages add directories if gd get dirs gd get dirs count q list iterator dir def defli gd get dirs dir def def for def defli current defli tmp url def get reference def get output file base doxygen html file extension add collaboration member def tmp url dot group collaboration tdir dotgroupcollaboration buildgraph groupdef qcstring tmp_url partofgroups grouplistiterator partofgroups groupdef tofirst dotnode m_usednodes tmp_url getreference getoutputfilebase dotnode m_curnodeid grouptitle tmp_url m_usednodes tmp_url addedge m_rootnode dotgroupcollaboration tmp_url tmp_url getsubgroups getsubgroups qlistiterator groupdef getsubgroups groupdef dotnode m_usednodes tmp_url getreference getoutputfilebase dotnode m_curnodeid grouptitle tmp_url m_usednodes tmp_url addedge m_rootnode dotgroupcollaboration tmp_url tmp_url addmemberlist getmembers getclasses getclasses classsdict getclasses classdef tmp_url getreference getoutputfilebase htmlfileextension addcollaborationmember tmp_url dotgroupcollaboration getnamespaces getnamespaces namespacesdict getnamespaces namespacedef tmp_url getreference getoutputfilebase htmlfileextension addcollaborationmember tmp_url dotgroupcollaboration getfiles getfiles qlistiterator filedef getfiles filedef tmp_url getreference getoutputfilebase htmlfileextension addcollaborationmember tmp_url dotgroupcollaboration getpages getpages pagesdict getpages pagedef tmp_url getreference getoutputfilebase htmlfileextension addcollaborationmember tmp_url dotgroupcollaboration getdirs getdirs qlistiterator dirdef getdirs dirdef tmp_url getreference getoutputfilebase htmlfileextension addcollaborationmember tmp_url dotgroupcollaboration bool dot group collaboration is trivial const return m usednodes count 1 dotgroupcollaboration istrivial m_usednodes definition def qc string url edge type e type create group nodes if def part of groups return group list iterator gli def part of groups group def d qc string tmp str for d gli current gli dot node nnode m usednodes find d name if nnode m rootnode if nnode 0 add node tmp str d get reference d get output file base nnode new dot node m curnodeid d group title tmp str m usednodes insert d name nnode tmp str def qualified name add edge m rootnode nnode e type tmp str url qcstring edgetype etype partofgroups grouplistiterator partofgroups groupdef qcstring tmp_str dotnode m_usednodes m_rootnode tmp_str getreference getoutputfilebase dotnode m_curnodeid grouptitle tmp_str m_usednodes tmp_str qualifiedname addedge m_rootnode etype tmp_str void dot group collaboration add member list member list ml if ml ml count return member list iterator defli ml member def def for def defli current defli qc string tmp url def get reference def get output file base doxygen html file extension def anchor add collaboration member def tmp url dot group collaboration tmember dotgroupcollaboration addmemberlist memberlist memberlistiterator memberdef qcstring tmp_url getreference getoutputfilebase htmlfileextension addcollaborationmember tmp_url dotgroupcollaboration void dot group collaboration write graph header q text stream t t digraph structs endl t endl if config getbool dot transparent t bgcolor transparent endl t edge fontname helvetica fontsize 8 labelfontname helvetica labelfontsize 8 n t node fontname helvetica fontsize 10 shape record n t rankdir lr n dotgroupcollaboration writegraphheader qtextstream config_getbool dot_transparent const qc string label const qc string url search a existing link q list iterator edge lli m edges edge new edge 0 for lli to first new edge lli current lli if new edge pn start pnstart new edge pn end pnend new edge e type etype edge already found break if new edge 0 new link new edge new edge pnstart pnend etype m edges append new edge if label is empty new edge links append new link label url return new edge qcstring _label qcstring _url qlistiterator m_edges newedge tofirst newedge newedge pnstart _pnstart newedge pnend _pnend newedge etype _etype newedge newedge _pnstart _pnend _etype m_edges newedge _label isempty newedge _label _url newedge output generator output generator printf output generator output generator n file 0 b set buffer a b open io writeonly t set device b if qt version 200 t set encoding q text stream latin1 endif active true gen stack new q stack bool gen stack set auto delete true outputgenerator outputgenerator outputgenerator outputgenerator setbuffer io_writeonly setdevice qt_version setencoding qtextstream genstack qstack genstack setautodelete output generator output generator printf output generator output generator n delete file delete gen stack outputgenerator outputgenerator outputgenerator outputgenerator genstack void output generator start plain file const char name printf start plain file s n name qc string file name dir name file new q file file name if file err could not create file object for s n file name data exit 1 if file open io writeonly err could not open file s for writing n file name data exit 1 fs set device file outputgenerator startplainfile startplainfile qcstring filename qfile filename filename io_writeonly filename setdevice void output generator end plain file printf end plain file s n file name fs write raw bytes a data a size write string buffer to file delete file file 0 b close a resize 0 b set buffer a b open io writeonly t set device b outputgenerator endplainfile endplainfile writerawbytes setbuffer io_writeonly setdevice qc string output generator get contents const qc string s s resize a size 1 memcpy s data a data a size s at a size 0 return s qcstring outputgenerator getcontents qcstring void output generator push generator state gen stack push new bool is enabled outputgenerator pushgeneratorstate genstack isenabled void output generator pop generator state bool lb gen stack pop assert lb 0 if lb 0 return for some robustness against superfluous endhtmlonly commands if lb enable else disable delete lb outputgenerator popgeneratorstate genstack int dot node find parent dot node n if m parents return 1 return m parents find n dotnode findparent dotnode m_parents m_parents m number n m label lab m url url m isroot is root m classdef cd m children 0 m edgeinfo 0 m parents 0 m subgraphid 1 m deleted false m written false m hasdoc false m distance distance m_number m_label m_url m_isroot isroot m_classdef m_children m_edgeinfo m_parents m_subgraphid m_deleted m_written m_hasdoc m_distance dot node dot node delete m children delete m parents delete m edgeinfo dotnode dotnode m_children m_parents m_edgeinfo if m children 0 m children new q list dot node m edgeinfo new q list edge info m edgeinfo set auto delete true m children append n edge info ei new edge info ei m color edge color ei m style edge style ei m label edge lab ei m url edgeurl if edge lab col 1 ei m labcolor edge color else ei m labcolor edge lab col m edgeinfo append ei m_children m_children qlist dotnode m_edgeinfo qlist edgeinfo m_edgeinfo setautodelete m_children edgeinfo edgeinfo m_color edgecolor m_style edgestyle m_label edgelab m_url edgelabcol m_labcolor edgecolor m_labcolor edgelabcol m_edgeinfo void dot node set distance int distance if distance m distance m distance distance dotnode setdistance m_distance m_distance void dot node add parent dot node n if m parents 0 m parents new q list dot node m parents append n dotnode addparent dotnode m_parents m_parents qlist dotnode m_parents void dot node delete node dot node list deleted list s dict dot node skip nodes if m deleted return avoid recursive loops in case the graph has cycles m deleted true if m parents 0 delete all parent nodes of this node q list iterator dot node dnlip m parents dot node pn for dnlip to first pn dnlip current dnlip pn remove child this pn delete node deleted list skip nodes if m children 0 delete all child nodes of this node q list iterator dot node dnlic m children dot node cn for dnlic to first cn dnlic current dnlic cn remove parent this cn delete node deleted list skip nodes add this node to the list of deleted nodes printf skip nodes p find p p n skip nodes this skip nodes skip nodes find int this 0 if skip nodes 0 skip nodes find char this 0 printf deleting n deleted list append this dotnode deletenode dotnodelist deletedlist sdict dotnode skipnodes m_deleted m_deleted m_parents qlistiterator dotnode m_parents dotnode tofirst removechild deletenode deletedlist skipnodes m_children qlistiterator dotnode m_children dotnode tofirst removeparent deletenode deletedlist skipnodes skipnodes skipnodes skipnodes skipnodes skipnodes skipnodes deletedlist void dot node remove child dot node n if m children m children remove n dotnode removechild dotnode m_children m_children void dot node remove parent dot node n if m parents m parents remove n dotnode removeparent dotnode m_parents m_parents printf dot node write d name s this p written d n distance m label data this m written if m written return node already written to the output if m distance distance return q list dot node nl to children m children m parents bool has non reachable children false if m distance distance nl q list iterator dot node dnli nl dot node cn for dnli to first cn dnli current dnli if cn m distance distance has non reachable children true write box t gt format has non reachable children re number m written true if nl if to children q list iterator dot node dnli1 nl q list iterator edge info dnli2 m edgeinfo dot node cn for dnli1 to first cn dnli1 current dnli1 dnli2 if cn m distance distance printf write arrow s s s n label data back arrows cn label data write arrow t gt format cn dnli2 current top down back arrows re number cn write t gt format top down to children distance back arrows re number else render parents q list iterator dot node dnli nl dot node pn for dnli to first pn dnli current dnli if pn m distance distance printf write arrow s s s n label data back arrows pn label data write arrow t gt format pn pn m edgeinfo at pn m children find ref this false back arrows re number pn write t gt format true false distance back arrows re number printf end dot node write d name s n distance m label data dotnode m_label m_written m_written m_distance qlist dotnode tochildren m_children m_parents hasnonreachablechildren m_distance qlistiterator dotnode dotnode tofirst m_distance hasnonreachablechildren writebox hasnonreachablechildren renumber m_written tochildren qlistiterator dotnode qlistiterator edgeinfo m_edgeinfo dotnode tofirst m_distance backarrows writearrow topdown backarrows renumber topdown tochildren backarrows renumber qlistiterator dotnode dotnode tofirst m_distance backarrows writearrow m_edgeinfo m_children findref backarrows renumber backarrows renumber dotnode m_label void dot node clear write flag m written false if m parents 0 q list iterator dot node dnlip m parents dot node pn for dnlip to first pn dnlip current dnlip if pn m written pn clear write flag if m children 0 q list iterator dot node dnlic m children dot node cn for dnlic to first cn dnlic current dnlic if cn m written cn clear write flag dotnode clearwriteflag m_written m_parents qlistiterator dotnode m_parents dotnode tofirst m_written clearwriteflag m_children qlistiterator dotnode m_children dotnode tofirst m_written clearwriteflag void dot node writexml q text stream t bool is class graph t node id m number endl t label convert toxml m label label endl if m url is empty qc string url m url char ref ptr url data char url ptr strchr url data if url ptr url ptr 0 t link refid convert toxml url ptr if ref ptr 0 t external convert toxml ref ptr t endl if m children q list iterator dot node nli m children q list iterator edge info eli m edgeinfo dot node child node edge info edge info for child node nli current nli eli edge info eli current t childnode refid child node m number relation if is class graph switch edge info m color case edge info blue t public inheritance break case edge info green t protected inheritance break case edge info red t private inheritance break case edge info purple t usage break case edge info orange t template instance break case edge info grey assert 0 break else include graph t include t endl if edge info m label is empty int p 0 int ni while ni edge info m label find n p 1 t edgelabel convert toxml edge info m label mid p ni p edgelabel endl p ni 2 t edgelabel convert toxml edge info m label right edge info m label length p edgelabel endl t childnode endl t node endl dotnode qtextstream isclassgraph m_number converttoxml m_label m_url isempty qcstring m_url refptr urlptr urlptr urlptr converttoxml urlptr refptr converttoxml refptr m_children qlistiterator dotnode m_children qlistiterator edgeinfo m_edgeinfo dotnode childnode edgeinfo edgeinfo childnode edgeinfo childnode m_number isclassgraph edgeinfo m_color edgeinfo edgeinfo edgeinfo edgeinfo edgeinfo edgeinfo edgeinfo m_label isempty edgeinfo m_label converttoxml edgeinfo m_label converttoxml edgeinfo m_label edgeinfo m_label void dot node writedef q text stream t char node prefix node t node endl t node prefix id m number endl t node prefix label m label endl if m url is empty qc string url m url char ref ptr url data char url ptr strchr url data if url ptr url ptr 0 t node prefix link endl node prefix link id url ptr endl if ref ptr 0 t node prefix link external ref ptr endl t endl if m children q list iterator dot node nli m children q list iterator edge info eli m edgeinfo dot node child node edge info edge info for child node nli current nli eli edge info eli current t node child endl t child id child node m number endl t relation switch edge info m color case edge info blue t public inheritance break case edge info green t protected inheritance break case edge info red t private inheritance break case edge info purple t usage break case edge info orange t template instance break case edge info grey assert 0 break t endl if edge info m label is empty t edgelabel end of def text endl edge info m label endl end of def text endl t node child endl for child node t node endl dotnode qtextstream nodeprefix nodeprefix m_number nodeprefix m_label m_url isempty qcstring m_url refptr urlptr urlptr urlptr nodeprefix nodeprefix urlptr refptr nodeprefix refptr m_children qlistiterator dotnode m_children qlistiterator edgeinfo m_edgeinfo dotnode childnode edgeinfo edgeinfo childnode edgeinfo childnode m_number edgeinfo m_color edgeinfo edgeinfo edgeinfo edgeinfo edgeinfo edgeinfo edgeinfo m_label isempty _end_of_def_text_ edgeinfo m_label _end_of_def_text_ childnode void dot node color connected nodes int cur color if m children q list iterator dot node dnlic m children dot node cn for dnlic to first cn dnlic current dnlic if cn m subgraphid 1 uncolored child node cn m subgraphid cur color cn color connected nodes cur color printf coloring node s p d n cn m label data cn cn m subgraphid if m parents q list iterator dot node dnlip m parents dot node pn for dnlip to first pn dnlip current dnlip if pn m subgraphid 1 uncolored parent node pn m subgraphid cur color pn color connected nodes cur color printf coloring node s p d n pn m label data pn pn m subgraphid dotnode colorconnectednodes curcolor m_children qlistiterator dotnode m_children dotnode tofirst m_subgraphid m_subgraphid curcolor colorconnectednodes curcolor m_label m_subgraphid m_parents qlistiterator dotnode m_parents dotnode tofirst m_subgraphid m_subgraphid curcolor colorconnectednodes curcolor m_label m_subgraphid bool re number const char lab col m url is empty grey75 non link has non reachable children red black t node re number node m number re number label if m classdef config getbool uml look gt inheritance gt collaboration t convert label m label t n write box member list t m classdef pub attribs m classdef write box member list t m classdef pub static attribs m classdef write box member list t m classdef pac attribs m classdef write box member list t m classdef pac static attribs m classdef write box member list t m classdef pro attribs m classdef write box member list t m classdef pro static attribs m classdef write box member list t m classdef pri attribs m classdef write box member list t m classdef pri static attribs m classdef t write box member list t m classdef pub methods m classdef write box member list t m classdef pub static methods m classdef write box member list t m classdef pub slots m classdef write box member list t m classdef pac methods m classdef write box member list t m classdef pac static methods m classdef write box member list t m classdef pro methods m classdef write box member list t m classdef pro static methods m classdef write box member list t m classdef pro slots m classdef write box member list t m classdef pri methods m classdef write box member list t m classdef pri static methods m classdef write box member list t m classdef pri slots m classdef if m classdef member groups dict member groups dict iterator mgdi m classdef member groups dict member group mg for mgdi to first mg mgdi current mgdi if mg members write box member list t mg members m classdef t else old look t convert label m label t height 0 2 width 0 4 if m isroot t color white fillcolor black style filled fontcolor white else if config getbool dot transparent t color lab col fillcolor white style filled else t color lab col if m url is empty int anchor pos m url find rev if anchor pos 1 t url m url doxygen html file extension else t url m url left anchor pos doxygen html file extension m url right m url length anchor pos t endl renumber labcol m_url isempty hasnonreachablechildren renumbernode m_number renumber m_classdef config_getbool uml_look convertlabel m_label writeboxmemberlist m_classdef pubattribs m_classdef writeboxmemberlist m_classdef pubstaticattribs m_classdef writeboxmemberlist m_classdef pacattribs m_classdef writeboxmemberlist m_classdef pacstaticattribs m_classdef writeboxmemberlist m_classdef proattribs m_classdef writeboxmemberlist m_classdef prostaticattribs m_classdef writeboxmemberlist m_classdef priattribs m_classdef writeboxmemberlist m_classdef pristaticattribs m_classdef writeboxmemberlist m_classdef pubmethods m_classdef writeboxmemberlist m_classdef pubstaticmethods m_classdef writeboxmemberlist m_classdef pubslots m_classdef writeboxmemberlist m_classdef pacmethods m_classdef writeboxmemberlist m_classdef pacstaticmethods m_classdef writeboxmemberlist m_classdef promethods m_classdef writeboxmemberlist m_classdef prostaticmethods m_classdef writeboxmemberlist m_classdef proslots m_classdef writeboxmemberlist m_classdef primethods m_classdef writeboxmemberlist m_classdef pristaticmethods m_classdef writeboxmemberlist m_classdef prislots m_classdef m_classdef membergroupsdict membergroupsdict m_classdef membergroupsdict membergroup tofirst writeboxmemberlist m_classdef convertlabel m_label m_isroot config_getbool dot_transparent labcol labcol m_url isempty anchorpos m_url findrev anchorpos m_url htmlfileextension m_url anchorpos htmlfileextension m_url m_url anchorpos t node if top down t re number node cn number re number else t re number node m number re number t node if top down t re number node m number re number else t re number node cn number re number t if point back t dir back t color edge color map ei m color fontsize 10 style edge style map ei m style if ei m label is empty t label convert label ei m label if config getbool uml look arrow style ei m color gt inheritance gt collaboration if point back t arrowtail arrow style ei m color else t arrowhead arrow style ei m color if format bitmap t fontname helvetica t endl topdown renumbernode renumber renumbernode m_number renumber topdown renumbernode m_number renumber renumbernode renumber pointback edgecolormap m_color edgestylemap m_style m_label isempty convertlabel m_label config_getbool uml_look arrowstyle m_color pointback arrowstyle m_color arrowstyle m_color const dot node dot node find doc node const if m url is empty return this printf find doc node s n m label data if m parents q list iterator dot node dnli m parents dot node pn for dnli to first pn dnli current dnli if pn m hasdoc pn m hasdoc true const dot node dn pn find doc node if dn return dn if m children q list iterator dot node dnli m children dot node cn for dnli to first cn dnli current dnli if cn m hasdoc cn m hasdoc true const dot node dn cn find doc node if dn return dn return 0 dotnode dotnode finddocnode m_url isempty finddocnode m_label m_parents qlistiterator dotnode m_parents dotnode tofirst m_hasdoc m_hasdoc dotnode finddocnode m_children qlistiterator dotnode m_children dotnode tofirst m_hasdoc m_hasdoc dotnode finddocnode dot runner dot runner const char file m file file m jobs set auto delete true dotrunner dotrunner m_file m_jobs setautodelete void dot runner add job const char format const char output qc string args qc string t format o output m jobs append new qc string args dotrunner addjob qcstring qcstring m_jobs qcstring bool dot runner run q list iterator qc string li m jobs qc string s if config getbool dot multi targets qc string dot args m file for li to first s li current li dot args dot args s if i system config getstring dot path dot dot args 0 goto error else for li to first s li current li qc string dot args m file s if i system config getstring dot path dot dot args 0 goto error return true error err problems running dot check your installation n return false dotrunner qlistiterator qcstring m_jobs qcstring config_getbool dot_multi_targets qcstring dotargs m_file tofirst dotargs dotargs isystem config_getstring dot_path dotargs tofirst qcstring dotargs m_file isystem config_getstring dot_path dotargs html generator html generator output generator dir config getstring html output col 0 htmlgenerator htmlgenerator outputgenerator config_getstring html_output html generator html generator printf html generator html generator n htmlgenerator htmlgenerator htmlgenerator htmlgenerator void html generator init qc string dname config getstring html output q dir d dname if d exists d mkdir dname err could not create output directory s n dname data exit 1 write logo dname if config getstring html header is empty g header file to string config getstring html header printf g header s n g header data if config getstring html footer is empty g footer file to string config getstring html footer printf g footer s n g footer data create sub dirs d htmlgenerator qcstring config_getstring html_output qdir writelogo config_getstring html_header isempty g_header filetostring config_getstring html_header g_header g_header config_getstring html_footer isempty g_footer filetostring config_getstring html_footer g_footer g_footer createsubdirs void html generator write style sheet file q file file q text stream t file t default style sheet htmlgenerator writestylesheetfile qfile qtextstream defaultstylesheet void html generator write header file q file file q text stream t file if qt version 200 t set encoding q text stream latin1 endif write default header file t title relative path to root 0 true htmlgenerator writeheaderfile qfile qtextstream qt_version setencoding qtextstream writedefaultheaderfile relativepathtoroot void html generator write footer file q file file q text stream t file t hr size 1 address style align right small n t the translator tr generated at datetime projectname t nbsp a href http www doxygen org index html img src doxygen png alt doxygen align middle border 0 a doxygenversion t small address n body n html n htmlgenerator writefooterfile qfile qtextstream thetranslator trgeneratedat void html generator print doc doc node n html doc visitor visitor new html doc visitor t this n accept visitor delete visitor htmlgenerator printdoc docnode htmldocvisitor htmldocvisitor const char title printf html generator start file s n name qc string file name name last title title rel path relative path to root file name if file name right doxygen html file extension length doxygen html file extension file name doxygen html file extension start plain file file name if config getbool generate htmlhelp html help get instance add index file file name qc string disp title title qc string proj name config getstring project name if proj name is empty disp title prepend proj name last file file name if g header is empty write default header file t disp title rel path false else t substitute keywords g header convert to html disp title rel path t the translator tr generated by doxygen version string endl htmlgenerator startfile qcstring filename lasttitle relpath relativepathtoroot filename filename htmlfileextension htmlfileextension filename htmlfileextension startplainfile filename config_getbool generate_htmlhelp htmlhelp getinstance addindexfile filename qcstring disptitle qcstring projname config_getstring project_name projname isempty disptitle projname lastfile filename g_header isempty writedefaultheaderfile disptitle relpath substitutekeywords g_header converttohtml disptitle relpath thetranslator trgeneratedby versionstring void html generator write footer write page footer t last title rel path htmlgenerator writefooter writepagefooter lasttitle relpath void html generator end file end plain file htmlgenerator endfile endplainfile void html generator start project number t h3 align center htmlgenerator startprojectnumber void html generator end project number t h3 htmlgenerator endprojectnumber void html generator write style info int part printf write style info d n part if part 0 if config getstring html stylesheet is empty write default style sheet printf write doxygen css n start plain file doxygen css alternative cooler looking titles t h1 text align center border width thin none thin none endl t border style double border color blue padding left 1em padding right 1em endl t default style sheet end plain file else write user defined style sheet qc string cssname config getstring html stylesheet q file info cssfi cssname if cssfi exists cssfi is file cssfi is readable err error style sheet s does not exist or is not readable config getstring html stylesheet data else convert style sheet to string qc string file str file to string cssname write the string into the output dir start plain file cssfi file name t file str end plain file htmlgenerator writestyleinfo writestyleinfo config_getstring html_stylesheet isempty startplainfile defaultstylesheet endplainfile qcstring config_getstring html_stylesheet qfileinfo isfile isreadable config_getstring html_stylesheet qcstring filestr filetostring startplainfile filename filestr endplainfile void html generator new paragraph t endl p endl htmlgenerator newparagraph void html generator write string const char text t text htmlgenerator writestring void html generator start index list t table endl htmlgenerator startindexlist void html generator end index list t table endl htmlgenerator endindexlist void html generator start index key inserted class 02 jan 2002 jh t tr td class indexkey htmlgenerator startindexkey void html generator end index key t td htmlgenerator endindexkey void html generator start index value bool inserted class 02 jan 2002 jh t td class indexvalue htmlgenerator startindexvalue void html generator end index value const char bool t td tr endl htmlgenerator endindexvalue const char name printf html generator write index item s s s n ref f name qc string dest t li if ref f if ref t a class el ref t doxygen ref if dest doxygen tag destination dict ref t dest t else t a class el t href if ref if dest doxygen tag destination dict ref t dest if f t f doxygen html file extension else t b docify name if ref f t a endl else t b htmlgenerator writeindexitem qcstring elref tagdestinationdict tagdestinationdict htmlfileextension void html generator docify const char str if str const char p str char c while p c p switch c case t lt break case t gt break case t amp break case if p t lt p else if p t gt p else t break default t c htmlgenerator void html generator codify const char str docify str static char spaces if str const char p str char c int spaces to next tab stop while p c p switch c case t spaces to next tab stop config getint tab size col config getint tab size t spaces left spaces to next tab stop col spaces to next tab stop break case n t n col 0 break case n t br col 0 break case r break case t lt col break case t gt col break case t amp col break case t nbsp col break case if p t lt p else if p t gt p else t col break default t c col break htmlgenerator spacestonexttabstop spacestonexttabstop config_getint tab_size config_getint tab_size spacestonexttabstop spacestonexttabstop const char anchor const char name qc string dest if ref t a class el ref t doxygen ref if dest doxygen tag destination dict ref t dest t else t a class el t href if ref if dest doxygen tag destination dict ref t rel path dest else t rel path if f t f doxygen html file extension if anchor t anchor t docify name t a qcstring elref tagdestinationdict tagdestinationdict relpath relpath htmlfileextension const char anchor const char name qc string dest if ref t a class code ref t doxygen ref if dest doxygen tag destination dict ref t dest t else t a class code t href if ref if dest doxygen tag destination dict ref t rel path dest else t rel path if f t f doxygen html file extension if anchor t anchor t docify name t a col strlen name qcstring coderef tagdestinationdict tagdestinationdict relpath relpath htmlfileextension void html generator start text link const char f const char anchor t a href if f t rel path f doxygen html file extension if anchor t anchor t htmlgenerator starttextlink relpath htmlfileextension void html generator end text link t a htmlgenerator endtextlink void html generator start html link const char url t a if config getbool generate treeview t target top t href if url t url t htmlgenerator starthtmllink config_getbool generate_treeview void html generator end html link t a htmlgenerator endhtmllink void html generator start group header t h2 htmlgenerator startgroupheader void html generator end group header t h2 endl htmlgenerator endgroupheader void html generator start member sections dbg html t start member sections endl if config getbool html align members t table border 0 cellpadding 0 cellspacing 0 endl html is not recursively decomposable sorry t tr td td tr endl htmlgenerator startmembersections dbg_html startmembersections config_getbool html_align_members void html generator end member sections dbg html t end member sections endl if config getbool html align members t table endl htmlgenerator endmembersections dbg_html endmembersections config_getbool html_align_members void html generator start member header dbg html t start member header endl if config getbool html align members t tr td colspan 2 br h2 else start group header htmlgenerator startmemberheader dbg_html startmemberheader config_getbool html_align_members startgroupheader void html generator end member header dbg html t end member header endl if config getbool html align members t h2 td tr endl else end group header htmlgenerator endmemberheader dbg_html endmemberheader config_getbool html_align_members endgroupheader void html generator start member subtitle dbg html t start member subtitle endl if config getbool html align members t tr td colspan 2 htmlgenerator startmembersubtitle dbg_html startmembersubtitle config_getbool html_align_members void html generator end member subtitle dbg html t end member subtitle endl if config getbool html align members t br br td tr endl htmlgenerator endmembersubtitle dbg_html endmembersubtitle config_getbool html_align_members void html generator start member list dbg html t start member list endl if config getbool html align members else t ul endl htmlgenerator startmemberlist dbg_html startmemberlist config_getbool html_align_members void html generator end member list dbg html t end member list endl if config getbool html align members else t ul endl htmlgenerator endmemberlist dbg_html endmemberlist config_getbool html_align_members void html generator start member item int anno type dbg html t start member item endl if config getbool html align members t tr switch anno type case 0 t td class mem item left nowrap align right valign top break case 1 t td class mem item left nowrap break case 2 t td class mem item left nowrap valign top break default t td class mem templ params nowrap colspan 2 break else t li htmlgenerator startmemberitem annotype dbg_html startmemberitem config_getbool html_align_members annotype memitemleft memitemleft memitemleft memtemplparams void html generator end member item dbg html t end member item int in group file name header name endl if config getbool html align members t td tr n t endl htmlgenerator endmemberitem dbg_html endmemberitem ingroup filename headername config_getbool html_align_members void html generator start member template params htmlgenerator startmembertemplateparams void html generator end member template params if config getbool html align members t td tr endl t tr td class mem templ item left nowrap align right valign top htmlgenerator endmembertemplateparams config_getbool html_align_members memtemplitemleft void html generator start member group header bool t tr td colspan 2 div class group header htmlgenerator startmembergroupheader groupheader void html generator end member group header t div td tr endl htmlgenerator endmembergroupheader void html generator start member group docs t tr td colspan 2 div class group text htmlgenerator startmembergroupdocs grouptext void html generator end member group docs t br br div td tr endl htmlgenerator endmembergroupdocs void html generator start member group htmlgenerator startmembergroup void html generator end member group bool htmlgenerator endmembergroup void html generator insert member align bool templ dbg html t insert member align endl if config getbool html align members qc string class name templ mem templ item right mem item right t nbsp td td class class name valign bottom htmlgenerator insertmemberalign dbg_html insertmemberalign config_getbool html_align_members qcstring classname memtemplitemright memitemright classname void html generator start member description dbg html t start member description endl if config getbool html align members t tr td class mdesc left nbsp td td class mdesc right else t dl class el dd class mdesc right htmlgenerator startmemberdescription dbg_html startmemberdescription config_getbool html_align_members mdescleft mdescright mdescright void html generator end member description dbg html t end member description endl if config getbool html align members t br td tr endl else t br dl htmlgenerator endmemberdescription dbg_html endmemberdescription config_getbool html_align_members const char anchor int l qc string line number line anchor line number sprintf 05d l line anchor sprintf l 05d l if file start code anchor line anchor write code link ref file anchor line number end code anchor else start code anchor line anchor codify line number end code anchor codify qcstring linenumber lineanchor linenumber lineanchor startcodeanchor lineanchor writecodelink linenumber endcodeanchor startcodeanchor lineanchor linenumber endcodeanchor void html generator write char char c char cs 2 cs 0 c cs 1 0 docify cs htmlgenerator writechar void html generator start member doc const char const char const char const char dbg html t start member doc endl t p endl t table class md table cellpadding 2 cellspacing 0 endl t tr endl t td class md row endl t table cellpadding 0 cellspacing 0 border 0 endl htmlgenerator startmemberdoc dbg_html startmemberdoc mdtable mdrow void html generator end member doc bool has args dbg html t end member doc endl if has args t tr endl t table endl t td endl t tr endl t table endl htmlgenerator endmemberdoc hasargs dbg_html endmemberdoc hasargs const char args t a class anchor name anchor a t doxytag member name ref anchor args docify args t void html generator end doxy anchor const char const char htmlgenerator enddoxyanchor const char path const char name t li if path docify path t a class el href f doxygen html file extension docify name t a htmlfileextension const char title t dl compact dt b if file write object link 0 file anchor title else docify title t b dt writeobjectlink void html generator end simple sect t dl htmlgenerator endsimplesect const char title t dl compact dt b docify title t b dt void html generator end param list t dl htmlgenerator endparamlist void html generator start section const char lab const char section info section type type switch type case section info page t h1 break case section info section t h2 break case section info subsection t h3 break case section info subsubsection t h4 break case section info paragraph t h5 break default assert 0 break t a class anchor name lab htmlgenerator startsection sectioninfo sectiontype sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo void html generator end section const char section info section type type t a switch type case section info page t h1 break case section info section t h2 break case section info subsection t h3 break case section info subsubsection t h4 break case section info paragraph t h5 break default assert 0 break htmlgenerator endsection sectioninfo sectiontype sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo void html generator add index item const char const char htmlgenerator addindexitem void html generator start indent i really wanted to use css here to provide an indented section but alas netscape is buggy enough to sometimes forget to end the indent cause a staircase effect where the indent continuously increases it s back to abusing tables t div class in endl t table cellspacing 5 cellpadding 0 border 0 n tr n td n nbsp n td n td n htmlgenerator startindent void html generator end indent t td n tr n table n t div endl htmlgenerator endindent void html generator start class diagram t p htmlgenerator startclassdiagram const char file name const char name t n p center img src rel path file name png usemap name map border 0 alt center endl map name name map endl d write image t dir rel path file name filename relpath filename _map _map writeimage relpath filename void html generator write quick links bool compact highlighted item hli write default quick links t compact hli rel path htmlgenerator writequicklinks highlighteditem writedefaultquicklinks relpath void html generator write non breakable space int n int i for i 0 i n i t nbsp htmlgenerator writenonbreakablespace void html generator start dot graph htmlgenerator startdotgraph void html generator end dot graph dot class graph g g write graph t bitmap dir rel path htmlgenerator enddotgraph dotclassgraph writegraph relpath void html generator start incl dep graph htmlgenerator startincldepgraph void html generator end incl dep graph dot incl dep graph g g write graph t bitmap dir rel path htmlgenerator endincldepgraph dotincldepgraph writegraph relpath void html generator start group collaboration htmlgenerator startgroupcollaboration void html generator end group collaboration dot group collaboration g g write graph t bitmap dir rel path htmlgenerator endgroupcollaboration dotgroupcollaboration writegraph relpath void html generator start call graph htmlgenerator startcallgraph void html generator end call graph dot call graph g g write graph t bitmap dir rel path htmlgenerator endcallgraph dotcallgraph writegraph relpath void html generator start dir dep graph htmlgenerator startdirdepgraph void html generator end dir dep graph dot dir deps g g write graph t bitmap dir rel path htmlgenerator enddirdepgraph dotdirdeps writegraph relpath void html generator write graphical hierarchy dot gfx hierarchy table g g write graph t dir htmlgenerator writegraphicalhierarchy dotgfxhierarchytable writegraph void html generator start member doc prefix item dbg html t start member doc prefix item endl t tr endl t td class md prefix colspan 4 endl htmlgenerator startmemberdocprefixitem dbg_html startmemberdocprefixitem mdprefix void html generator end member doc prefix item dbg html t end member doc prefix item endl t td endl t tr endl htmlgenerator endmemberdocprefixitem dbg_html endmemberdocprefixitem void html generator start member doc name bool align dbg html t start member doc name endl t tr endl t td class md nowrap valign top if align t align right t htmlgenerator startmemberdocname dbg_html startmemberdocname void html generator end member doc name dbg html t end member doc name endl t td endl htmlgenerator endmemberdocname dbg_html endmemberdocname void html generator start parameter type bool first const char key if first dbg html t start first parameter type endl t td class md nowrap valign top else dbg html t start parameter type endl t tr endl t td class md nowrap align right if key t key t td endl t td class md td endl t td class md nowrap htmlgenerator startparametertype dbg_html startfirstparametertype dbg_html startparametertype void html generator end parameter type dbg html t end parameter type endl t nbsp td endl htmlgenerator endparametertype dbg_html endparametertype void html generator start parameter name bool one arg only dbg html t start parameter name endl t td class mdname if one arg only t 1 valign top t nowrap nbsp htmlgenerator startparametername oneargonly dbg_html startparametername oneargonly void html generator end parameter name bool last bool empty list bool close bracket dbg html t end parameter name endl if last if empty list t td endl t td class md valign top if close bracket t nbsp t nbsp td endl t td class md nowrap else t td endl t tr endl t tr endl t td class md td endl t td class md if close bracket t t nbsp td endl t td class md colspan 2 else t td endl t tr endl htmlgenerator endparametername emptylist closebracket dbg_html endparametername emptylist closebracket closebracket void html generator start parameter list bool open bracket dbg html t start parameter list endl t td class md valign top if open bracket t nbsp t td endl htmlgenerator startparameterlist openbracket dbg_html startparameterlist openbracket void html generator end parameter list dbg html t end parameter list endl t td endl t tr endl htmlgenerator endparameterlist dbg_html endparameterlist void html generator write search page if config getbool searchengine config getbool generate html qc string file name config getstring html output search php q file f file name if f open io writeonly q text stream t f if qt version 200 t set encoding q text stream latin1 endif if g header is empty write default header file t the translator tr search data 0 false else t substitute keywords g header search t the translator tr generated by doxygen version string endl if config getbool disable index write default quick links t true hli search t n php n n t function search results n t n t return the translator tr search results title n t n t n t function matches text num n t n t if num 0 n t n t return the translator tr search results 0 n t n t else if num 1 n t n t return the translator tr search results 1 n t n t else num 1 n t n t return the translator tr search results 2 n t n t n t n t function report matches n t n t return the translator tr search matches n t n t n t search script t n t n write page footer t search htmlgenerator writesearchpage config_getbool config_getbool generate_html qcstring filename config_getstring html_output qfile filename io_writeonly qtextstream qt_version setencoding qtextstream g_header isempty writedefaultheaderfile thetranslator trsearch substitutekeywords g_header thetranslator trgeneratedby versionstring config_getbool disable_index writedefaultquicklinks hli_search search_results thetranslator trsearchresultstitle matches_text thetranslator trsearchresults thetranslator trsearchresults thetranslator trsearchresults report_matches thetranslator trsearchmatches search_script writepagefooter int compare items gci i1 gci i2 return stricmp page def i1 name page def i2 name compareitems pagedef pagedef bool is linkable in project const return has documentation is reference islinkableinproject hasdocumentation isreference bool is linkable const return is linkable in project is reference islinkable islinkableinproject isreference definition f l n m title t set documentation d f l sub page dict new pages dict 7 m_title setdocumentation subpagedict pagesdict page def page def delete sub page dict pagedef pagedef subpagedict void page def write documentation output list ol output list disable output generator man qc string page name if config getbool case sense names page name name else page name name lower start file ol page name page name title if get outer scope doxygen global scope config getbool disable index get outer scope write navigation path ol save old generator state and write title only to man generator ol push generator state ol disable all but output generator man ol start title head page name ol end title head page name page name ol pop generator state section info si 0 if title is empty name is empty si doxygen section dict find page name 0 ol start section si label si title si type ol docify si title string to search index get output file base the translator tr page true true si title si title ol end section si label si type ol start text block ol parse doc doc file file name doc line start line this context 0 memberdef documentation doc str true index words false not an example ol end text block end file ol output list enable output generator man if config getstring generate tagfile is empty bool found false q dict iterator ref list rli doxygen xref lists ref list rl for rli to first rl rli current rli if rl list name name found true break if found not one of the generated related pages doxygen tag file compound kind page endl doxygen tag file name name name endl doxygen tag file title convert toxml title title endl doxygen tag file filename get output file base filename endl write doc anchors to tag file doxygen tag file compound endl pagedef writedocumentation outputlist outputlist outputgenerator qcstring pagename config_getbool case_sense_names pagename pagename startfile pagename pagename getouterscope globalscope config_getbool disable_index getouterscope writenavigationpath pushgeneratorstate disableallbut outputgenerator starttitlehead pagename endtitlehead pagename pagename popgeneratorstate sectioninfo isempty isempty sectiondict pagename startsection stringtosearchindex getoutputfilebase thetranslator trpage endsection starttextblock parsedoc docfile filename docline startline docstr endtextblock endfile outputlist outputgenerator config_getstring generate_tagfile isempty qdictiterator reflist xreflists reflist tofirst listname tagfile tagfile tagfile converttoxml tagfile getoutputfilebase writedocanchorstotagfile tagfile qc string page def get output file base const if get group def return get group def get output file base else return m filename qcstring pagedef getoutputfilebase getgroupdef getgroupdef getoutputfilebase m_filename void page def find sections in documentation doc find sections documentation this 0 doc file pagedef findsectionsindocumentation docfindsections docfile group def page def get group def const return part of groups part of groups get first 0 groupdef pagedef getgroupdef partofgroups partofgroups getfirst void page def add inner compound definition def if def definition type definition type page page def pd page def def sub page dict append pd name pd def set outer scope this pagedef addinnercompound definitiontype typepage pagedef pagedef subpagedict setouterscope bool page def visible in index const return not part of a group get group def not an externally defined page is reference config getbool allexternals not a subpage get outer scope 0 get outer scope definition type definition type page pagedef visibleinindex getgroupdef isreference config_getbool getouterscope getouterscope definitiontype typepage bool page def documented page const return not part of a group get group def not an externally defined page is reference pagedef documentedpage getgroupdef isreference bool page def has sub pages const return sub page dict count 0 pagedef hassubpages subpagedict xml doc visitor xml doc visitor q text stream t base code doc interface ci doc visitor docvisitor xml m t t m ci ci m insidepre false m hide false xmldocvisitor xmldocvisitor qtextstream basecodedocinterface docvisitor docvisitor_xml m_t m_ci m_insidepre m_hide void xml doc visitor visit doc word w if m hide return filter w word xmldocvisitor docword m_hide void xml doc visitor visit doc linked word w if m hide return start link w ref w file w anchor filter w word end link xmldocvisitor doclinkedword m_hide startlink endlink void xml doc visitor visit doc white space w if m hide return if m insidepre m t w chars else m t xmldocvisitor docwhitespace m_hide m_insidepre m_t m_t void xml doc visitor visit doc symbol s if m hide return switch s symbol case doc symbol b slash m t break case doc symbol at m t break case doc symbol less m t lt break case doc symbol greater m t gt break case doc symbol amp m t amp break case doc symbol dollar m t break case doc symbol hash m t break case doc symbol percent m t break case doc symbol copy m t copy break case doc symbol tm m t trademark break case doc symbol reg m t registered break case doc symbol apos m t break case doc symbol quot m t break case doc symbol uml m t umlaut char s letter break case doc symbol acute m t acute char s letter break case doc symbol grave m t grave char s letter break case doc symbol circ m t circ char s letter break case doc symbol tilde m t tilde char s letter break case doc symbol szlig m t szlig break case doc symbol cedil m t cedil char s letter break case doc symbol ring m t ring char s letter break case doc symbol slash m t slash char s letter break case doc symbol nbsp m t nonbreakablespace break default err error unknown symbol found n xmldocvisitor docsymbol m_hide docsymbol bslash m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t void xml doc visitor visit docurl u if m hide return m t ulink url if u is email m t mailto m t u url filter u url m t ulink xmldocvisitor m_hide m_t isemail m_t m_t m_t void xml doc visitor visit doc line break if m hide return m t linebreak n xmldocvisitor doclinebreak m_hide m_t void xml doc visitor visit doc hor ruler if m hide return m t hruler n xmldocvisitor dochorruler m_hide m_t void xml doc visitor visit doc style change s if m hide return switch s style case doc style change bold if s enable m t bold else m t bold break case doc style change italic if s enable m t emphasis else m t emphasis break case doc style change code if s enable m t computeroutput else m t computeroutput break case doc style change subscript if s enable m t subscript else m t subscript break case doc style change superscript if s enable m t superscript else m t superscript break case doc style change center if s enable m t center else m t center break case doc style change small if s enable m t small else m t small break case doc style change preformatted if s enable m t preformatted m insidepre true else m t preformatted m insidepre false break case doc style change div html only break case doc style change span html only break xmldocvisitor docstylechange m_hide docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_insidepre m_t m_insidepre docstylechange docstylechange void xml doc visitor visit doc verbatim s if m hide return switch s type case doc verbatim code fall though m t programlisting parse code m ci s context s text latin1 s is example s example file m t programlisting break case doc verbatim verbatim m t verbatim filter s text m t verbatim break case doc verbatim html only m t htmlonly filter s text m t htmlonly break case doc verbatim man only m t manonly filter s text m t manonly break case doc verbatim latex only m t latexonly filter s text m t latexonly break case doc verbatim xml only m t s text break case doc verbatim dot m t dot filter s text m t dot break xmldocvisitor docverbatim m_hide docverbatim m_t parsecode m_ci isexample examplefile m_t docverbatim m_t m_t docverbatim htmlonly m_t m_t docverbatim manonly m_t m_t docverbatim latexonly m_t m_t docverbatim xmlonly m_t docverbatim m_t m_t void xml doc visitor visit doc anchor anc if m hide return m t anchor id anc file 1 anc anchor xmldocvisitor docanchor m_hide m_t _1 void xml doc visitor visit doc include inc if m hide return switch inc type case doc include inc with lines m t programlisting q file info cfi inc file file def fd cfi dir path cfi file name parse code m ci inc context inc text latin1 inc is example inc example file fd m t programlisting break case doc include include m t programlisting parse code m ci inc context inc text latin1 inc is example inc example file m t programlisting break case doc include dont include break case doc include html include m t htmlonly filter inc text m t htmlonly break case doc include verb include m t verbatim filter inc text m t verbatim break xmldocvisitor docinclude m_hide docinclude incwithlines m_t qfileinfo filedef dirpath filename parsecode m_ci isexample examplefile m_t docinclude m_t parsecode m_ci isexample examplefile m_t docinclude dontinclude docinclude htmlinclude m_t m_t docinclude verbinclude m_t m_t void xml doc visitor visit doc inc operator op printf doc inc operator type d first d last d text s n op type op is first op is last op text data if op is first if m hide m t programlisting push enabled m hide true if op type doc inc operator skip pop enabled if m hide parse code m ci op context op text latin1 op is example op example file push enabled m hide true if op is last pop enabled if m hide m t programlisting else if m hide m t endl xmldocvisitor docincoperator docincoperator isfirst islast isfirst m_hide m_t pushenabled m_hide docincoperator popenabled m_hide parsecode m_ci isexample examplefile pushenabled m_hide islast popenabled m_hide m_t m_hide m_t void xml doc visitor visit doc formula f if m hide return m t formula id f id filter f text m t formula xmldocvisitor docformula m_hide m_t m_t void xml doc visitor visit doc index entry ie if m hide return m t indexentry primaryie filter ie entry m t primaryie secondaryie secondaryie indexentry xmldocvisitor docindexentry m_hide m_t m_t void xml doc visitor visit pre doc auto list l if m hide return if l is enum list m t orderedlist n else m t itemizedlist n xmldocvisitor visitpre docautolist m_hide isenumlist m_t m_t void xml doc visitor visit post doc auto list l if m hide return if l is enum list m t orderedlist n else m t itemizedlist n xmldocvisitor visitpost docautolist m_hide isenumlist m_t m_t void xml doc visitor visit pre doc auto list item if m hide return m t listitem xmldocvisitor visitpre docautolistitem m_hide m_t void xml doc visitor visit post doc auto list item if m hide return m t listitem xmldocvisitor visitpost docautolistitem m_hide m_t void xml doc visitor visit pre doc para if m hide return m t para xmldocvisitor visitpre docpara m_hide m_t void xml doc visitor visit post doc para if m hide return m t para xmldocvisitor visitpost docpara m_hide m_t void xml doc visitor visit pre doc root m t hr h4 font color red new parser font h4 n xmldocvisitor visitpre docroot m_t void xml doc visitor visit post doc root m t hr h4 font color red old parser font h4 n xmldocvisitor visitpost docroot m_t void xml doc visitor visit pre doc simple sect s if m hide return m t simplesect kind switch s type case doc simple sect see m t see break case doc simple sect return m t return break case doc simple sect author m t author break case doc simple sect authors m t authors break case doc simple sect version m t version break case doc simple sect since m t since break case doc simple sect date m t date break case doc simple sect note m t note break case doc simple sect warning m t warning break case doc simple sect pre m t pre break case doc simple sect post m t post break case doc simple sect invar m t invariant break case doc simple sect remark m t remark break case doc simple sect attention m t attention break case doc simple sect user m t par break case doc simple sect rcs m t rcs break case doc simple sect unknown break m t xmldocvisitor visitpre docsimplesect m_hide m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t docsimplesect m_t void xml doc visitor visit post doc simple sect if m hide return m t simplesect n xmldocvisitor visitpost docsimplesect m_hide m_t void xml doc visitor visit pre doc title if m hide return m t title xmldocvisitor visitpre doctitle m_hide m_t void xml doc visitor visit post doc title if m hide return m t title xmldocvisitor visitpost doctitle m_hide m_t void xml doc visitor visit pre doc simple list if m hide return m t itemizedlist n xmldocvisitor visitpre docsimplelist m_hide m_t void xml doc visitor visit post doc simple list if m hide return m t itemizedlist n xmldocvisitor visitpost docsimplelist m_hide m_t void xml doc visitor visit pre doc simple list item if m hide return m t listitem xmldocvisitor visitpre docsimplelistitem m_hide m_t void xml doc visitor visit post doc simple list item if m hide return m t listitem n xmldocvisitor visitpost docsimplelistitem m_hide m_t void xml doc visitor visit pre doc section s if m hide return m t sect s level id s file if s anchor is empty m t 1 s anchor m t endl m t title filter s title m t title endl xmldocvisitor visitpre docsection m_hide m_t isempty m_t _1 m_t m_t m_t void xml doc visitor visit post doc section s m t sect s level n xmldocvisitor visitpost docsection m_t void xml doc visitor visit pre doc html list s if m hide return if s type doc html list ordered m t orderedlist n else m t itemizedlist n xmldocvisitor visitpre dochtmllist m_hide dochtmllist m_t m_t void xml doc visitor visit post doc html list s if m hide return if s type doc html list ordered m t orderedlist n else m t itemizedlist n xmldocvisitor visitpost dochtmllist m_hide dochtmllist m_t m_t void xml doc visitor visit pre doc html list item if m hide return m t listitem n xmldocvisitor visitpre dochtmllistitem m_hide m_t void xml doc visitor visit post doc html list item if m hide return m t listitem n xmldocvisitor visitpost dochtmllistitem m_hide m_t void xml doc visitor visit pre doc html desc list if m hide return m t variablelist n xmldocvisitor visitpre dochtmldesclist m_hide m_t void xml doc visitor visit post doc html desc list if m hide return m t variablelist n xmldocvisitor visitpost dochtmldesclist m_hide m_t void xml doc visitor visit pre doc html desc title if m hide return m t varlistentry term xmldocvisitor visitpre dochtmldesctitle m_hide m_t void xml doc visitor visit post doc html desc title if m hide return m t term varlistentry n xmldocvisitor visitpost dochtmldesctitle m_hide m_t void xml doc visitor visit pre doc html desc data if m hide return m t listitem xmldocvisitor visitpre dochtmldescdata m_hide m_t void xml doc visitor visit post doc html desc data if m hide return m t listitem n xmldocvisitor visitpost dochtmldescdata m_hide m_t void xml doc visitor visit pre doc html table t if m hide return m t table rows t num rows cols t num cols xmldocvisitor visitpre dochtmltable m_hide m_t numrows numcols void xml doc visitor visit post doc html table if m hide return m t table n xmldocvisitor visitpost dochtmltable m_hide m_t void xml doc visitor visit pre doc html row if m hide return m t row n xmldocvisitor visitpre dochtmlrow m_hide m_t void xml doc visitor visit post doc html row if m hide return m t row n xmldocvisitor visitpost dochtmlrow m_hide m_t void xml doc visitor visit pre doc html cell c if m hide return if c is heading m t entry thead yes else m t entry thead no xmldocvisitor visitpre dochtmlcell m_hide isheading m_t m_t void xml doc visitor visit post doc html cell if m hide return m t entry xmldocvisitor visitpost dochtmlcell m_hide m_t void xml doc visitor visit pre doc html caption if m hide return m t caption xmldocvisitor visitpre dochtmlcaption m_hide m_t void xml doc visitor visit post doc html caption if m hide return m t caption n xmldocvisitor visitpost dochtmlcaption m_hide m_t void xml doc visitor visit pre doc internal if m hide return m t internal xmldocvisitor visitpre docinternal m_hide m_t void xml doc visitor visit post doc internal if m hide return m t internal endl xmldocvisitor visitpost docinternal m_hide m_t void xml doc visitor visit pre doch ref href if m hide return m t ulink url href url xmldocvisitor visitpre dochref m_hide m_t void xml doc visitor visit post doch ref if m hide return m t ulink xmldocvisitor visitpost dochref m_hide m_t void xml doc visitor visit pre doc html header header if m hide return m t heading level header level xmldocvisitor visitpre dochtmlheader m_hide m_t void xml doc visitor visit post doc html header if m hide return m t heading n xmldocvisitor visitpost dochtmlheader m_hide m_t void xml doc visitor visit pre doc image img if m hide return m t image type switch img type case doc image html m t html break case doc image latex m t latex break case doc image rtf m t rtf break m t q string base name img name int i if i base name find rev 1 i base name find rev 1 base name base name right base name length i 1 m t name base name if img width is empty m t width filter img width m t else if img height is empty m t height filter img height m t m t copy the image to the output dir q file in image img name q file out image config getstring xml output base name ascii if in image open io readonly if out image open io writeonly char buffer new char in image size in image read block buffer in image size out image write block buffer in image size out image flush delete buffer xmldocvisitor visitpre docimage m_hide m_t docimage m_t docimage m_t docimage m_t m_t qstring basename basename findrev basename findrev basename basename basename m_t basename isempty m_t m_t isempty m_t m_t m_t qfile inimage qfile outimage config_getstring xml_output basename inimage io_readonly outimage io_writeonly inimage inimage readblock inimage outimage writeblock inimage outimage void xml doc visitor visit post doc image if m hide return m t image endl xmldocvisitor visitpost docimage m_hide m_t void xml doc visitor visit pre doc dot file df if m hide return m t dotfile name df file xmldocvisitor visitpre docdotfile m_hide m_t void xml doc visitor visit post doc dot file if m hide return m t dotfile endl xmldocvisitor visitpost docdotfile m_hide m_t void xml doc visitor visit pre doc link lnk if m hide return start link lnk ref lnk file lnk anchor xmldocvisitor visitpre doclink m_hide startlink void xml doc visitor visit post doc link if m hide return end link xmldocvisitor visitpost doclink m_hide endlink void xml doc visitor visit pre doc ref ref if m hide return if ref file is empty start link ref ref ref file ref anchor if ref has link text filter ref target title xmldocvisitor visitpre docref m_hide isempty startlink haslinktext targettitle void xml doc visitor visit post doc ref ref if m hide return if ref file is empty end link m t xmldocvisitor visitpost docref m_hide isempty endlink m_t void xml doc visitor visit pre doc sec ref item ref if m hide return m t tocitem id ref file 1 ref anchor xmldocvisitor visitpre docsecrefitem m_hide m_t _1 void xml doc visitor visit post doc sec ref item if m hide return m t tocitem endl xmldocvisitor visitpost docsecrefitem m_hide m_t void xml doc visitor visit pre doc sec ref list if m hide return m t toclist endl xmldocvisitor visitpre docsecreflist m_hide m_t void xml doc visitor visit post doc sec ref list if m hide return m t toclist endl xmldocvisitor visitpost docsecreflist m_hide m_t void xml doc visitor visit pre doc param sect s if m hide return m t parameterlist kind switch s type case doc param sect param m t param break case doc param sect ret val m t retval break case doc param sect exception m t exception break default assert 0 m t xmldocvisitor visitpre docparamsect m_hide m_t docparamsect m_t docparamsect retval m_t docparamsect m_t m_t void xml doc visitor visit post doc param sect if m hide return m t parameterlist endl xmldocvisitor visitpost docparamsect m_hide m_t void xml doc visitor visit pre doc param list pl if m hide return m t parameteritem endl m t parameternamelist endl q str list iterator li pl parameters const char s q list iterator doc node li pl parameters doc node param for li to first param li current li m t parametername if pl direction doc param sect unspecified m t direction if pl direction doc param sect in m t in else if pl direction doc param sect out m t out else if pl direction doc param sect in out m t inout m t m t if param kind doc node kind word visit doc word param else if param kind doc node kind linkedword visit doc linked word param m t parametername endl m t parameternamelist endl m t parameterdescription endl xmldocvisitor visitpre docparamlist m_hide m_t m_t qstrlistiterator qlistiterator docnode docnode tofirst m_t docparamsect m_t docparamsect m_t docparamsect m_t docparamsect inout m_t m_t m_t docnode kind_word docword docnode kind_linkedword doclinkedword m_t m_t m_t void xml doc visitor visit post doc param list if m hide return m t parameterdescription endl m t parameteritem endl xmldocvisitor visitpost docparamlist m_hide m_t m_t void xml doc visitor visit pre docx ref item x if m hide return m t xrefsect id m t x file 1 x anchor m t m t xreftitle filter x title m t xreftitle m t xrefdescription xmldocvisitor visitpre docxrefitem m_hide m_t m_t _1 m_t m_t m_t m_t void xml doc visitor visit post docx ref item if m hide return m t xrefdescription m t xrefsect xmldocvisitor visitpost docxrefitem m_hide m_t m_t void xml doc visitor visit pre doc internal ref ref if m hide return start link 0 ref file ref anchor xmldocvisitor visitpre docinternalref m_hide startlink void xml doc visitor visit post doc internal ref if m hide return end link m t xmldocvisitor visitpost docinternalref m_hide endlink m_t void xml doc visitor visit pre doc copy c if m hide return m t copydoc link c link xmldocvisitor visitpre doccopy m_hide m_t void xml doc visitor visit post doc copy if m hide return m t copydoc endl xmldocvisitor visitpost doccopy m_hide m_t void xml doc visitor visit pre doc text xmldocvisitor visitpre doctext void xml doc visitor visit post doc text xmldocvisitor visitpost doctext void xml doc visitor filter const char str m t convert toxml str xmldocvisitor m_t converttoxml void xml doc visitor start link const q string ref const q string file const q string anchor m t ref refid file if anchor is empty m t 1 anchor m t kindref if anchor is empty m t member else m t compound m t if ref is empty m t external ref m t xmldocvisitor startlink qstring qstring qstring m_t isempty m_t _1 m_t isempty m_t m_t m_t isempty m_t m_t void xml doc visitor end link m t ref xmldocvisitor endlink m_t void xml doc visitor push enabled m enabled push new bool m hide xmldocvisitor pushenabled m_enabled m_hide void xml doc visitor pop enabled bool v m enabled pop assert v 0 m hide v delete v xmldocvisitor popenabled m_enabled m_hide void write string const char s bool keep spaces const writexml string m t s writestring keepspaces writexmlstring m_t const writexml link m t ext ref file anchor text writexmllink m_t extref void codify const char text xml db codify s n text if m insidecodeline m insidespecialhl m normalhlneedstarttag m t highlight class normal m normalhlneedstarttag false writexml code string m t text col xml_db m_insidecodeline m_insidespecialhl m_normalhlneedstarttag m_t m_normalhlneedstarttag writexmlcodestring m_t const char anchor const char name xml db write code link n if m insidecodeline m insidespecialhl m normalhlneedstarttag m t highlight class normal m normalhlneedstarttag false writexml link m t ref file anchor name col strlen name xml_db writecodelink m_insidecodeline m_insidespecialhl m_normalhlneedstarttag m_t m_normalhlneedstarttag writexmllink m_t void start code line xml db start code line n m t codeline if m linenumber 1 m t lineno m linenumber if m refid is empty m t refid m refid if m ismemberref m t refkind member else m t refkind compound if m external is empty m t external m external m t m insidecodeline true col 0 startcodeline xml_db startcodeline m_t m_linenumber m_t m_linenumber m_refid isempty m_t m_refid m_ismemberref m_t m_t m_external isempty m_t m_external m_t m_insidecodeline void end code line xml db end code line n if m insidespecialhl m normalhlneedstarttag m t highlight m normalhlneedstarttag true m t codeline endl non doc book m linenumber 1 m refid resize 0 m external resize 0 m insidecodeline false endcodeline xml_db endcodeline m_insidespecialhl m_normalhlneedstarttag m_t m_normalhlneedstarttag m_t docbook m_linenumber m_refid m_external m_insidecodeline void start code anchor const char id xml db start code anchor n if m insidecodeline m insidespecialhl m normalhlneedstarttag m t highlight class normal m normalhlneedstarttag false m t anchor id id startcodeanchor xml_db startcodeanchor m_insidecodeline m_insidespecialhl m_normalhlneedstarttag m_t m_normalhlneedstarttag m_t void end code anchor xml db end code anchor n m t anchor endcodeanchor xml_db endcodeanchor m_t void start font class const char color class xml db start font class n if m insidecodeline m insidespecialhl m normalhlneedstarttag m t highlight m normalhlneedstarttag true m t highlight class color class non doc book m insidespecialhl true startfontclass colorclass xml_db startfontclass m_insidecodeline m_insidespecialhl m_normalhlneedstarttag m_t m_normalhlneedstarttag m_t colorclass docbook m_insidespecialhl void end font class xml db end font class n m t highlight non doc book m insidespecialhl false endfontclass xml_db endfontclass m_t docbook m_insidespecialhl void write code anchor const char xml db write code anchor n writecodeanchor xml_db writecodeanchor const char anchor id int l xml db write line number n we remember the information provided here to use it at the codeline start tag m linenumber l if comp id m refid comp id if anchor id m refid qc string 1 anchor id m ismemberref anchor id 0 if ext ref m external ext ref anchorid xml_db writelinenumber m_linenumber compid m_refid compid anchorid m_refid qcstring _1 anchorid m_ismemberref anchorid extref m_external extref void finish if m insidecodeline end code line m_insidecodeline endcodeline m tagname tag name m startelementhandlers set auto delete true m endelementhandlers set auto delete true m_tagname tagname m_startelementhandlers setautodelete m_endelementhandlers setautodelete void set document locator q xml locator locator m locator locator setdocumentlocator qxmllocator m_locator void set file name const q string file name m inputfilename file name setfilename qstring filename m_inputfilename filename void warn const char fmt va list args va start args fmt warn m inputfilename m locator line number fmt args va end args va_list va_start m_inputfilename m_locator linenumber va_end void start compound const q xml attributes attrib m curstring q string kind attrib value kind q string is objc attrib value objc if kind class m curclass new tag class info m curclass kind tag class info class m state in class else if kind struct m curclass new tag class info m curclass kind tag class info struct m state in class else if kind union m curclass new tag class info m curclass kind tag class info union m state in class else if kind interface m curclass new tag class info m curclass kind tag class info interface m state in class else if kind exception m curclass new tag class info m curclass kind tag class info exception m state in class else if kind protocol m curclass new tag class info m curclass kind tag class info protocol m state in class else if kind category m curclass new tag class info m curclass kind tag class info category m state in class else if kind file m curfile new tag file info m state in file else if kind namespace m curnamespace new tag namespace info m state in namespace else if kind group m curgroup new tag group info m state in group else if kind page m curpage new tag page info m state in page else if kind package m curpackage new tag package info m state in package else if kind dir m curdir new tag dir info m state in dir else warn warning unknown compound attribute s found n kind data if is objc yes m curclass m curclass is objc true startcompound qxmlattributes m_curstring qstring qstring isobjc m_curclass tagclassinfo m_curclass tagclassinfo m_state inclass m_curclass tagclassinfo m_curclass tagclassinfo m_state inclass m_curclass tagclassinfo m_curclass tagclassinfo m_state inclass m_curclass tagclassinfo m_curclass tagclassinfo m_state inclass m_curclass tagclassinfo m_curclass tagclassinfo m_state inclass m_curclass tagclassinfo m_curclass tagclassinfo m_state inclass m_curclass tagclassinfo m_curclass tagclassinfo m_state inclass m_curfile tagfileinfo m_state infile m_curnamespace tagnamespaceinfo m_state innamespace m_curgroup taggroupinfo m_state ingroup m_curpage tagpageinfo m_state inpage m_curpackage tagpackageinfo m_state inpackage m_curdir tagdirinfo m_state indir isobjc m_curclass m_curclass isobjc void end compound switch m state case in class m tagfileclasses append m curclass m curclass 0 break case in file m tagfilefiles append m curfile m curfile 0 break case in namespace m tagfilenamespaces append m curnamespace m curnamespace 0 break case in group m tagfilegroups append m curgroup m curgroup 0 break case in page m tagfilepages append m curpage m curpage 0 break case in dir m tagfiledirs append m curdir m curdir 0 break case in package m tagfilepackages append m curpackage m curpackage 0 break default warn warning tag compound was not expected n endcompound m_state inclass m_tagfileclasses m_curclass m_curclass infile m_tagfilefiles m_curfile m_curfile innamespace m_tagfilenamespaces m_curnamespace m_curnamespace ingroup m_tagfilegroups m_curgroup m_curgroup inpage m_tagfilepages m_curpage m_curpage indir m_tagfiledirs m_curdir m_curdir inpackage m_tagfilepackages m_curpackage m_curpackage void start member const q xml attributes attrib m curmember new tag member info m curmember kind attrib value kind q string prot str attrib value protection q string virt str attrib value virtualness q string static str attrib value static if prot str protected m curmember prot protected else if prot str private m curmember prot private if virt str virtual m curmember virt virtual else if virt str pure m curmember virt pure if static str yes m curmember is static true m statestack push new state m state m state in member startmember qxmlattributes m_curmember tagmemberinfo m_curmember qstring protstr qstring virtstr qstring staticstr protstr m_curmember protstr m_curmember virtstr m_curmember virtstr m_curmember staticstr m_curmember isstatic m_statestack m_state m_state inmember void end member m state m statestack top m statestack remove switch m state case in class m curclass members append m curmember break case in file m curfile members append m curmember break case in namespace m curnamespace members append m curmember break case in group m curgroup members append m curmember break case in package m curpackage members append m curmember break default warn warning unexpected tag member found n break endmember m_state m_statestack m_statestack m_state inclass m_curclass m_curmember infile m_curfile m_curmember innamespace m_curnamespace m_curmember ingroup m_curgroup m_curmember inpackage m_curpackage m_curmember void end doc anchor switch m state case in class m curclass doc anchors append new tag anchor info m filename m curstring break case in file m curfile doc anchors append new tag anchor info m filename m curstring break case in namespace m curnamespace doc anchors append new tag anchor info m filename m curstring break case in group m curgroup doc anchors append new tag anchor info m filename m curstring break case in page m curpage doc anchors append new tag anchor info m filename m curstring break case in member m curmember doc anchors append new tag anchor info m filename m curstring break case in package m curpackage doc anchors append new tag anchor info m filename m curstring break case in dir m curdir doc anchors append new tag anchor info m filename m curstring break default warn warning unexpected tag member found n break enddocanchor m_state inclass m_curclass docanchors taganchorinfo m_filename m_curstring infile m_curfile docanchors taganchorinfo m_filename m_curstring innamespace m_curnamespace docanchors taganchorinfo m_filename m_curstring ingroup m_curgroup docanchors taganchorinfo m_filename m_curstring inpage m_curpage docanchors taganchorinfo m_filename m_curstring inmember m_curmember docanchors taganchorinfo m_filename m_curstring inpackage m_curpackage docanchors taganchorinfo m_filename m_curstring indir m_curdir docanchors taganchorinfo m_filename m_curstring void end class switch m state case in class m curclass class list append m curstring break case in file m curfile class list append m curstring break case in namespace m curnamespace class list append m curstring break case in group m curgroup class list append m curstring break case in package m curpackage class list append m curstring break default warn warning unexpected tag class found n break endclass m_state inclass m_curclass classlist m_curstring infile m_curfile classlist m_curstring innamespace m_curnamespace classlist m_curstring ingroup m_curgroup classlist m_curstring inpackage m_curpackage classlist m_curstring void end namespace switch m state case in namespace m curnamespace class list append m curstring break case in file m curfile namespace list append m curstring break case in group m curgroup namespace list append m curstring break default warn warning unexpected tag namespace found n break endnamespace m_state innamespace m_curnamespace classlist m_curstring infile m_curfile namespacelist m_curstring ingroup m_curgroup namespacelist m_curstring void end file switch m state case in group m curgroup file list append m curstring break case in dir m curdir file list append m curstring break default warn warning unexpected tag file found n break endfile m_state ingroup m_curgroup filelist m_curstring indir m_curdir filelist m_curstring void end page switch m state case in group m curgroup file list append m curstring break default warn warning unexpected tag page found n break endpage m_state ingroup m_curgroup filelist m_curstring void end dir switch m state case in dir m curdir subdir list append m curstring break default warn warning unexpected tag page found n break enddir m_state indir m_curdir subdirlist m_curstring void start string value const q xml attributes m curstring startstringvalue qxmlattributes m_curstring void start doc anchor const q xml attributes attrib m filename attrib value file m curstring startdocanchor qxmlattributes m_filename m_curstring void end type if m state in member m curmember type m curstring else warn warning unexpected tag type found n endtype m_state inmember m_curmember m_curstring void end name switch m state case in class m curclass name m curstring break case in file m curfile name m curstring break case in namespace m curnamespace name m curstring break case in group m curgroup name m curstring break case in page m curpage name m curstring break case in dir m curdir name m curstring break case in member m curmember name m curstring break case in package m curpackage name m curstring break default warn warning unexpected tag name found n break endname m_state inclass m_curclass m_curstring infile m_curfile m_curstring innamespace m_curnamespace m_curstring ingroup m_curgroup m_curstring inpage m_curpage m_curstring indir m_curdir m_curstring inmember m_curmember m_curstring inpackage m_curpackage m_curstring void start base const q xml attributes attrib m curstring if m state in class m curclass q string prot str attrib value protection q string virt str attrib value virtualness protection prot public specifier virt normal if prot str protected prot protected else if prot str private prot private if virt str virtual virt virtual if m curclass bases 0 m curclass bases new q list base info m curclass bases set auto delete true m curclass bases append new base info m curstring prot virt else warn warning unexpected tag base found n startbase qxmlattributes m_curstring m_state inclass m_curclass qstring protstr qstring virtstr protstr protstr virtstr m_curclass m_curclass qlist baseinfo m_curclass setautodelete m_curclass baseinfo m_curstring void end base if m state in class m curclass m curclass bases get last name m curstring else warn warning unexpected tag base found n endbase m_state inclass m_curclass m_curclass getlast m_curstring void start includes const q xml attributes attrib if m state in file m curfile m curincludes new tag include info m curincludes id attrib value id m curincludes name attrib value name m curincludes is local attrib value local yes true false m curincludes is imported attrib value imported yes true false m curfile includes append m curincludes else warn warning unexpected tag includes found n m curstring startincludes qxmlattributes m_state infile m_curfile m_curincludes tagincludeinfo m_curincludes m_curincludes m_curincludes islocal m_curincludes isimported m_curfile m_curincludes m_curstring void end includes m curincludes text m curstring endincludes m_curincludes m_curstring void end template arg if m state in class m curclass if m curclass template arguments 0 m curclass template arguments new q list q string m curclass template arguments set auto delete true m curclass template arguments append new q string m curstring else warn warning unexpected tag templarg found n endtemplatearg m_state inclass m_curclass m_curclass templatearguments m_curclass templatearguments qlist qstring m_curclass templatearguments setautodelete m_curclass templatearguments qstring m_curstring void end filename switch m state case in class m curclass filename m curstring break case in namespace m curnamespace filename m curstring break case in file m curfile filename m curstring break case in group m curgroup filename m curstring break case in page m curpage filename m curstring break case in package m curpackage filename m curstring break case in dir m curdir filename m curstring break default warn warning unexpected tag filename found n break endfilename m_state inclass m_curclass m_curstring innamespace m_curnamespace m_curstring infile m_curfile m_curstring ingroup m_curgroup m_curstring inpage m_curpage m_curstring inpackage m_curpackage m_curstring indir m_curdir m_curstring void end path switch m state case in file m curfile path m curstring break case in dir m curdir path m curstring break default warn warning unexpected tag path found n break endpath m_state infile m_curfile m_curstring indir m_curdir m_curstring void end anchor if m state in member m curmember anchor m curstring else warn warning unexpected tag anchor found n endanchor m_state inmember m_curmember m_curstring void end anchor file if m state in member m curmember anchor file m curstring else warn warning unexpected tag anchorfile found n endanchorfile m_state inmember m_curmember anchorfile m_curstring void end arglist if m state in member m curmember arglist m curstring else warn warning unexpected tag arglist found n endarglist m_state inmember m_curmember m_curstring void end title switch m state case in group m curgroup title m curstring break case in page m curpage title m curstring break default warn warning unexpected tag title found n break endtitle m_state ingroup m_curgroup m_curstring inpage m_curpage m_curstring void end subgroup if m state in group m curgroup subgroup list append m curstring else warn warning unexpected tag subgroup found n endsubgroup m_state ingroup m_curgroup subgrouplist m_curstring void start ignore element const q xml attributes startignoreelement qxmlattributes void end ignore element endignoreelement bool start document m state invalid m curclass 0 m curnamespace 0 m curfile 0 m curgroup 0 m curpage 0 m curpackage 0 m curdir 0 m statestack set auto delete true m tagfileclasses set auto delete true m tagfilefiles set auto delete true m tagfilenamespaces set auto delete true m tagfilegroups set auto delete true m tagfilepages set auto delete true m tagfilepackages set auto delete true m tagfiledirs set auto delete true m startelementhandlers insert compound new start element handler this tag file parser start compound m startelementhandlers insert member new start element handler this tag file parser start member m startelementhandlers insert name new start element handler this tag file parser start string value m startelementhandlers insert base new start element handler this tag file parser start base m startelementhandlers insert filename new start element handler this tag file parser start string value m startelementhandlers insert includes new start element handler this tag file parser start includes m startelementhandlers insert path new start element handler this tag file parser start string value m startelementhandlers insert anchorfile new start element handler this tag file parser start string value m startelementhandlers insert anchor new start element handler this tag file parser start string value m startelementhandlers insert arglist new start element handler this tag file parser start string value m startelementhandlers insert title new start element handler this tag file parser start string value m startelementhandlers insert subgroup new start element handler this tag file parser start string value m startelementhandlers insert class new start element handler this tag file parser start string value m startelementhandlers insert namespace new start element handler this tag file parser start string value m startelementhandlers insert file new start element handler this tag file parser start string value m startelementhandlers insert dir new start element handler this tag file parser start string value m startelementhandlers insert page new start element handler this tag file parser start string value m startelementhandlers insert docanchor new start element handler this tag file parser start doc anchor m startelementhandlers insert tagfile new start element handler this tag file parser start ignore element m startelementhandlers insert templarg new start element handler this tag file parser start string value m startelementhandlers insert type new start element handler this tag file parser start string value m endelementhandlers insert compound new end element handler this tag file parser end compound m endelementhandlers insert member new end element handler this tag file parser end member m endelementhandlers insert name new end element handler this tag file parser end name m endelementhandlers insert base new end element handler this tag file parser end base m endelementhandlers insert filename new end element handler this tag file parser end filename m endelementhandlers insert includes new end element handler this tag file parser end includes m endelementhandlers insert path new end element handler this tag file parser end path m endelementhandlers insert anchorfile new end element handler this tag file parser end anchor file m endelementhandlers insert anchor new end element handler this tag file parser end anchor m endelementhandlers insert arglist new end element handler this tag file parser end arglist m endelementhandlers insert title new end element handler this tag file parser end title m endelementhandlers insert subgroup new end element handler this tag file parser end subgroup m endelementhandlers insert class new end element handler this tag file parser end class m endelementhandlers insert namespace new end element handler this tag file parser end namespace m endelementhandlers insert file new end element handler this tag file parser end file m endelementhandlers insert dir new end element handler this tag file parser end dir m endelementhandlers insert page new end element handler this tag file parser end page m endelementhandlers insert docanchor new end element handler this tag file parser end doc anchor m endelementhandlers insert tagfile new end element handler this tag file parser end ignore element m endelementhandlers insert templarg new end element handler this tag file parser end template arg m endelementhandlers insert type new end element handler this tag file parser end type return true startdocument m_state m_curclass m_curnamespace m_curfile m_curgroup m_curpage m_curpackage m_curdir m_statestack setautodelete m_tagfileclasses setautodelete m_tagfilefiles setautodelete m_tagfilenamespaces setautodelete m_tagfilegroups setautodelete m_tagfilepages setautodelete m_tagfilepackages setautodelete m_tagfiledirs setautodelete m_startelementhandlers startelementhandler tagfileparser startcompound m_startelementhandlers startelementhandler tagfileparser startmember m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startbase m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startincludes m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startdocanchor m_startelementhandlers startelementhandler tagfileparser startignoreelement m_startelementhandlers startelementhandler tagfileparser startstringvalue m_startelementhandlers startelementhandler tagfileparser startstringvalue m_endelementhandlers endelementhandler tagfileparser endcompound m_endelementhandlers endelementhandler tagfileparser endmember m_endelementhandlers endelementhandler tagfileparser endname m_endelementhandlers endelementhandler tagfileparser endbase m_endelementhandlers endelementhandler tagfileparser endfilename m_endelementhandlers endelementhandler tagfileparser endincludes m_endelementhandlers endelementhandler tagfileparser endpath m_endelementhandlers endelementhandler tagfileparser endanchorfile m_endelementhandlers endelementhandler tagfileparser endanchor m_endelementhandlers endelementhandler tagfileparser endarglist m_endelementhandlers endelementhandler tagfileparser endtitle m_endelementhandlers endelementhandler tagfileparser endsubgroup m_endelementhandlers endelementhandler tagfileparser endclass m_endelementhandlers endelementhandler tagfileparser endnamespace m_endelementhandlers endelementhandler tagfileparser endfile m_endelementhandlers endelementhandler tagfileparser enddir m_endelementhandlers endelementhandler tagfileparser endpage m_endelementhandlers endelementhandler tagfileparser enddocanchor m_endelementhandlers endelementhandler tagfileparser endignoreelement m_endelementhandlers endelementhandler tagfileparser endtemplatearg m_endelementhandlers endelementhandler tagfileparser endtype const q string name const q xml attributes attrib printf start element s n name data start element handler handler m startelementhandlers name if handler handler attrib else warn warning unknown tag s found n name data return true qstring qxmlattributes startelement startelementhandler m_startelementhandlers bool end element const q string const q string const q string name printf end element s n name data end element handler handler m endelementhandlers name if handler handler else warn warning unknown tag s found n name data return true endelement qstring qstring qstring endelement endelementhandler m_endelementhandlers bool characters const q string ch m curstring ch return true qstring m_curstring void tag file parser dump msg result n q list iterator tag class info lci m tagfileclasses classes tag class info cd for cd lci current lci msg class s n cd name data msg filename s n cd filename data if cd bases q list iterator base info bii cd bases base info bi for bii to first bi bii current bii msg base s n bi name data q list iterator tag member info mci cd members tag member info md for md mci current mci msg member n msg kind s n md kind data msg name s n md name data msg anchor s n md anchor data msg arglist s n md arglist data namespaces q list iterator tag namespace info lni m tagfilenamespaces tag namespace info nd for nd lni current lni msg namespace s n nd name data msg filename s n nd filename data q string list iterator it for it nd class list begin it nd class list end it msg class s n it latin1 q list iterator tag member info mci nd members tag member info md for md mci current mci msg member n msg kind s n md kind data msg name s n md name data msg anchor s n md anchor data msg arglist s n md arglist data files q list iterator tag file info lfi m tagfilefiles tag file info fd for fd lfi current lfi msg file s n fd name data msg filename s n fd filename data q string list iterator it for it fd namespace list begin it fd namespace list end it msg namespace s n it latin1 for it fd class list begin it fd class list end it msg class s n it latin1 q list iterator tag member info mci fd members tag member info md for md mci current mci msg member n msg kind s n md kind data msg name s n md name data msg anchor s n md anchor data msg arglist s n md arglist data q list iterator tag include info mii fd includes tag include info ii for ii mii current mii msg includes id s name s n ii id data ii name data groups q list iterator tag group info lgi m tagfilegroups tag group info gd for gd lgi current lgi msg group s n gd name data msg filename s n gd filename data q string list iterator it for it gd namespace list begin it gd namespace list end it msg namespace s n it latin1 for it gd class list begin it gd class list end it msg class s n it latin1 for it gd file list begin it gd file list end it msg file s n it latin1 for it gd subgroup list begin it gd subgroup list end it msg subgroup s n it latin1 for it gd page list begin it gd page list end it msg page s n it latin1 q list iterator tag member info mci gd members tag member info md for md mci current mci msg member n msg kind s n md kind data msg name s n md name data msg anchor s n md anchor data msg arglist s n md arglist data pages q list iterator tag page info lpi m tagfilepages tag page info pd for pd lpi current lpi msg page s n pd name data msg title s n pd title data msg filename s n pd filename data dirs q list iterator tag dir info ldi m tagfiledirs tag dir info dd for dd ldi current ldi msg dir s n dd name data msg path s n dd path data q string list iterator it for it dd file list begin it dd file list end it msg file s n it latin1 for it dd subdir list begin it dd subdir list end it msg subdir s n it latin1 tagfileparser qlistiterator tagclassinfo m_tagfileclasses tagclassinfo qlistiterator baseinfo baseinfo tofirst qlistiterator tagmemberinfo tagmemberinfo qlistiterator tagnamespaceinfo m_tagfilenamespaces tagnamespaceinfo qstringlist classlist classlist qlistiterator tagmemberinfo tagmemberinfo qlistiterator tagfileinfo m_tagfilefiles tagfileinfo qstringlist namespacelist namespacelist classlist classlist qlistiterator tagmemberinfo tagmemberinfo qlistiterator tagincludeinfo tagincludeinfo qlistiterator taggroupinfo m_tagfilegroups taggroupinfo qstringlist namespacelist namespacelist classlist classlist filelist filelist subgrouplist subgrouplist pagelist pagelist qlistiterator tagmemberinfo tagmemberinfo qlistiterator tagpageinfo m_tagfilepages tagpageinfo qlistiterator tagdirinfo m_tagfiledirs tagdirinfo qstringlist filelist filelist subdirlist subdirlist void tag file parser build lists entry root build class list tag class info tci m tagfileclasses first while tci entry ce new entry switch tci kind case tag class info class ce section entry class sec break case tag class info struct ce section entry struct sec break case tag class info union ce section entry union sec break case tag class info interface ce section entry interface sec break case tag class info exception ce section entry exception sec break case tag class info protocol ce section entry protocol sec break case tag class info category ce section entry category sec break ce name tci name add doc anchors ce tci doc anchors tag info ti new tag info ti tag name m tagname ti file name tci filename ce tag info ti ce objc tci is objc transfer base class list if tci bases delete ce extends ce extends tci bases tci bases 0 if tci template arguments if ce t arg lists 0 ce t arg lists new q list argument list ce t arg lists set auto delete true argument list al new argument list ce t arg lists append al q list iterator q string sli tci template arguments q string arg name for arg name sli current sli argument a new argument a type class a name arg name al append a build member list ce tci members root add sub entry ce tci m tagfileclasses next build file list tag file info tfi m tagfilefiles first while tfi entry fe new entry fe section guess section tfi name fe name tfi name add doc anchors fe tfi doc anchors tag info ti new tag info ti tag name m tagname ti file name tfi filename fe tag info ti q string full name m tagname tfi path strip path tfi name fe file name full name printf new file def filename s n tfi filename data file def fd new file def m tagname tfi path tfi name m tagname tfi filename file name mn if mn doxygen input name dict find tfi name mn append fd else mn new file name full name tfi name mn append fd doxygen input name list in sort mn doxygen input name dict insert tfi name mn build member list fe tfi members root add sub entry fe tfi m tagfilefiles next build namespace list tag namespace info tni m tagfilenamespaces first while tni entry ne new entry ne section entry namespace sec ne name tni name add doc anchors ne tni doc anchors tag info ti new tag info ti tag name m tagname ti file name tni filename ne tag info ti build member list ne tni members root add sub entry ne tni m tagfilenamespaces next build package list tag package info tpgi m tagfilepackages first while tpgi entry pe new entry pe section entry package sec pe name tpgi name add doc anchors pe tpgi doc anchors tag info ti new tag info ti tag name m tagname ti file name tpgi filename pe tag info ti build member list pe tpgi members root add sub entry pe tpgi m tagfilepackages next build group list but only if config file says to include it if config getbool external groups tag group info tgi m tagfilegroups first while tgi entry ge new entry ge section entry groupdoc sec ge name tgi name ge type tgi title add doc anchors ge tgi doc anchors tag info ti new tag info ti tag name m tagname ti file name tgi filename ge tag info ti build member list ge tgi members root add sub entry ge tgi m tagfilegroups next build page list tag page info tpi m tagfilepages first while tpi entry pe new entry pe section entry pagedoc sec pe name tpi name pe args tpi title add doc anchors pe tpi doc anchors tag info ti new tag info ti tag name m tagname ti file name tpi filename pe tag info ti root add sub entry pe tpi m tagfilepages next tagfileparser buildlists tagclassinfo m_tagfileclasses tagclassinfo class_sec tagclassinfo struct_sec tagclassinfo union_sec tagclassinfo interface_sec tagclassinfo exception_sec tagclassinfo protocol_sec tagclassinfo category_sec adddocanchors docanchors taginfo taginfo tagname m_tagname filename taginfo isobjc templatearguments targlists targlists qlist argumentlist targlists setautodelete argumentlist argumentlist targlists qlistiterator qstring templatearguments qstring argname argname argname buildmemberlist addsubentry m_tagfileclasses tagfileinfo m_tagfilefiles guesssection adddocanchors docanchors taginfo taginfo tagname m_tagname filename taginfo qstring fullname m_tagname strippath filename fullname filedef filedef filedef m_tagname m_tagname filename inputnamedict filename fullname inputnamelist insort inputnamedict buildmemberlist addsubentry m_tagfilefiles tagnamespaceinfo m_tagfilenamespaces namespace_sec adddocanchors docanchors taginfo taginfo tagname m_tagname filename taginfo buildmemberlist addsubentry m_tagfilenamespaces tagpackageinfo m_tagfilepackages package_sec adddocanchors docanchors taginfo taginfo tagname m_tagname filename taginfo buildmemberlist addsubentry m_tagfilepackages config_getbool external_groups taggroupinfo m_tagfilegroups groupdoc_sec adddocanchors docanchors taginfo taginfo tagname m_tagname filename taginfo buildmemberlist addsubentry m_tagfilegroups tagpageinfo m_tagfilepages pagedoc_sec adddocanchors docanchors taginfo taginfo tagname m_tagname filename taginfo addsubentry m_tagfilepages void tag file parser add includes tag file info tfi m tagfilefiles first while tfi printf tag file tag name s path s name s n m tagname data tfi path data tfi name data file name fn doxygen input name dict find tfi name if fn printf found n file name iterator fni fn file def fd for fd fni current fni printf input file path s name s n fd get path data fd name data if fd get path qc string m tagname tfi path printf found n q list iterator tag include info mii tfi includes tag include info ii for ii mii current mii printf ii name s n ii name data file name ifn doxygen input name dict find ii name assert ifn 0 if ifn file name iterator ifni ifn file def ifd for ifd ifni current ifni printf ifd get output file base s ii id s n ifd get output file base data ii id data if ifd get output file base qc string ii id fd add include dependency ifd ii text ii is local ii is imported tfi m tagfilefiles next tagfileparser addincludes tagfileinfo m_tagfilefiles tagname m_tagname filename inputnamedict filenameiterator filedef getpath getpath qcstring m_tagname qlistiterator tagincludeinfo tagincludeinfo filename inputnamedict filenameiterator filedef getoutputfilebase getoutputfilebase getoutputfilebase qcstring addincludedependency islocal isimported m_tagfilefiles void tag file parser build member list entry ce q list tag member info members q list iterator tag member info mii members tag member info tmi for tmi mii current mii entry me new entry me type tmi type me name tmi name me args tmi arglist if me args is empty delete me arg list me arg list new argument list string to argument list me args me arg list me protection tmi prot me virt tmi virt me stat tmi is static me file name ce file name if ce section entry groupdoc sec me groups append new grouping ce name grouping grouping ingroup add doc anchors me tmi doc anchors tag info ti new tag info ti tag name m tagname ti anchor tmi anchor ti file name tmi anchor file me tag info ti if tmi kind define me type define me section entry define sec else if tmi kind enumvalue me section entry variable sec me mtype method else if tmi kind property me section entry variable sec me mtype property else if tmi kind event me section entry variable sec me mtype event else if tmi kind variable me section entry variable sec me mtype method else if tmi kind typedef me section entry variable sec entry typedef sec me type prepend typedef me mtype method else if tmi kind enumeration me section entry enum sec me mtype method else if tmi kind function me section entry function sec me mtype method else if tmi kind signal me section entry function sec me mtype signal else if tmi kind prototype me section entry function sec me mtype method else if tmi kind friend me section entry function sec me type prepend friend me mtype method else if tmi kind dcop me section entry function sec me mtype dcop else if tmi kind slot me section entry function sec me mtype slot ce add sub entry me tagfileparser buildmemberlist qlist tagmemberinfo qlistiterator tagmemberinfo tagmemberinfo isempty arglist arglist argumentlist stringtoargumentlist arglist isstatic filename filename groupdoc_sec grouping_ingroup adddocanchors docanchors taginfo taginfo tagname m_tagname filename anchorfile taginfo define_sec variable_sec variable_sec variable_sec variable_sec variable_sec typedef_sec enum_sec function_sec function_sec function_sec function_sec function_sec function_sec addsubentry void tag file parser add doc anchors entry e const tag anchor info list l q list iterator tag anchor info tli l tag anchor info ta for tli to first ta tli current tli if doxygen section dict find ta label 0 printf new section info file s anchor s n ta file name data ta label data section info si new section info ta file name ta label ta label section info anchor m tagname doxygen section dict insert ta label si e anchors append si else warn duplicate anchor s found n ta label data tagfileparser adddocanchors taganchorinfolist qlistiterator taganchorinfo taganchorinfo tofirst sectiondict sectioninfo filename sectioninfo sectioninfo filename sectioninfo m_tagname sectiondict bool warning const q xml parse exception return false qxmlparseexception bool error const q xml parse exception return false qxmlparseexception bool fatal error const q xml parse exception exception err fatal error at line d column d s n exception line number exception column number exception message data return false fatalerror qxmlparseexception linenumber columnnumber item at uint index const return indexed item if defined check range if index len warning index range index endif return vec index check_range warningindexrange q data stream qg vector read q data stream s read vector from stream uint num s num read number of items clear clear vector resize num for uint i 0 i num i read all items item d read s d check ptr d if d no memory break vec i d return s qdatastream qgvector qdatastream check_ptr q data stream qg vector write q data stream s const write vector to stream uint num count s num number of items to write num size for uint i 0 i num i write non null items if vec i write s vec i return s qdatastream qgvector qdatastream int qg vector compare items item d1 item d2 return d1 d2 compare pointers qgvector compareitems qg vector qg vector create empty vector vec 0 len num items 0 qgvector qgvector numitems qg vector qg vector uint size create vectors with nullptrs len size num items 0 if len 0 zero length vec 0 return vec new item len check ptr vec memset void vec 0 len sizeof item fill with nulls qgvector qgvector numitems check_ptr q collection a len a len num items a num items vec new item len check ptr vec for uint i 0 i len i vec i a vec i new item a vec i 0 check ptr vec i qcollection numitems numitems check_ptr newitem check_ptr qg vector qg vector clear qgvector qgvector qg vector qg vector operator const qg vector v assign from other vector clear first delete old vector len v len num items v num items vec new item len create new vector check ptr vec for uint i 0 i len i copy elements vec i v vec i new item v vec i 0 check ptr vec i return this qgvector qgvector qgvector numitems numitems check_ptr newitem check_ptr bool qg vector insert uint index item d insert item at index if defined check range if index len range error q warning qg vector insert index d out of range index return false endif if vec index remove old item delete item vec index num items if d vec index new item d check ptr vec index num items return vec index 0 else vec index 0 reset item return true qgvector check_range qwarning qgvector deleteitem numitems newitem check_ptr numitems bool qg vector remove uint index remove item at index if defined check range if index len range error q warning qg vector remove index d out of range index return false endif if vec index valid item delete item vec index delete it vec index 0 reset pointer num items return true qgvector check_range qwarning qgvector deleteitem numitems q collection item qg vector take uint index take out item if defined check range if index len range error q warning qg vector take index d out of range index return 0 endif item d vec index don t delete item if d num items vec index 0 return d qcollection qgvector check_range qwarning qgvector numitems void qg vector clear clear vector if vec for uint i 0 i len i delete each item if vec i delete item vec i delete vec vec 0 len num items 0 qgvector deleteitem numitems bool qg vector resize uint newsize resize array if newsize len nothing to do return true if vec existing data if newsize len shrink vector uint i newsize while i len delete lost items if vec i delete item vec i num items i if newsize 0 vector becomes empty delete vec vec 0 len num items 0 return true if defined dont use realloc item newvec new item newsize manual realloc memcpy newvec vec len newsize len newsize sizeof item delete vec vec newvec else vec item realloc char vec newsize sizeof item endif else create new vector vec new item newsize len num items 0 check ptr vec if vec no memory return false if newsize len init extra space added memset void vec len 0 newsize len sizeof item len newsize return true qgvector deleteitem numitems numitems dont_use_realloc numitems check_ptr bool qg vector fill item d int flen resize and fill vector if flen 0 flen len default use vector length else if resize flen return false for uint i 0 i uint flen i insert d at every index insert i d return true qgvector void qg vector sort sort vector if count 0 no elements return register item start vec 0 register item end vec len 1 item tmp while true put all zero elements behind while start end start 0 start while end start end 0 end if start end tmp start start end end tmp else break sort vec qg vector this qsort vec count sizeof item cmp vec sort vec 0 qgvector sort_vec qgvector cmp_vec sort_vec int qg vector bsearch item d const binary search when sorted if len return 1 if d if defined check null q warning qg vector bsearch cannot search for null object endif return 1 int n1 0 int n2 len 1 int mid 0 bool found false while n1 n2 int res mid n1 n2 2 if vec mid 0 null item greater res 1 else res qg vector this compare items d vec mid if res 0 n2 mid 1 else if res 0 n1 mid 1 else found it found true break if found return 1 search to first of equal items while mid 1 0 qg vector this compare items d vec mid 1 mid return mid qgvector check_null qwarning qgvector qgvector compareitems qgvector compareitems int qg vector find ref item d uint index const find exact item in vector if defined check range if index len range error q warning qg vector find ref index d out of range index return 1 endif for uint i index i len i if vec i d return i return 1 qgvector findref check_range qwarning qgvector findref int qg vector find item d uint index const find equal item in vector if defined check range if index len range error q warning qg vector find index d out of range index return 1 endif for uint i index i len i if vec i 0 d 0 found null item return i if vec i qg vector this compare items vec i d 0 return i return 1 qgvector check_range qwarning qgvector qgvector compareitems uint qg vector contains ref item d const get number of exact matches uint count 0 for uint i 0 i len i if vec i d count return count qgvector containsref uint qg vector contains item d const get number of equal matches uint count 0 for uint i 0 i len i if vec i 0 d 0 count null items count if vec i qg vector this compare items vec i d 0 count return count qgvector qgvector compareitems item at uint index const return indexed item if defined check range if index len warning index range index endif return vec index check_range warningindexrange bool qg vector insert expand uint index item d insert and grow if necessary if index len if resize index 1 no memory return false insert index d return true qgvector insertexpand void qg vector to list qg list list const store items in list list clear for uint i 0 i len i if vec i list append vec i qgvector tolist qglist q data stream qg vector read q data stream s item d read item from stream d 0 return s qdatastream qgvector qdatastream q data stream qg vector write q data stream s item const write item to stream return s qdatastream qgvector qdatastream void qg vector warning index range uint i if defined check range q warning qg vector operator index d out of range i else q unused i endif qgvector warningindexrange check_range qwarning qgvector q_unused index word index word const char word m word word m urls 17 m urls set auto delete true printf index word index word s n word indexword indexword m_word m_urls m_urls setautodelete indexword indexword void index word add url index int idx bool hi priority printf index word add url index d d n idx hi priority url info ui m urls find idx if ui 0 printf url info url info d n idx ui new url info idx 0 m urls insert idx ui ui freq 2 if hi priority ui freq 1 mark as high priority document indexword addurlindex hipriority indexword addurlindex hipriority urlinfo m_urls urlinfo urlinfo urlinfo m_urls hipriority search index search index m words 328829 m index num index entries m urlindex 1 int i m words set auto delete true m urls set auto delete true for i 0 i num index entries i m index insert i new q list index word searchindex searchindex m_words m_index numindexentries m_urlindex m_words setautodelete m_urls setautodelete numindexentries m_index qlist indexword void search index set current doc const char name const char base name const char anchor printf search index set current doc s s s n name base name anchor qc string url base name config getstring html file extension if anchor url qc string anchor m urlindex m urls insert m urlindex new url name url searchindex setcurrentdoc basename searchindex setcurrentdoc basename qcstring basename config_getstring html_file_extension qcstring m_urlindex m_urls m_urlindex void search index add word const char word bool hi priority printf search index add word s d n word hi priority q string w str q string word lower q string w str word w str w str lower if w str is empty return index word w m words w str if w 0 int idx chars to index w str if idx 0 return w new index word w str fprintf stderr add word s at index d n word idx m index idx append w m words insert w str w w add url index m urlindex hi priority searchindex addword hipriority searchindex addword hipriority qstring wstr qstring qstring wstr wstr wstr wstr isempty indexword m_words wstr charstoindex wstr indexword wstr addword m_index m_words wstr addurlindex m_urlindex hipriority void search index write const char file name int i int size 4 for the header size 4 num index entries for the index int words offset size first pass compute the size of the wordlist for i 0 i num index entries i q list index word wlist m index i if wlist is empty q list iterator index word iwi wlist index word iw for iwi to first iw iwi current iwi int ws iw word length 1 size ws 4 word url info list offset size 1 zero list terminator second pass compute the offsets in the index int index offsets num index entries int offset words offset for i 0 i num index entries i q list index word wlist m index i if wlist is empty index offsets i offset q list iterator index word iwi wlist index word iw for iwi to first iw iwi current iwi offset iw word length 1 offset 4 word offset to url info array offset 1 zero list terminator else index offsets i 0 int padding size size size 3 3 round up to 4 byte boundary padding size padding int stats offset size q dict iterator index word wdi m words index word iw int word stat offsets new int m words count int count 0 third pass compute offset to stats info for each word for i 0 i num index entries i q list index word wlist m index i if wlist is empty q list iterator index word iwi wlist index word iw for iwi to first iw iwi current iwi printf word stat offsets d d n count size word stat offsets count size size 4 iw urls count 8 count url index freq per url int url offsets new int m urls count int urls offset size q int dict iterator url udi m urls url url for udi to first url udi current udi url offsets udi current key size size url name length 1 url url length 1 printf total size x bytes word x stats x urls x n size words offset stats offset urls offset q file f file name if f open io writeonly write header f putch d f putch o f putch x f putch s write index for i 0 i num index entries i write int f index offsets i write word lists count 0 for i 0 i num index entries i q list index word wlist m index i if wlist is empty q list iterator index word iwi wlist index word iw for iwi to first iw iwi current iwi write string f iw word write int f word stat offsets count f putch 0 write extra padding bytes for i 0 i padding i f putch 0 write word statistics for i 0 i num index entries i q list index word wlist m index i if wlist is empty q list iterator index word iwi wlist index word iw for iwi to first iw iwi current iwi int num urls iw urls count write int f num urls q int dict iterator url info uli iw urls url info ui for uli to first ui uli current uli write int f url offsets ui url idx write int f ui freq write urls q int dict iterator url udi m urls url url for udi to first url udi current udi write string f url name write string f url url delete url offsets delete word stat offsets searchindex filename numindexentries wordsoffset numindexentries qlist indexword m_index isempty qlistiterator indexword indexword tofirst indexoffsets numindexentries wordsoffset numindexentries qlist indexword m_index isempty indexoffsets qlistiterator indexword indexword tofirst indexoffsets statsoffset qdictiterator indexword m_words indexword wordstatoffsets m_words numindexentries qlist indexword m_index isempty qlistiterator indexword indexword tofirst wordstatoffsets wordstatoffsets url_index urloffsets m_urls urlsoffset qintdictiterator m_urls tofirst urloffsets currentkey wordsoffset statsoffset urlsoffset qfile filename io_writeonly numindexentries writeint indexoffsets numindexentries qlist indexword m_index isempty qlistiterator indexword indexword tofirst writestring writeint wordstatoffsets numindexentries qlist indexword m_index isempty qlistiterator indexword indexword tofirst numurls writeint numurls qintdictiterator urlinfo urlinfo tofirst writeint urloffsets urlidx writeint qintdictiterator m_urls tofirst writestring writestring urloffsets wordstatoffsets void register parser const char extension parser interface parser m parsers insert extension parser registerparser parserinterface m_parsers parser interface get parser const char extension if extension 0 return m defaultparser parser interface intf m parsers find extension return intf intf m defaultparser parserinterface getparser m_defaultparser parserinterface m_parsers m_defaultparser class diagram class diagram class def root clear visit flags base new tree diagram root true base compute layout clear visit flags super new tree diagram root false super compute layout diagram item base item base first first diagram item super item super first first int xbase base item x pos int xsuper super item x pos if xbase xsuper super item move xbase xsuper 0 super move children super item xbase xsuper else if xbase xsuper base item move xsuper xbase 0 base move children base item xsuper xbase classdiagram classdiagram classdef clearvisitflags treediagram computelayout clearvisitflags treediagram computelayout diagramitem baseitem diagramitem superitem baseitem xpos superitem xpos superitem movechildren superitem baseitem movechildren baseitem class diagram class diagram delete base delete super classdiagram classdiagram const char file name uint base rows base compute rows uint super rows super compute rows uint base maxx base max label width super maxx super max label width base compute extremes base max label width base maxx super compute extremes super max label width super maxx uint rows base rows super rows 1 uint cols qmax base maxx super maxx grid width 2 1 grid width estimate the image aspect width and height in pixels uint est height rows 40 uint est width cols 20 qmax base max label width super max label width printf estimated size d x d n est width est height const float page width 14 0 estimated page width in cm somewhat lower to deal with estimation errors compute the image height in centimeters based on the estimates float real height qmin rows 12 real height in cm float real width real height est width float est height if real width page width assume that the page width is about 15 cm real height page width real width real width page width output n output begin figure h n begin center n leavevmode n output includegraphics height real height cm file name endl output end center n end figure n printf write figure rows d cols d n rows cols qc string eps base name qc string path file name qc string eps name eps base name eps q file f1 f1 set name eps name data if f1 open io writeonly err could not open file s for writing n convert toqc string f1 name data exit 1 q text stream t f1 printf writeeps rows d cols d n rows cols generate eps header and postscript variables and procedures t ps adobe 2 0 epsf 2 0 n t title class name n t creator doxygen n t creation date time n t for n t magnification 1 00 n t orientation portrait n t bounding box 0 0 500 est height 500 0 float est width n t pages 0 n t begin setup n t end setup n t end comments n t n t variables n t n t boxwidth 0 def n t boxheight 40 def n t fontheight 24 def n t marginwidth 10 def n t distx 20 def n t disty 40 def n t boundaspect est width float est height def aspect ratio of the bounding box width height n t boundx 500 def n t boundy boundx boundaspect div def n t xspacing 0 def n t yspacing 0 def n t rows rows def n t cols cols def n t scalefactor 0 def n t boxfont times roman findfont fontheight scalefont def n t n t procedures n t n t dotted 1 4 0 setdash def n t dashed 5 0 setdash def n t solid 0 setdash def n t n t max result max arg1 arg2 n t n t a exch def n t b exch def n t a b gt a b ifelse n t def n t n t xoffset result max 0 scalefactor boxwidth cols distx cols 1 2 n t n t 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max n t def n t n t cw boxwidth max boxwidth stringwidth arg1 n t n t str exch def n t boxwidth boxwidth str stringwidth pop max def n t def n t n t box draws a box with text arg1 at grid pos arg2 arg3 n t gsave n t 2 setlinewidth n t newpath n t exch xspacing mul xoffset add n t exch yspacing mul n t moveto n t boxwidth 0 rlineto n t 0 boxheight rlineto n t boxwidth neg 0 rlineto n t 0 boxheight neg rlineto n t closepath n t dup stringwidth pop neg boxwidth add 2 div n t boxheight fontheight 2 div sub 2 div n t rmoveto show stroke n t grestore n t def n t n t mark n t newpath n t exch xspacing mul xoffset add boxwidth add n t exch yspacing mul n t moveto n t 0 boxheight 4 div rlineto n t boxheight neg 4 div boxheight neg 4 div rlineto n t closepath n t eofill n t stroke n t def n t n t arrow n t newpath n t moveto n t 3 8 rlineto n t 6 0 rlineto n t 3 8 rlineto n t closepath n t eofill n t stroke n t def n t n t out draws an output connector for the block at arg1 arg2 n t n t newpath n t exch xspacing mul xoffset add boxwidth 2 div add n t exch yspacing mul boxheight add n t y exch def n t x exch def n t x y moveto n t 0 disty 2 div rlineto n t stroke n t 1 eq x y disty 2 div add arrow if n t def n t n t in draws an input connector for the block at arg1 arg2 n t n t newpath n t exch xspacing mul xoffset add boxwidth 2 div add n t exch yspacing mul disty 2 div sub n t y exch def n t x exch def n t x y moveto n t 0 disty 2 div rlineto n t stroke n t 1 eq x y disty 2 div add arrow if n t def n t n t hedge n t n t exch xspacing mul xoffset add boxwidth 2 div add n t exch yspacing mul boxheight 2 div sub n t y exch def n t x exch def n t newpath n t x y moveto n t boxwidth 2 div distx add 0 rlineto n t stroke n t 1 eq n t newpath x boxwidth 2 div distx add add y moveto n t 8 3 rlineto n t 0 6 rlineto n t 8 3 rlineto n t closepath n t eofill n t stroke n t if n t def n t n t vedge n t n t ye exch def n t ys exch def n t xs exch def n t newpath n t xs xspacing mul xoffset add boxwidth 2 div add dup n t ys yspacing mul boxheight 2 div sub n t moveto n t ye yspacing mul boxheight 2 div sub n t lineto n t stroke n t def n t n t conn connections the blocks from col arg1 to arg2 of row arg3 n t n t ys exch def n t xe exch def n t xs exch def n t newpath n t xs xspacing mul xoffset add boxwidth 2 div add n t ys yspacing mul disty 2 div sub n t moveto n t xspacing xe xs sub mul 0 n t rlineto n t stroke n t def n t n t main n t n t boxfont setfont n t 1 boundaspect scale n bool done false diagram row dr base first while dr done diagram item di dr first while di done di is in list t di label cw n di dr next dr base next dr super first dr super next done false while dr done diagram item di dr first while di done di is in list t di label cw n di dr next dr super next t boxwidth boxwidth marginwidth 2 mul add def n xspacing boxwidth distx add def n yspacing boxheight disty add def n scalefactor n boxwidth cols mul distx cols 1 sub mul add n boxheight rows mul disty rows 1 sub mul add boundaspect mul n max def n boundx scalefactor div boundy scalefactor div scale n t n classes n n base draw boxes t 0 true false base rows super rows 0 0 super draw boxes t 0 false false base rows super rows 0 0 t n relations n n base draw connectors t 0 true false base rows super rows 0 0 super draw connectors t 0 false false base rows super rows 0 0 f1 close if config getbool use pdflatex qc string epstopdf args 4096 epstopdf args sprintf s eps outfile s pdf eps base name data eps base name data printf converting eps using s n epstopdf cmd data if i system epstopdf epstopdf args true 0 err error problems running epstopdf check your tex installation n return filename baserows computerows superrows computerows basemaxx basemaxlabelwidth supermaxx supermaxlabelwidth computeextremes basemaxlabelwidth basemaxx computeextremes supermaxlabelwidth supermaxx baserows superrows basemaxx supermaxx gridwidth gridwidth estheight estwidth basemaxlabelwidth supermaxlabelwidth estwidth estheight pagewidth realheight realwidth realheight estwidth estheight realwidth pagewidth realheight pagewidth realwidth realwidth pagewidth realheight filename writefigure qcstring epsbasename qcstring filename qcstring epsname epsbasename qfile setname epsname io_writeonly converttoqcstring qtextstream classname creationdate boundingbox estheight estwidth beginsetup endsetup endcomments estwidth estheight boundingbox diagramrow diagramitem isinlist diagramitem isinlist drawboxes baserows superrows drawboxes baserows superrows drawconnectors baserows superrows drawconnectors baserows superrows config_getbool use_pdflatex qcstring epstopdfargs epstopdfargs epsbasename epsbasename epstopdfcmd isystem epstopdfargs bool generate map uint base rows base compute rows uint super rows super compute rows uint rows base rows super rows 1 uint lb ls xb xs base compute extremes lb xb super compute extremes ls xs uint cell width qmax lb ls label hor margin 2 uint maxx pos qmax xb xs uint label vert margin 6 qmax 6 cell width font height 6 aspect at least 1 3 uint cell height label vert margin 2 font height uint image width maxx pos grid width cell width grid width maxx pos label hor spacing grid width uint image height rows cell height rows 1 label vert spacing image image image width image height base draw boxes t image true true base rows super rows cell width cell height rel path generate map super draw boxes t image false true base rows super rows cell width cell height rel path generate map base draw connectors t image true true base rows super rows cell width cell height super draw connectors t image false true base rows super rows cell width cell height image save qc string path file name png if generate map t map endl generatemap baserows computerows superrows computerows baserows superrows computeextremes computeextremes cellwidth labelhormargin maxxpos labelvertmargin cellwidth fontheight cellheight labelvertmargin fontheight imagewidth maxxpos gridwidth cellwidth gridwidth maxxpos labelhorspacing gridwidth imageheight cellheight labelvertspacing imagewidth imageheight drawboxes baserows superrows cellwidth cellheight relpath generatemap drawboxes baserows superrows cellwidth cellheight relpath generatemap drawconnectors baserows superrows cellwidth cellheight drawconnectors baserows superrows cellwidth cellheight qcstring filename generatemap rtf generator rtf generator output generator dir config getstring rtf output col 0 inside tabbing false m listlevel 0 m bstartedbody false m omitparagraph false m numcols 0 rtfgenerator rtfgenerator outputgenerator config_getstring rtf_output insidetabbing m_listlevel m_bstartedbody m_omitparagraph m_numcols rtf generator rtf generator rtfgenerator rtfgenerator void rtf generator init qc string dir config getstring rtf output q dir d dir if d exists d mkdir dir err could not create output directory s n dir data exit 1 rtf style set auto delete true first duplicate strings of rtf style default const struct rtf style default def rtf style default while def reference 0 if def definition 0 err internal error rtf style default s has no definition n def name style data style data new style data def reference def definition rtf style insert def name style data def overwrite some or all definitions from file qc string rtf style sheet file config getstring rtf stylesheet file if rtf style sheet file is empty load stylesheet rtf style sheet file rtf style if user has defined an extension file load its contents qc string rtf extensions file config getstring rtf extensions file if rtf extensions file is empty load extensions rtf extensions file create sub dirs d rtfgenerator qcstring config_getstring rtf_output qdir rtf_style setautodelete rtf_style_default rtf_style_default rtf_style_default rtf_style_default styledata styledata styledata rtf_style styledata qcstring rtfstylesheetfile config_getstring rtf_stylesheet_file rtfstylesheetfile isempty loadstylesheet rtfstylesheetfile rtf_style qcstring rtfextensionsfile config_getstring rtf_extensions_file rtfextensionsfile isempty loadextensions rtfextensionsfile createsubdirs void rtf generator write style sheet file q file file q text stream t file t generated by doxygen version string n n t this file describes styles used for generating rtf output n t all text after a hash is considered a comment and will be ignored n t remove a hash to activate a line n n int i for i 0 rtf style default i reference 0 i t rtf style default i name rtf style default i reference rtf style default i definition endl rtfgenerator writestylesheetfile qfile qtextstream versionstring rtf_style_default rtf_style_default rtf_style_default rtf_style_default void rtf generator write extensions file q file file q text stream t file t generated by doxygen version string n n t this file describes extensions used for generating rtf output n t all text after a hash is considered a comment and will be ignored n t remove a hash to activate a line n n t overrides the project title n t title n n t name of the company that produced this document n t company n n t filename of a company or project logo n t logo filename n n t author of the document n t author n n t type of document e g design specification user manual etc n t document type n n t document tracking number n t document id n n t name of the author s manager n t this field is not displayed in the document itself but it is n t available in the information block of the rtf file in microsoft n t word it is available under file properties n t manager n n t subject of the document n t this field is not displayed in the document itself but it is n t available in the information block of the rtf file in microsoft n t word it is available under file properties n t subject n n t comments regarding the document n t this field is not displayed in the document itself but it is n t available in the information block of the rtf file in microsoft n t word it is available under file properties n t comments n n t keywords associated with the document n t this field is not displayed in the document itself but it is n t available in the information block of the rtf file in microsoft n t word it is available under file properties n t keywords n n rtfgenerator writeextensionsfile qfile qtextstream versionstring logofilename documenttype documentid void rtf generator print doc doc node n rtf doc visitor visitor new rtf doc visitor t this n accept visitor delete visitor rtfgenerator printdoc docnode rtfdocvisitor rtfdocvisitor void rtf generator start file const char name const char const char qc string file name name rel path relative path to root file name if file name right 4 rtf file name rtf start plain file file name beginrtf document rtfgenerator startfile qcstring filename relpath relativepathtoroot filename filename filename startplainfile filename beginrtfdocument void rtf generator end file dbg rtf t comment end file n t end plain file rtfgenerator endfile dbg_rtf endfile endplainfile void rtf generator start index section index sections is qc string paper name m listlevel 0 switch is case is title page start basic rt fstart get readyfor author etc t info n t title comment break case is title page author t n if rtf subject t subject rtf subject n if rtf comments t comment rtf comments n if rtf company t company rtf company n if rtf author t author rtf author n if rtf manager t manager rtf manager n if rtf documenttype t category rtf documenttype n if rtf keywords t keywords rtf keywords n t comment break case is main page introduction beginrtf chapter break case is package index package index beginrtf chapter break case is module index module index beginrtf chapter break case is dir index directory index beginrtf chapter break case is namespace index namespace index beginrtf chapter break case is class hierarchy index hierarchical index dbg rtf t comment start classhierarchy n beginrtf chapter break case is compound index annotated compound index beginrtf chapter break case is file index annotated file index beginrtf chapter break case is page index related page index beginrtf chapter break case is module documentation module documentation groups dict iterator gli doxygen groups dict group def gd bool found false for gli to first gd gli current found gli if gd is reference beginrtf chapter found true break case is dir documentation directory documentation s dict dir def iterator dli doxygen directories dir def dd bool found false for dli to first dd dli current found dli if dd is linkable in project beginrtf chapter found true break case is namespace documentation namespace documentation namespaces dict iterator nli doxygen namespaces dict namespace def nd bool found false for nli to first nd nli current found nli if nd is linkable in project beginrtf chapter found true break case is class documentation compound documentation classs dict iterator cli doxygen classs dict class def cd 0 bool found false for cli to first cd cli current found cli if cd is linkable in project cd template master 0 beginrtf chapter found true break case is file documentation file documentation bool is first true file name fn doxygen input name list first while fn file def fd fn first while fd if fd is linkable in project if is first beginrtf chapter is first false break fd fn next fn doxygen input name list next break case is example documentation example documentation beginrtf chapter break case is page documentation page documentation beginrtf chapter break case is end index break rtfgenerator startindexsection indexsections qcstring papername m_listlevel istitlepagestart rtfstart istitlepageauthor rtf_subject rtf_subject rtf_comments rtf_comments rtf_company rtf_company rtf_author rtf_author rtf_manager rtf_manager rtf_documenttype rtf_documenttype rtf_keywords rtf_keywords ismainpage beginrtfchapter ispackageindex beginrtfchapter ismoduleindex beginrtfchapter isdirindex beginrtfchapter isnamespaceindex beginrtfchapter isclasshierarchyindex dbg_rtf beginrtfchapter iscompoundindex beginrtfchapter isfileindex beginrtfchapter ispageindex beginrtfchapter ismoduledocumentation groupsdict groupsdict groupdef tofirst isreference beginrtfchapter isdirdocumentation sdict dirdef dirdef tofirst islinkableinproject beginrtfchapter isnamespacedocumentation namespacesdict namespacesdict namespacedef tofirst islinkableinproject beginrtfchapter isclassdocumentation classsdict classsdict classdef tofirst islinkableinproject templatemaster beginrtfchapter isfiledocumentation isfirst filename inputnamelist filedef islinkableinproject isfirst beginrtfchapter isfirst inputnamelist isexampledocumentation beginrtfchapter ispagedocumentation beginrtfchapter isendindex void rtf generator end index section index sections is switch is case is title page start if rtf title user has overridden document title in extensions file t rtf title else t config getstring project name break case is title page author t doxgyen n t creatim date tortf date string n dbg rtf t comment end of infoblock n setup for this section t rtf style reset n t sectd pgnlcrm n t footer rtf style footer reference chpgn n the title entry dbg rtf t comment begin title page n t rtf style reset rtf style sub title reference endl set to title style t vertalc qc par par par par par par par n if rtf logofilename t field flddirty fldinst includepicture rtf logofilename t d mergeformat fldrslt image par par n if rtf company t rtf company par par n t rtf style reset rtf style title reference endl set to title style t field fldedit fldinst title mergeformat fldrslt title par endl t rtf style reset rtf style sub title reference endl set to title style t par n if rtf documenttype t rtf documenttype par n if rtf documentid t rtf documentid par n t par par par par par par par par par par par par n t rtf style reset rtf style sub title reference endl set to subtitle style t field fldedit fldinst author mergeformat fldrslt author par endl t version config getstring project number par t field fldedit fldinst createdate mergeformat fldrslt createdate par endl t page page dbg rtf t comment end title page endl table of contents section dbg rtf t comment table of contents n t vertalt n t rtf style reset endl t rtf style heading1 reference t the translator trrtf table of contents par endl t rtf style reset par endl t field fldedit fldinst toc f mergeformat fldrslt table of contents par n t rtf style reset endl break case is main page t par rtf style reset endl if doxygen main page doxygen main page title is empty t tc v the translator tr main page endl else t tc v substitute doxygen main page title endl t field fldedit fldinst includetext if config getbool generate treeview t main else t index t rtf mergeformat fldrslt includedstuff n break case is package index t par rtf style reset endl t tc v the translator tr package list endl t field fldedit fldinst includetext packages rtf mergeformat fldrslt includedstuff n break case is module index t par rtf style reset endl t tc v the translator tr module index endl t field fldedit fldinst includetext modules rtf mergeformat fldrslt includedstuff n break case is dir index t par rtf style reset endl t tc v the translator tr dir index endl t field fldedit fldinst includetext dirs rtf mergeformat fldrslt includedstuff n break case is namespace index t par rtf style reset endl t tc v the translator tr namespace index endl t field fldedit fldinst includetext namespaces rtf mergeformat fldrslt includedstuff n break case is class hierarchy index t par rtf style reset endl t tc v the translator tr hierarchical index endl t field fldedit fldinst includetext hierarchy rtf mergeformat fldrslt includedstuff n break case is compound index t par rtf style reset endl t tc v the translator tr compound index endl t field fldedit fldinst includetext annotated rtf mergeformat fldrslt includedstuff n break case is file index t par rtf style reset endl t tc v the translator tr file index endl t field fldedit fldinst includetext files rtf mergeformat fldrslt includedstuff n break case is page index t par rtf style reset endl t tc v the translator tr page index endl t field fldedit fldinst includetext pages rtf mergeformat fldrslt includedstuff n break case is module documentation groups dict iterator gli doxygen groups dict group def gd t tc v the translator tr module documentation endl for gli to first gd gli current gli if gd is reference t par rtf style reset endl t field fldedit fldinst includetext t gd get output file base t rtf mergeformat fldrslt includedstuff n break case is dir documentation s dict dir def iterator dli doxygen directories dir def dd t tc v the translator tr dir documentation endl for dli to first dd dli current dli if dd is linkable in project t par rtf style reset endl t field fldedit fldinst includetext t dd get output file base t rtf mergeformat fldrslt includedstuff n break case is namespace documentation namespaces dict iterator nli doxygen namespaces dict namespace def nd bool found false for nli to first nd nli current found nli if nd is linkable in project t par rtf style reset endl t field fldedit fldinst includetext t nd get output file base t rtf mergeformat fldrslt includedstuff n found true while nd nli current if nd is linkable in project t par rtf style reset endl beginrtf section t field fldedit fldinst includetext t nd get output file base t rtf mergeformat fldrslt includedstuff n nli break case is class documentation classs dict iterator cli doxygen classs dict class def cd 0 bool found false t tc v the translator tr class documentation endl for cli to first cd cli current found cli if cd is linkable in project cd template master 0 t par rtf style reset endl t field fldedit fldinst includetext t cd get output file base t rtf mergeformat fldrslt includedstuff n found true for cd cli current cli if cd is linkable in project cd template master 0 t par rtf style reset endl beginrtf section t field fldedit fldinst includetext t cd get output file base t rtf mergeformat fldrslt includedstuff n break case is file documentation bool is first true file name fn doxygen input name list first t tc v the translator tr file documentation endl while fn file def fd fn first while fd if fd is linkable in project if is first t par rtf style reset endl t field fldedit fldinst includetext t fd get output file base t rtf mergeformat fldrslt includedstuff n is first false else t par rtf style reset endl beginrtf section t field fldedit fldinst includetext t fd get output file base t rtf mergeformat fldrslt includedstuff n fd fn next fn doxygen input name list next rtfgenerator endindexsection indexsections istitlepagestart rtf_title rtf_title config_getstring project_name istitlepageauthor datetortfdatestring dbg_rtf rtf_style_reset rtf_style dbg_rtf rtf_style_reset rtf_style subtitle rtf_logofilename rtf_logofilename rtf_company rtf_company rtf_style_reset rtf_style rtf_style_reset rtf_style subtitle rtf_documenttype rtf_documenttype rtf_documentid rtf_documentid rtf_style_reset rtf_style subtitle config_getstring project_number dbg_rtf dbg_rtf rtf_style_reset rtf_style thetranslator trrtftableofcontents rtf_style_reset rtf_style_reset ismainpage rtf_style_reset mainpage mainpage isempty thetranslator trmainpage mainpage config_getbool generate_treeview ispackageindex rtf_style_reset thetranslator trpackagelist ismoduleindex rtf_style_reset thetranslator trmoduleindex isdirindex rtf_style_reset thetranslator trdirindex isnamespaceindex rtf_style_reset thetranslator trnamespaceindex isclasshierarchyindex rtf_style_reset thetranslator trhierarchicalindex iscompoundindex rtf_style_reset thetranslator trcompoundindex isfileindex rtf_style_reset thetranslator trfileindex ispageindex rtf_style_reset thetranslator trpageindex ismoduledocumentation groupsdict groupsdict groupdef thetranslator trmoduledocumentation tofirst isreference rtf_style_reset getoutputfilebase isdirdocumentation sdict dirdef dirdef thetranslator trdirdocumentation tofirst islinkableinproject rtf_style_reset getoutputfilebase isnamespacedocumentation namespacesdict namespacesdict namespacedef tofirst islinkableinproject rtf_style_reset getoutputfilebase islinkableinproject rtf_style_reset beginrtfsection getoutputfilebase isclassdocumentation classsdict classsdict classdef thetranslator trclassdocumentation tofirst islinkableinproject templatemaster rtf_style_reset getoutputfilebase islinkableinproject templatemaster rtf_style_reset beginrtfsection getoutputfilebase isfiledocumentation isfirst filename inputnamelist thetranslator trfiledocumentation filedef islinkableinproject isfirst rtf_style_reset getoutputfilebase isfirst rtf_style_reset beginrtfsection getoutputfilebase inputnamelist void rtf generator start project number dbg rtf t comment start project number endl t rtfgenerator startprojectnumber dbg_rtf startprojectnumber void rtf generator end project number dbg rtf t comment end project number endl rtfgenerator endprojectnumber dbg_rtf endprojectnumber void rtf generator write style info int rtfgenerator writestyleinfo void rtf generator start title head const char dbg rtf t comment start title head endl beginrtf section t rtf style reset rtf style heading2 reference endl rtfgenerator starttitlehead dbg_rtf starttitlehead beginrtfsection rtf_style_reset rtf_style void rtf generator start title dbg rtf t comment start title endl if config getbool compact rtf beginrtf section else beginrtf chapter rtfgenerator starttitle dbg_rtf starttitle config_getbool compact_rtf beginrtfsection beginrtfchapter void rtf generator end title head const char file name const char name dbg rtf t comment end title head endl t par rtf style reset endl if name make table of contents entry t tc tcl2 v docify name t endl make an index entry add index item name 0 if name write anchor 0 name if config getbool rtf hyperlinks file name write anchor file name 0 rtfgenerator endtitlehead filename dbg_rtf endtitlehead rtf_style_reset addindexitem writeanchor config_getbool rtf_hyperlinks filename writeanchor filename void rtf generator new paragraph if m omitparagraph dbg rtf t comment new paragraph endl t par endl m omitparagraph false rtfgenerator newparagraph m_omitparagraph dbg_rtf newparagraph m_omitparagraph void rtf generator write string const char text t text rtfgenerator writestring void rtf generator start index list dbg rtf t comment start index list endl t endl increment indent level t rtf style reset rtf lclist depthstyle endl new paragraph m omitparagraph true rtfgenerator startindexlist dbg_rtf startindexlist incrementindentlevel rtf_style_reset rtf_lclist_depthstyle newparagraph m_omitparagraph void rtf generator end index list dbg rtf t comment end index list endl new paragraph t decrement indent level m omitparagraph true rtfgenerator endindexlist dbg_rtf endindexlist newparagraph decrementindentlevel m_omitparagraph void rtf generator start index key dbg rtf t comment start index key endl t b rtfgenerator startindexkey dbg_rtf startindexkey void rtf generator end index key rtfgenerator endindexkey void rtf generator start index value bool has brief t if has brief t rtfgenerator startindexvalue hasbrief hasbrief void rtf generator end index value const char name bool has brief dbg rtf t comment end index key endl if has brief t t if name t tab writertf reference name t endl else t endl new paragraph rtfgenerator endindexvalue hasbrief dbg_rtf endindexkey hasbrief writertfreference newparagraph void rtf generator start item list dbg rtf t comment start item list level m listlevel endl t increment indent level rtf listiteminfo m listlevel is enum false rtfgenerator startitemlist dbg_rtf startitemlist m_listlevel incrementindentlevel rtf_listiteminfo m_listlevel isenum void rtf generator end item list new paragraph dbg rtf t comment end item list level m listlevel endl t decrement indent level m omitparagraph true rtfgenerator enditemlist newparagraph dbg_rtf enditemlist m_listlevel decrementindentlevel m_omitparagraph const char name dbg rtf t comment write index item endl t rtf lclist depthstyle endl docify name if ref fn t tab writertf reference fn t endl else t endl new paragraph m omitparagraph true dbg_rtf writeindexitem rtf_lclist_depthstyle writertfreference newparagraph m_omitparagraph void rtf generator docify const char str if str const unsigned char p const unsigned char str unsigned char c unsigned char pc 0 while p static bool multi byte false c p if multi byte t get multi byte c multi byte false continue if c 0x80 multi byte true t get multi byte c continue switch c case t break case t break case t break default see if we can insert an hyphenation hint if isupper c islower pc inside tabbing t t char c pc c m omitparagraph false rtfgenerator multibyte multibyte getmultibyte multibyte multibyte getmultibyte insidetabbing m_omitparagraph void rtf generator codify const char str note that rtf does not have a verbatim so n means nothing add a new paragraph static char spaces if str const unsigned char p const unsigned char str unsigned char c int spaces to next tab stop while p static bool multi byte false c p if multi byte t get multi byte c multi byte false continue if c 0x80 multi byte true t get multi byte c continue switch c case t spaces to next tab stop config getint tab size col config getint tab size t spaces left spaces to next tab stop col spaces to next tab stop break case n new paragraph t n col 0 break case t col break case t col break case t col break default t char c col break rtfgenerator newparagraph spacestonexttabstop multibyte multibyte getmultibyte multibyte multibyte getmultibyte spacestonexttabstop config_getint tab_size config_getint tab_size spacestonexttabstop spacestonexttabstop newparagraph const char anchor const char text if ref config getbool rtf hyperlinks qc string ref name if f ref name f if anchor ref name ref name anchor t field fldinst hyperlink l t rtf format bmk str ref name t t fldrslt cs37 ul cf2 docify text t endl else start bold docify text end bold config_getbool rtf_hyperlinks qcstring refname refname refname _ refname rtfformatbmkstr refname startbold endbold const char anchor const char name if ref config getbool rtf hyperlinks qc string ref name if f ref name f if anchor ref name ref name anchor t field fldinst hyperlink l t rtf format bmk str ref name t t fldrslt cs37 ul cf2 codify name t endl else codify name config_getbool rtf_hyperlinks qcstring refname refname refname _ refname rtfformatbmkstr refname void rtf generator start text link const char f const char anchor if config getbool rtf hyperlinks qc string ref if f ref f if anchor ref ref anchor t field fldinst hyperlink l t rtf format bmk str ref t t fldrslt cs37 ul cf2 rtfgenerator starttextlink config_getbool rtf_hyperlinks qcstring _ rtfformatbmkstr void rtf generator end text link if config getbool rtf hyperlinks t endl rtfgenerator endtextlink config_getbool rtf_hyperlinks void rtf generator start html link const char url if config getbool rtf hyperlinks t field fldinst hyperlink l t url t t fldrslt cs37 ul cf2 else start typewriter rtfgenerator starthtmllink config_getbool rtf_hyperlinks starttypewriter void rtf generator end html link if config getbool rtf hyperlinks t endl else end typewriter rtfgenerator endhtmllink config_getbool rtf_hyperlinks endtypewriter void rtf generator start group header dbg rtf t comment start group header endl new paragraph t rtf style reset t rtf style heading3 reference t endl rtfgenerator startgroupheader dbg_rtf startgroupheader newparagraph rtf_style_reset rtf_style void rtf generator end group header dbg rtf t comment end group header endl new paragraph t rtf style reset endl rtfgenerator endgroupheader dbg_rtf endgroupheader newparagraph rtf_style_reset void rtf generator write list item dbg rtf t comment write list item endl new paragraph t rtf style reset if rtf listiteminfo m listlevel is enum t rtf elist depthstyle endl t rtf listiteminfo m listlevel number tab rtf listiteminfo m listlevel number else t rtf blist depthstyle endl m omitparagraph true rtfgenerator writelistitem dbg_rtf writelistitem newparagraph rtf_style_reset rtf_listiteminfo m_listlevel isenum rtf_elist_depthstyle rtf_listiteminfo m_listlevel rtf_listiteminfo m_listlevel rtf_blist_depthstyle m_omitparagraph void rtf generator start member subtitle dbg rtf t comment start member subtitle endl t endl t rtf style reset rtf clist depthstyle endl rtfgenerator startmembersubtitle dbg_rtf startmembersubtitle rtf_style_reset rtf_clist_depthstyle void rtf generator end member subtitle dbg rtf t comment end member subtitle endl new paragraph t endl rtfgenerator endmembersubtitle dbg_rtf endmembersubtitle newparagraph void rtf generator start member list t endl dbg rtf t comment start member list endl t endl ifdef deletedcode if inside tabbing t begin compact itemize endl endif rtfgenerator startmemberlist dbg_rtf startmemberlist insidetabbing compactitemize void rtf generator end member list dbg rtf t comment end member list endl t endl ifdef deletedcode if inside tabbing t end compact itemize endl endif rtfgenerator endmemberlist dbg_rtf endmemberlist insidetabbing compactitemize void rtf generator start member item int dbg rtf t comment start member item endl t rtf style reset rtf blist depthstyle endl set style to apropriate depth rtfgenerator startmemberitem dbg_rtf startmemberitem rtf_style_reset rtf_blist_depthstyle void rtf generator end member item dbg rtf t comment end member item endl new paragraph rtfgenerator endmemberitem dbg_rtf endmemberitem newparagraph void rtf generator write anchor const char file name const char name qc string anchor if file name anchor file name if file name name anchor if name anchor name dbg rtf t comment write ancheor anchor endl t bkmkstart rtf format bmk str anchor endl t bkmkend rtf format bmk str anchor endl rtfgenerator writeanchor filename qcstring filename filename filename _ dbg_rtf writeancheor rtfformatbmkstr rtfformatbmkstr void rtf generator start code fragment dbg rtf t comment start code fragment endl t endl new paragraph t rtf style reset rtf code depthstyle style stack push rtf style codeexample rtfgenerator startcodefragment dbg_rtf startcodefragment newparagraph rtf_style_reset rtf_code_depthstyle stylestack rtf_style_codeexample void rtf generator end code fragment new paragraph style stack pop printf rtf generator end code frament top s n style stack top t rtf style reset style stack top endl dbg rtf t comment end code fragment endl t endl m omitparagraph true rtfgenerator endcodefragment newparagraph stylestack rtfgenerator endcodeframent stylestack rtf_style_reset stylestack dbg_rtf endcodefragment m_omitparagraph void rtf generator start description dbg rtf t comment start description endl t endl t rtf style reset rtf dlist depthstyle rtfgenerator startdescription dbg_rtf startdescription rtf_style_reset rtf_dlist_depthstyle void rtf generator end description dbg rtf t comment end description endl new paragraph t rtfgenerator enddescription dbg_rtf enddescription newparagraph void rtf generator start desc item new paragraph dbg rtf t comment start desc item endl t b rtfgenerator startdescitem newparagraph dbg_rtf startdescitem void rtf generator end desc item dbg rtf t comment end desc item endl t endl new paragraph rtfgenerator enddescitem dbg_rtf enddescitem newparagraph void rtf generator line break dbg rtf t comment line break endl t par endl rtfgenerator linebreak dbg_rtf linebreak const char dbg rtf t comment start member doc endl if memname memname 0 add index item memname clname add index item clname memname t rtf style reset rtf style heading4 reference style stack push rtf style heading4 t endl printf rtf generator start member doc s n rtf style heading4 reference start bold t endl dbg_rtf startmemberdoc addindexitem addindexitem rtf_style_reset rtf_style stylestack rtf_style_heading4 rtfgenerator startmemberdoc rtf_style startbold void rtf generator end member doc bool dbg rtf t comment end member doc endl t endl const char style style stack pop printf rtf generator end member doc s n style assert style rtf style heading4 reference end bold new paragraph rtfgenerator endmemberdoc dbg_rtf endmemberdoc stylestack rtfgenerator endmemberdoc rtf_style endbold newparagraph dbg rtf t comment start doxy anchor endl dbg_rtf startdoxyanchor void rtf generator end doxy anchor const char f name const char anchor qc string ref if f name ref f name if anchor ref ref anchor dbg rtf t comment end doxy anchor endl t bkmkstart t rtf format bmk str ref t endl t bkmkend t rtf format bmk str ref t endl rtfgenerator enddoxyanchor fname qcstring fname fname _ dbg_rtf enddoxyanchor rtfformatbmkstr rtfformatbmkstr void rtf generator write char char c char cs 2 cs 0 c cs 1 0 docify cs rtfgenerator writechar const char path const char name dbg rtf t comment write start anno item endl t b if path docify path if f config getbool rtf hyperlinks t field fldinst hyperlink l t rtf format bmk str f t t fldrslt cs37 ul cf2 docify name t endl else docify name t dbg_rtf writestartannoitem config_getbool rtf_hyperlinks rtfformatbmkstr void rtf generator write end anno item const char name dbg rtf t comment write end anno item endl if name t tab writertf reference name t endl else t endl new paragraph rtfgenerator writeendannoitem dbg_rtf writeendannoitem writertfreference newparagraph void rtf generator start subsection beginrtf sub section t n dbg rtf t comment begin sub section n t rtf style reset t rtf style heading3 reference n rtfgenerator startsubsection beginrtfsubsection dbg_rtf subsection rtf_style_reset rtf_style void rtf generator end subsection new paragraph t rtf style reset endl rtfgenerator endsubsection newparagraph rtf_style_reset void rtf generator start subsubsection beginrtf sub sub section t n dbg rtf t comment begin sub sub section n t endl t rtf style reset rtf style heading4 reference n rtfgenerator startsubsubsection beginrtfsubsubsection dbg_rtf subsubsection rtf_style_reset rtf_style void rtf generator end subsubsection new paragraph t endl rtfgenerator endsubsubsection newparagraph void rtf generator start member description dbg rtf t comment start member description endl t endl increment indent level t rtf style reset rtf clist depthstyle start emphasis rtfgenerator startmemberdescription dbg_rtf startmemberdescription incrementindentlevel rtf_style_reset rtf_clist_depthstyle startemphasis void rtf generator end member description dbg rtf t comment end member description endl end emphasis new paragraph decrement indent level t par endl rtfgenerator endmemberdescription dbg_rtf endmemberdescription endemphasis newparagraph decrementindentlevel void rtf generator start desc list section types dbg rtf t comment start desc list endl t ends at end desc list t ends at end desc title start bold new paragraph rtfgenerator startdesclist sectiontypes dbg_rtf startdesclist enddesclist enddesctitle startbold newparagraph void rtf generator start simple sect section types const char file const char anchor const char title dbg rtf t comment start simple sect endl t ends at end desc list t ends at end desc title start bold new paragraph if file write object link 0 file anchor title else docify title end bold t new paragraph increment indent level t rtf style reset rtf dlist depthstyle rtfgenerator startsimplesect sectiontypes dbg_rtf startsimplesect enddesclist enddesctitle startbold newparagraph writeobjectlink endbold newparagraph incrementindentlevel rtf_style_reset rtf_dlist_depthstyle void rtf generator end simple sect dbg rtf t comment end simple sect endl new paragraph decrement indent level m omitparagraph true t rtfgenerator endsimplesect dbg_rtf endsimplesect newparagraph decrementindentlevel m_omitparagraph void rtf generator start param list param list types const char title dbg rtf t comment start param list endl t ends at end param list t ends at end desc title start bold new paragraph docify title end bold t new paragraph increment indent level t rtf style reset rtf dlist depthstyle rtfgenerator startparamlist paramlisttypes dbg_rtf startparamlist endparamlist enddesctitle startbold newparagraph endbold newparagraph incrementindentlevel rtf_style_reset rtf_dlist_depthstyle void rtf generator end param list dbg rtf t comment end param list endl new paragraph decrement indent level m omitparagraph true t rtfgenerator endparamlist dbg_rtf endparamlist newparagraph decrementindentlevel m_omitparagraph void rtf generator write desc item dbg rtf t comment write desc item endl rtfgenerator writedescitem dbg_rtf writedescitem void rtf generator start section const char const char title section info section type type dbg rtf t comment start section endl t t rtf style reset int num 4 switch type case section info page num 2 break case section info section num 3 break case section info subsection num 4 break case section info subsubsection num 4 break case section info paragraph num 4 break default assert 0 break qc string heading heading sprintf heading d num set style t rtf style heading reference make table of contents entry t tc tcl num v docify title t endl rtfgenerator startsection sectioninfo sectiontype dbg_rtf startsection rtf_style_reset sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo qcstring rtf_style void rtf generator end section const char lab section info section type dbg rtf t comment end section endl new paragraph make bookmark write anchor 0 lab t rtfgenerator endsection sectioninfo sectiontype dbg_rtf endsection newparagraph writeanchor void rtf generator add index item const char s1 const char s2 if s1 t xe v docify s1 if s2 t docify s2 t endl rtfgenerator addindexitem void rtf generator start indent increment indent level dbg rtf t comment start indent endl t endl t rtf style reset rtf clist depthstyle endl rtfgenerator startindent incrementindentlevel dbg_rtf startindent rtf_style_reset rtf_clist_depthstyle void rtf generator end indent t endl decrement indent level rtfgenerator endindent decrementindentlevel void rtf generator start class diagram rtfgenerator startclassdiagram const char file name const char new paragraph create a png file d write image t dir rel path file name false display the file t endl t rtf style reset endl t par pard qc field flddirty fldinst includepicture t file name png t d mergeformat fldrslt image par endl t endl filename newparagraph writeimage relpath filename rtf_style_reset filename void rtf generator start page ref t start emphasis rtfgenerator startpageref startemphasis void rtf generator end page ref const char clname const char anchor qc string ref if clname ref clname if anchor ref ref anchor writertf reference ref end emphasis t rtfgenerator endpageref qcstring _ writertfreference endemphasis void rtf generator write non breakable space int t rtfgenerator writenonbreakablespace void rtf generator start desc table dbg rtf t comment start desc table endl t endl increment indent level t rtf style reset rtf clist depthstyle rtfgenerator startdesctable dbg_rtf startdesctable incrementindentlevel rtf_style_reset rtf_clist_depthstyle void rtf generator end desc table decrement indent level dbg rtf t comment end desc table endl t endl t rtf style reset style stack top rtfgenerator enddesctable decrementindentlevel dbg_rtf enddesctable rtf_style_reset stylestack void rtf generator start desc table title t rtf blist depthstyle endl dbg rtf t comment start desc table title endl start bold start emphasis rtfgenerator startdesctabletitle rtf_blist_depthstyle dbg_rtf startdesctabletitle startbold startemphasis void rtf generator end desc table title dbg rtf t comment end desc table title endl end emphasis end bold t rtfgenerator enddesctabletitle dbg_rtf enddesctabletitle endemphasis endbold void rtf generator start desc table data dbg rtf t comment start desc table data endl m omitparagraph false rtfgenerator startdesctabledata dbg_rtf startdesctabledata m_omitparagraph void rtf generator end desc table data dbg rtf t comment end desc table data endl new paragraph m omitparagraph true rtfgenerator enddesctabledata dbg_rtf enddesctabledata newparagraph m_omitparagraph void rtf generator start dot graph dbg rtf t comment start dot graph endl rtfgenerator startdotgraph dbg_rtf startdotgraph void rtf generator end dot graph dot class graph g new paragraph qc string file name g write graph t bitmap config getstring rtf output rel path true false display the file t endl t rtf style reset endl t par pard qc field flddirty fldinst includepicture t file name config getenum dot image format t d mergeformat fldrslt image par endl t endl new paragraph dbg rtf t comment end dot graph endl rtfgenerator enddotgraph dotclassgraph newparagraph qcstring filename writegraph config_getstring rtf_output relpath rtf_style_reset filename config_getenum dot_image_format newparagraph dbg_rtf enddotgraph void rtf generator start incl dep graph dbg rtf t comment start incl dep graph endl rtfgenerator startincldepgraph dbg_rtf startincldepgraph void rtf generator end incl dep graph dot incl dep graph g new paragraph qc string file name g write graph t bitmap config getstring rtf output rel path false display the file t endl t rtf style reset endl t par pard qc field flddirty fldinst includepicture t file name config getenum dot image format t d mergeformat fldrslt image par endl t endl dbg rtf t comment end incl dep graph endl rtfgenerator endincldepgraph dotincldepgraph newparagraph qcstring filename writegraph config_getstring rtf_output relpath rtf_style_reset filename config_getenum dot_image_format dbg_rtf endincldepgraph void rtf generator start group collaboration rtfgenerator startgroupcollaboration void rtf generator end group collaboration dot group collaboration rtfgenerator endgroupcollaboration dotgroupcollaboration void rtf generator start call graph dbg rtf t comment start call graph endl rtfgenerator startcallgraph dbg_rtf startcallgraph void rtf generator end call graph dot call graph g new paragraph qc string file name g write graph t bitmap config getstring rtf output rel path false display the file t endl t rtf style reset endl t par pard qc field flddirty fldinst includepicture t file name config getenum dot image format t d mergeformat fldrslt image par endl t endl dbg rtf t comment end call graph endl rtfgenerator endcallgraph dotcallgraph newparagraph qcstring filename writegraph config_getstring rtf_output relpath rtf_style_reset filename config_getenum dot_image_format dbg_rtf endcallgraph void rtf generator start dir dep graph dbg rtf t comment start dir dep graph endl rtfgenerator startdirdepgraph dbg_rtf startdirdepgraph void rtf generator end dir dep graph dot dir deps g new paragraph qc string file name g write graph t bitmap config getstring rtf output rel path false display the file t endl t rtf style reset endl t par pard qc field flddirty fldinst includepicture t file name config getenum dot image format t d mergeformat fldrslt image par endl t endl dbg rtf t comment end dir dep graph endl rtfgenerator enddirdepgraph dotdirdeps newparagraph qcstring filename writegraph config_getstring rtf_output relpath rtf_style_reset filename config_getenum dot_image_format dbg_rtf enddirdepgraph void rtf generator start member group header bool has header dbg rtf t comment start member group header endl t endl if has header increment indent level t rtf style reset rtf style group header reference rtfgenerator startmembergroupheader hasheader dbg_rtf startmembergroupheader hasheader incrementindentlevel rtf_style_reset rtf_style groupheader void rtf generator end member group header dbg rtf t comment end member group header endl new paragraph t rtf style reset rtf clist depthstyle rtfgenerator endmembergroupheader dbg_rtf endmembergroupheader newparagraph rtf_style_reset rtf_clist_depthstyle void rtf generator start member group docs dbg rtf t comment start member group docs endl start emphasis rtfgenerator startmembergroupdocs dbg_rtf startmembergroupdocs startemphasis void rtf generator end member group docs dbg rtf t comment end member group docs endl end emphasis new paragraph rtfgenerator endmembergroupdocs dbg_rtf endmembergroupdocs endemphasis newparagraph void rtf generator start member group dbg rtf t comment start member group endl t rtf style reset rtf blist depthstyle endl rtfgenerator startmembergroup dbg_rtf startmembergroup rtf_style_reset rtf_blist_depthstyle void rtf generator end member group bool has header dbg rtf t comment end member group endl if has header decrement indent level t rtfgenerator endmembergroup hasheader dbg_rtf endmembergroup hasheader decrementindentlevel void rtf generator start text block bool dense dbg rtf t comment start text block endl t endl t rtf style reset if dense no spacing between paragraphs t rtf style dense text reference else some spacing t rtf style body text reference rtfgenerator starttextblock dbg_rtf starttextblock rtf_style_reset rtf_style densetext rtf_style bodytext void rtf generator end text block bool para break if para break new paragraph dbg rtf t comment end text block endl t endl m omitparagraph true rtfgenerator endtextblock parabreak parabreak newparagraph dbg_rtf endtextblock m_omitparagraph void rtf generator last index page dbg rtf t comment beginning body of rtf document n end page and setup for rest of document t sect sbkpage pgndec pgnrestart n t sect sectd sbknone n set new footer with arabic numbers t footer rtf style footer reference chpgn n t rtf style heading1 reference n rtfgenerator lastindexpage dbg_rtf rtf_style rtf_style bool rtf generator pre process file inplace const char path const char name q dir d path store the original directory if d exists err error output dir s does not exist n path return false qc string old dir convert toqc string q dir current dir path go to the html output directory i e path q dir set current d abs path q dir this dir qc string combined name qc string path combined rtf qc string mainrtf name qc string path name q file outf combined name if outf open io writeonly err failed to open s for writing n combined name data return false q text stream outt outf if qt version 200 outt set encoding q text stream latin1 endif if pre process file this dir mainrtf name outt it failed remove the temp file outf close this dir remove combined name q dir set current old dir return false everything worked move the files outf close this dir remove mainrtf name this dir rename combined name mainrtf name testrtf output mainrtf name q dir set current old dir return true rtfgenerator preprocessfileinplace qdir qcstring olddir converttoqcstring qdir currentdirpath qdir setcurrent abspath qdir thisdir qcstring combinedname qcstring qcstring mainrtfname qcstring qfile combinedname io_writeonly combinedname qtextstream qt_version setencoding qtextstream preprocessfile thisdir mainrtfname thisdir combinedname qdir setcurrent olddir thisdir mainrtfname thisdir combinedname mainrtfname testrtfoutput mainrtfname qdir setcurrent olddir const char rtf generator rtf blist depthstyle qc string n make index name list bullet m listlevel return rtf style n reference rtfgenerator rtf_blist_depthstyle qcstring makeindexname listbullet m_listlevel rtf_style const char rtf generator rtf clist depthstyle qc string n make index name list continue m listlevel return rtf style n reference rtfgenerator rtf_clist_depthstyle qcstring makeindexname listcontinue m_listlevel rtf_style const char rtf generator rtf elist depthstyle qc string n make index name list enum m listlevel return rtf style n reference rtfgenerator rtf_elist_depthstyle qcstring makeindexname listenum m_listlevel rtf_style const char rtf generator rtf lclist depthstyle qc string n make index name latextoc m listlevel return rtf style n reference rtfgenerator rtf_lclist_depthstyle qcstring makeindexname m_listlevel rtf_style const char rtf generator rtf dlist depthstyle qc string n make index name desc continue m listlevel return rtf style n reference rtfgenerator rtf_dlist_depthstyle qcstring makeindexname desccontinue m_listlevel rtf_style const char rtf generator rtf code depthstyle qc string n make index name code example m listlevel return rtf style n reference rtfgenerator rtf_code_depthstyle qcstring makeindexname codeexample m_listlevel rtf_style void rtf generator increment indent level m listlevel if m listlevel rtf maxindentlevels 1 warn cont warning maximum indent level d exceeded while generating rtf output n rtf maxindentlevels m listlevel rtf maxindentlevels 1 rtfgenerator incrementindentlevel m_listlevel m_listlevel rtf_maxindentlevels warn_cont rtf_maxindentlevels m_listlevel rtf_maxindentlevels void rtf generator decrement indent level m listlevel if m listlevel 0 warn cont warning negative indent level while generating rtf output n m listlevel 0 rtfgenerator decrementindentlevel m_listlevel m_listlevel warn_cont m_listlevel void rtf generator beginrtf document all the included rtf files should begin with the same header t rtf1 ansi ansicpg the translator trrt fansicp t uc1 deff0 deflang1033 deflangfe1033 n dbg rtf t comment begining font list n t fonttbl t f0 froman fcharset the translator trrtf char set t fprq2 panose 02020603050405020304 times new roman n t f1 fswiss fcharset the translator trrtf char set t fprq2 panose 020b0604020202020204 arial n t f2 fmodern fcharset the translator trrtf char set t fprq1 panose 02070309020205020404 courier new n t f3 froman fcharset2 fprq2 panose 05050102010706020507 symbol n t n dbg rtf t comment begin colors n t colortbl t red0 green0 blue0 t red0 green0 blue255 t red0 green255 blue255 t red0 green255 blue0 t red255 green0 blue255 t red255 green0 blue0 t red255 green255 blue0 t red255 green255 blue255 t red0 green0 blue128 t red0 green128 blue128 t red0 green128 blue0 t red128 green0 blue128 t red128 green0 blue0 t red128 green128 blue0 t red128 green128 blue128 t red192 green192 blue192 endl dbg rtf t comment beginning style list n t stylesheet n t widctlpar adjustright fs20 cgrid snext0 normal n sort styles ascending by s number via an intermediate q array q array const style data array 128 array fill 0 q dict iterator style data iter rtf style const style data style for style iter current iter unsigned index style index unsigned size array size if index size 1 to add at least one element then align up to multiple of 8 array resize index 1 7 7 array fill 0 size assert index array size if array at index 0 qc string key convert toqc string iter current key msg style s redefines s d n key data index array at index style write array elements unsigned size array size for unsigned i 0 i size i const style data style array at i if style 0 t style reference style definition n t endl this comment is needed for postprocessing t comment begin body endl rtfgenerator beginrtfdocument thetranslator trrtfansicp dbg_rtf thetranslator trrtfcharset thetranslator trrtfcharset thetranslator trrtfcharset dbg_rtf dbg_rtf qarray qarray styledata qdictiterator styledata rtf_style styledata qcstring converttoqcstring currentkey styledata void rtf generator beginrtf chapter t n dbg rtf t comment beginrtf chapter n t rtf style reset if we are compact no extra page breaks if config getbool compact rtf t sect sectd sbknone n t sect sbknone n rtfwriteruler thick else t sect sbkpage n t sect sectd sbkpage n t rtf style heading1 reference n rtfgenerator beginrtfchapter dbg_rtf beginrtfchapter rtf_style_reset config_getbool compact_rtf rtfwriteruler_thick rtf_style void rtf generator beginrtf section t n dbg rtf t comment beginrtf section n t rtf style reset if we are compact no extra page breaks if config getbool compact rtf t sect sectd sbknone n t sect sbknone n rtfwriteruler emboss else t sect sbkpage n t sect sectd sbkpage n t rtf style heading2 reference n rtfgenerator beginrtfsection dbg_rtf beginrtfsection rtf_style_reset config_getbool compact_rtf rtfwriteruler_emboss rtf_style void rtf generator rtfwriteruler doubleline dbg rtf t comment rtfwriteruler doubleline endl t pard widctlpar brdrb brdrdb brdrw15 brsp20 adjustright par endl rtfgenerator rtfwriteruler_doubleline dbg_rtf rtfwriteruler_doubleline void rtf generator rtfwriteruler emboss dbg rtf t comment rtfwriteruler emboss endl t pard widctlpar brdrb brdremboss brdrw15 brsp20 adjustright par endl rtfgenerator rtfwriteruler_emboss dbg_rtf rtfwriteruler_emboss void rtf generator rtfwriteruler thick dbg rtf t comment rtfwriteruler thick endl t pard widctlpar brdrb brdrs brdrw75 brsp20 adjustright par endl rtfgenerator rtfwriteruler_thick dbg_rtf rtfwriteruler_thick void rtf generator rtfwriteruler thin dbg rtf t comment rtfwriteruler thin endl t pard widctlpar brdrb brdrs brdrw5 brsp20 adjustright par endl rtfgenerator rtfwriteruler_thin dbg_rtf rtfwriteruler_thin void rtf generator writertf reference const char label t field fldedit fldinst pageref t rtf format bmk str label t mergeformat fldrslt pagenum rtfgenerator writertfreference rtfformatbmkstr char rtf generator get multi byte int c static char s 10 sprintf s x c return s rtfgenerator getmultibyte diagram row tree diagram d int l q list diagram item diagram d level l set auto delete true diagramrow treediagram qlist diagramitem setautodelete protection prot specifier virt const char ts if cd visited return the visit check does not work in case of multiple inheritance of the same class diagram item di new diagram item parent diagram at level count cd prot virt ts cd visited true if parent parent add child di di move count grid width level grid height append di base class list bcl do bases cd base classes cd sub classes there are base sub classes int count 0 base class def bcd bcl first while bcd class def ccd bcd class def if ccd ccd is visible in hierarchy ccd visited count bcd bcl next if count 0 prot private do bases diagram row row 0 if diagram count level 1 add new row row new diagram row diagram level 1 diagram append row else get next row row diagram at level 1 insert base classes in the next row base class def bcd bcl first while bcd class def ccd bcd class def if ccd ccd is visible in hierarchy ccd visited row insert class di ccd do bases bcd prot do bases bcd virt normal do bases bcd templ specifiers data bcd bcl next diagramitem diagramitem addchild gridwidth gridheight baseclasslist dobases baseclasses subclasses baseclassdef classdef classdef isvisibleinhierarchy dobases diagramrow diagramrow baseclassdef classdef classdef isvisibleinhierarchy insertclass dobases dobases dobases templspecifiers tree diagram tree diagram class def root bool do bases set auto delete true diagram row row new diagram row this 0 append row row insert class 0 root do bases public normal 0 treediagram treediagram classdef dobases setautodelete diagramrow diagramrow insertclass dobases tree diagram tree diagram treediagram treediagram void tree diagram compute layout diagram row row first while row row count max tree width row next if row printf compute layout list row at d n row number diagram item di row first diagram item opi 0 int delta 0 bool first true while di diagram item pi di parent item if pi opi first delta grid width first pi opi opi pi di move delta 0 collapse all items in the same list except the first di put in list di row next re organize the diagram items diagram item root get first get first while layout tree root 0 move first items of the lists if row diagram item di row first while di diagram item pi di parent item if pi get children count 1 di move grid width 0 while di di parent item pi di row next else di row next treediagram computelayout diagramrow maxtreewidth computelayout diagramitem diagramitem diagramitem parentitem gridwidth putinlist diagramitem getfirst getfirst layouttree diagramitem diagramitem parentitem getchildren gridwidth parentitem uint tree diagram compute rows printf tree diagram compute rows d n count int count 0 diagram row row first while row row get first is in list count row next printf count d row p n count row if row int max list len 0 int cur list len 0 diagram item di row first opi 0 while di if di parent item opi cur list len 1 else cur list len if cur list len max list len max list len cur list len opi di parent item di row next printf max list len d n max list len count max list len return count treediagram computerows treediagram computerows diagramrow getfirst isinlist maxlistlen curlistlen diagramitem parentitem curlistlen curlistlen curlistlen maxlistlen maxlistlen curlistlen parentitem maxlistlen maxlistlen maxlistlen void tree diagram move children diagram item root int dx diagram item list dil root get children diagram item di dil first while di di move dx 0 move children di dx di dil next treediagram movechildren diagramitem diagramitemlist getchildren diagramitem movechildren void tree diagram compute extremes uint max label len uint maxx pos uint ml 0 mx 0 diagram row dr first bool done false while dr done diagram item di dr first while di if di is in list done true if maxx pos mx qmax mx uint di x pos if max label len ml qmax ml image string length di label di dr next dr next if max label len max label len ml if maxx pos maxx pos mx treediagram computeextremes maxlabellen maxxpos diagramrow diagramitem isinlist maxxpos xpos maxlabellen stringlength maxlabellen maxlabellen maxxpos maxxpos bool generate map diagram row dr first if do base dr next bool done false bool first row do base while dr done int x 0 y 0 float xf 0 0 yf 0 0 diagram item di dr first if di is in list put boxes in a list diagram item opi 0 if do base di dr last while di if di parent item opi if bitmap if do base y cell height label vert spacing else y cell height label vert spacing else if do base yf 1 0 else yf 1 0 else if bitmap x di x pos cell width label hor spacing grid width if do base y image get height super rows cell height super rows 1 label vert spacing di y pos cell height label vert spacing grid height else y base rows 1 cell height label vert spacing di y pos cell height label vert spacing grid height else xf di x pos float grid width if do base yf di y pos float grid height super rows 1 else yf super rows 1 di y pos float grid height opi di parent item if bitmap bool has docs di get class def is linkable write bitmap box di image x y cell width cell height first row has docs di get children count 0 if first row generate map write map area t di get class def rel path x y cell width cell height else write vector box t di xf yf di get children count 0 if do base di dr prev else di dr next done true else draw a tree of boxes while di if bitmap x di x pos cell width label hor spacing grid width if do base y image get height super rows cell height super rows 1 label vert spacing di y pos cell height label vert spacing grid height else y base rows 1 cell height label vert spacing di y pos cell height label vert spacing grid height bool has docs di get class def is linkable write bitmap box di image x y cell width cell height first row has docs if first row generate map write map area t di get class def rel path x y cell width cell height else xf di x pos float grid width if do base yf di y pos float grid height super rows 1 else yf super rows 1 di y pos float grid height write vector box t di xf yf di dr next dr next first row false generatemap diagramrow dobase firstrow dobase diagramitem isinlist diagramitem dobase parentitem dobase cellheight labelvertspacing cellheight labelvertspacing dobase xpos cellwidth labelhorspacing gridwidth dobase getheight superrows cellheight superrows labelvertspacing ypos cellheight labelvertspacing gridheight baserows cellheight labelvertspacing ypos cellheight labelvertspacing gridheight xpos gridwidth dobase ypos gridheight superrows superrows ypos gridheight parentitem hasdocs getclassdef islinkable writebitmapbox cellwidth cellheight firstrow hasdocs getchildren firstrow generatemap writemaparea getclassdef relpath cellwidth cellheight writevectorbox getchildren dobase xpos cellwidth labelhorspacing gridwidth dobase getheight superrows cellheight superrows labelvertspacing ypos cellheight labelvertspacing gridheight baserows cellheight labelvertspacing ypos cellheight labelvertspacing gridheight hasdocs getclassdef islinkable writebitmapbox cellwidth cellheight firstrow hasdocs firstrow generatemap writemaparea getclassdef relpath cellwidth cellheight xpos gridwidth dobase ypos gridheight superrows superrows ypos gridheight writevectorbox firstrow uint cell width uint cell height diagram row dr first bool done false while dr done for each row diagram item di dr first if di is in list row consists of list connectors int x 0 y 0 ys 0 float xf 0 0 yf 0 0 ysf 0 0 while di diagram item pi di parent item diagram item list dil pi get children diagram item last dil get last if di last single child if bitmap draw pixels x di x pos cell width label hor spacing grid width cell width 2 if do base base classes y image get height super rows 1 cell height label vert spacing di y pos cell height label vert spacing grid height image draw vert arrow x y y label vert spacing 2 prot to color di protection prot to mask di protection else super classes y base rows 1 cell height label vert spacing label vert spacing 2 di y pos cell height label vert spacing grid height image draw vert line x y y label vert spacing 2 prot to color di protection prot to mask di protection else draw vectors t prot to string di protection endl if do base t 1 di x pos float grid width di y pos float grid height super rows 1 in n else t 0 di x pos float grid width float super rows 0 25 di y pos float grid height in n else multiple children put them in a vertical list if bitmap x di parent item x pos cell width label hor spacing grid width cell width 2 if do base base classes ys image get height super rows 1 cell height label vert spacing di y pos cell height label vert spacing grid height y ys cell height 2 else super classes ys base rows 1 cell height label vert spacing di y pos cell height label vert spacing grid height y ys cell height 2 else xf di parent item x pos float grid width if do base ysf di y pos float grid height super rows 1 yf ysf 0 5 else ysf float super rows 0 25 di y pos float grid height yf ysf 0 25 while di last more children to add if bitmap if do base base classes image draw horz arrow y x x cell width 2 label hor spacing prot to color di protection prot to mask di protection y cell height label vert spacing else super classes image draw horz line y x x cell width 2 label hor spacing prot to color di protection prot to mask di protection y cell height label vert spacing else t prot to string di protection endl if do base t 1 xf yf hedge n yf 1 0 else t 0 xf yf hedge n yf 1 0 di dr next add last horizonal line and a vertical connection line if bitmap if do base base classes image draw horz arrow y x x cell width 2 label hor spacing prot to color di protection prot to mask di protection image draw vert line x y ys label vert spacing 2 prot to color get min protection level dil prot to mask get min protection level dil else super classes image draw horz line y x x cell width 2 label hor spacing prot to color di protection prot to mask di protection image draw vert line x ys label vert spacing 2 y prot to color get min protection level dil prot to mask get min protection level dil else t prot to string di protection endl if do base t 1 xf yf hedge n else t 0 xf yf hedge n t prot to string get min protection level dil endl if do base t xf ysf yf vedge n else t xf ysf 0 25 yf vedge n di dr next done true the tree is drawn now else normal tree connector while di int x 0 y 0 diagram item list dil di get children diagram item parent di parent item if parent item has a parent connect to it if bitmap draw pixels x di x pos cell width label hor spacing grid width cell width 2 if do base base classes y image get height super rows 1 cell height label vert spacing di y pos cell height label vert spacing grid height write input line image draw vert arrow x y y label vert spacing 2 prot to color di protection prot to mask di protection else super classes y base rows 1 cell height label vert spacing label vert spacing 2 di y pos cell height label vert spacing grid height write output line image draw vert line x y y label vert spacing 2 prot to color di protection prot to mask di protection else draw pixels t prot to string di protection endl if do base t 1 di x pos float grid width di y pos float grid height super rows 1 in n else t 0 di x pos float grid width float super rows 0 25 di y pos float grid height in n if dil count 0 protection p get min protection level dil uint mask prot to mask p uint col prot to color p if bitmap x di x pos cell width label hor spacing grid width cell width 2 if do base base classes y image get height super rows 1 cell height label vert spacing cell height label vert spacing 2 di y pos cell height label vert spacing grid height image draw vert line x y y label vert spacing 2 1 col mask else super classes y base rows 1 cell height label vert spacing cell height di y pos cell height label vert spacing grid height image draw vert arrow x y y label vert spacing 2 1 col mask else t prot to string p endl if do base t 0 di x pos float grid width di y pos float grid height super rows 1 out n else t 1 di x pos float grid width float super rows 1 75 di y pos float grid height out n write input line diagram item first dil first diagram item last dil last if first last first is in list connect with all base classes if bitmap int xs first x pos cell width label hor spacing grid width cell width 2 int xe last x pos cell width label hor spacing grid width cell width 2 if do base base classes image draw horz line y xs xe col mask else super classes image draw horz line y label vert spacing 2 xs xe col mask else t prot to string p endl if do base t firs cellwidth cellheight diagramrow diagramitem isinlist diagramitem parentitem diagramitemlist getchildren diagramitem getlast xpos cellwidth labelhorspacing gridwidth cellwidth dobase getheight superrows cellheight labelvertspacing ypos cellheight labelvertspacing gridheight drawvertarrow labelvertspacing prottocolor prottomask baserows cellheight labelvertspacing labelvertspacing ypos cellheight labelvertspacing gridheight drawvertline labelvertspacing prottocolor prottomask prottostring dobase xpos gridwidth ypos gridheight superrows xpos gridwidth superrows ypos gridheight parentitem xpos cellwidth labelhorspacing gridwidth cellwidth dobase getheight superrows cellheight labelvertspacing ypos cellheight labelvertspacing gridheight cellheight baserows cellheight labelvertspacing ypos cellheight labelvertspacing gridheight cellheight parentitem xpos gridwidth dobase ypos gridheight superrows superrows ypos gridheight dobase drawhorzarrow cellwidth labelhorspacing prottocolor prottomask cellheight labelvertspacing drawhorzline cellwidth labelhorspacing prottocolor prottomask cellheight labelvertspacing prottostring dobase dobase drawhorzarrow cellwidth labelhorspacing prottocolor prottomask drawvertline labelvertspacing prottocolor getminprotectionlevel prottomask getminprotectionlevel drawhorzline cellwidth labelhorspacing prottocolor prottomask drawvertline labelvertspacing prottocolor getminprotectionlevel prottomask getminprotectionlevel prottostring dobase prottostring getminprotectionlevel dobase diagramitemlist getchildren diagramitem parentitem xpos cellwidth labelhorspacing gridwidth cellwidth dobase getheight superrows cellheight labelvertspacing ypos cellheight labelvertspacing gridheight drawvertarrow labelvertspacing prottocolor prottomask baserows cellheight labelvertspacing labelvertspacing ypos cellheight labelvertspacing gridheight drawvertline labelvertspacing prottocolor prottomask prottostring dobase xpos gridwidth ypos gridheight superrows xpos gridwidth superrows ypos gridheight getminprotectionlevel prottomask prottocolor xpos cellwidth labelhorspacing gridwidth cellwidth dobase getheight superrows cellheight labelvertspacing cellheight labelvertspacing ypos cellheight labelvertspacing gridheight drawvertline labelvertspacing baserows cellheight labelvertspacing cellheight ypos cellheight labelvertspacing gridheight drawvertarrow labelvertspacing prottostring dobase xpos gridwidth ypos gridheight superrows xpos gridwidth superrows ypos gridheight diagramitem diagramitem isinlist xpos cellwidth labelhorspacing gridwidth cellwidth xpos cellwidth labelhorspacing gridwidth cellwidth dobase drawhorzline drawhorzline labelvertspacing prottostring dobase bool tree diagram layout tree diagram item root int r bool moved false printf layout tree s d n root label data r diagram item list dil root get children if dil count 0 uint k int p pos root x pos int c pos root avg child pos if p pos c pos move children diagram row row at r 1 printf moving children d d in row d n dil get first number row count 1 r 1 for k dil get first number k row count k row at k move p pos c pos 0 moved true else if p pos c pos move parent diagram row row at r printf moving parents d d in row d n root number row count 1 r for k root number k row count k row at k move c pos p pos 0 moved true recurse to children diagram item di dil first while di moved di is in list moved moved layout tree di r 1 di dil next return moved treediagram layouttree diagramitem layouttree diagramitemlist getchildren ppos xpos cpos avgchildpos ppos cpos diagramrow getfirst getfirst ppos cpos ppos cpos diagramrow cpos ppos diagramitem isinlist layouttree protection pr specifier vi const char ts parent p x y 0 name n num number children new diagram item list prot pr virt vi in list false class def cd templ spec ts diagramitemlist inlist classdef templspec diagram item diagram item delete children diagramitem diagramitem qc string diagram item label const qc string result if templ spec is empty result insert template specifier in scope class def display name templ spec else result class def display name if config getbool hide scope names result strip scope result return result qcstring diagramitem qcstring templspec isempty inserttemplatespecifierinscope classdef displayname templspec classdef displayname config_getbool hide_scope_names stripscope qc string diagram item file name const return class def get output file base qcstring diagramitem filename classdef getoutputfilebase int diagram item avg child pos const diagram item di int c children count if c 0 no children don t move return x pos if di children get first is in list children should be in a list return di x pos if c 1 odd number of children get pos of middle child return children at c 2 x pos else even number of children get middle of most middle children return children at c 2 1 x pos children at c 2 x pos 2 diagramitem avgchildpos diagramitem xpos getfirst isinlist xpos xpos xpos xpos int diagram item num children const return children count diagramitem numchildren void diagram item add child diagram item di children append di diagramitem addchild diagramitem doc visitor docvisitor rtf m t t m ci ci m insidepre false m hide false m indentlevel 0 m lastispara false docvisitor docvisitor_rtf m_t m_ci m_insidepre m_hide m_indentlevel m_lastispara void rtf doc visitor visit doc word w if m hide return dbg rtf comment rtf doc visitor visit doc word n filter w word m lastispara false rtfdocvisitor docword m_hide dbg_rtf rtfdocvisitor docword m_lastispara void rtf doc visitor visit doc linked word w if m hide return dbg rtf comment rtf doc visitor visit doc linked word n start link w ref w file w anchor filter w word end link w ref m lastispara false rtfdocvisitor doclinkedword m_hide dbg_rtf rtfdocvisitor doclinkedword startlink endlink m_lastispara void rtf doc visitor visit doc white space w if m hide return dbg rtf comment rtf doc visitor visit doc white space n if m insidepre m t w chars else m t m lastispara false rtfdocvisitor docwhitespace m_hide dbg_rtf rtfdocvisitor docwhitespace m_insidepre m_t m_t m_lastispara void rtf doc visitor visit doc symbol s if m hide return dbg rtf comment rtf doc visitor visit doc symbol n switch s symbol case doc symbol b slash m t break case doc symbol at m t break case doc symbol less m t break case doc symbol greater m t break case doc symbol amp m t break case doc symbol dollar m t break case doc symbol hash m t break case doc symbol percent m t break case doc symbol copy m t c break case doc symbol tm m t tm break case doc symbol reg m t r break case doc symbol apos m t break case doc symbol quot m t break case doc symbol uml switch s letter case a m t 304 break case e m t 313 break case i m t 317 break case o m t 326 break case u m t 334 break case y m t y break case a m t 344 break case e m t 353 break case i m t 357 break case o m t 366 break case u m t 374 break case y m t 377 break default m t break break case doc symbol acute switch s letter case a m t 301 break case e m t 311 break case i m t 315 break case o m t 323 break case u m t 332 break case y m t 335 break case a m t 341 break case e m t 351 break case i m t 355 break case o m t 363 break case u m t 372 break case y m t 375 break default m t break break case doc symbol grave switch s letter case a m t 300 break case e m t 310 break case i m t 314 break case o m t 322 break case u m t 331 break case a m t 340 break case e m t 350 break case i m t 354 break case o m t 362 break case u m t 371 break default m t break break case doc symbol circ switch s letter case a m t 302 break case e m t 312 break case i m t 316 break case o m t 324 break case u m t 333 break case a m t 342 break case e m t 352 break case i m t 356 break case o m t 364 break case u m t 373 break default m t break break case doc symbol tilde switch s letter case a m t 303 break case n m t 321 break case o m t 325 break case a m t 343 break case n m t 361 break case o m t 365 break default m t break break case doc symbol cedil switch s letter case c m t 307 break case c m t 347 break default m t break break case doc symbol slash switch s letter case o m t 330 break case o m t 370 break default m t break break case doc symbol ring switch s letter case a m t 305 break case a m t 345 break default m t break break case doc symbol szlig m t 337 break case doc symbol nbsp m t break default err error unknown symbol found n m lastispara false rtfdocvisitor docsymbol m_hide dbg_rtf rtfdocvisitor docsymbol docsymbol bslash m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t docsymbol m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t docsymbol m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t docsymbol m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t m_t docsymbol m_t m_t m_t m_t m_t m_t m_t docsymbol m_t m_t m_t docsymbol m_t m_t m_t docsymbol m_t m_t m_t docsymbol m_t docsymbol m_t m_lastispara void rtf doc visitor visit docurl u if m hide return dbg rtf comment rtf doc visitor visit docurl n if config getbool rtf hyperlinks m t field fldinst hyperlink l if u is email m t mailto m t u url m t m t fldrslt cs37 ul cf2 filter u url m t endl else m t f2 filter u url m t m lastispara false rtfdocvisitor m_hide dbg_rtf rtfdocvisitor config_getbool rtf_hyperlinks m_t isemail m_t m_t m_t m_t m_t m_t m_t m_lastispara void rtf doc visitor visit doc line break if m hide return dbg rtf comment rtf doc visitor visit doc line break n m t par n m lastispara true rtfdocvisitor doclinebreak m_hide dbg_rtf rtfdocvisitor doclinebreak m_t m_lastispara void rtf doc visitor visit doc hor ruler if m hide return dbg rtf comment rtf doc visitor visit doc hor ruler n m t pard widctlpar brdrb brdrs brdrw5 brsp20 adjustright par endl m lastispara true rtfdocvisitor dochorruler m_hide dbg_rtf rtfdocvisitor dochorruler m_t m_lastispara void rtf doc visitor visit doc style change s if m hide return m lastispara false dbg rtf comment rtf doc visitor visit doc style change n switch s style case doc style change bold if s enable m t b else m t break case doc style change italic if s enable m t i else m t break case doc style change code if s enable m t f2 else m t break case doc style change subscript if s enable m t sub else m t break case doc style change superscript if s enable m t super else m t break case doc style change center if s enable m t qc else m t break case doc style change small if s enable m t sub else m t break case doc style change preformatted if s enable m t endl m t par endl m t rtf style reset get style code example m insidepre true else m insidepre false m t par endl m t endl m lastispara true break case doc style change div html only break case doc style change span html only break rtfdocvisitor docstylechange m_hide m_lastispara dbg_rtf rtfdocvisitor docstylechange docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t m_t rtf_style_reset getstyle codeexample m_insidepre m_insidepre m_t m_t m_lastispara docstylechange docstylechange void rtf doc visitor visit doc verbatim s if m hide return dbg rtf comment rtf doc visitor visit doc verbatim n switch s type case doc verbatim code fall though m t endl m t par endl m t rtf style reset get style code example parse code m ci s context s text latin1 s is example s example file m t par endl m t endl break case doc verbatim verbatim m t endl m t par endl m t rtf style reset get style code example filter s text true m t par endl m t endl break case doc verbatim html only case doc verbatim latex only case doc verbatim xml only case doc verbatim man only nothing break case doc verbatim dot static int dotindex 1 qc string file name 4096 file name sprintf s d config getstring rtf output inline dotgraph data dotindex q file file file name if file open io writeonly err could not open file s for writing n file name data file write block s text s text length file close m t par qc center picture write dot file file name m t file remove break m lastispara false rtfdocvisitor docverbatim m_hide dbg_rtf rtfdocvisitor docverbatim docverbatim m_t m_t m_t rtf_style_reset getstyle codeexample parsecode m_ci isexample examplefile m_t m_t docverbatim m_t m_t m_t rtf_style_reset getstyle codeexample m_t m_t docverbatim htmlonly docverbatim latexonly docverbatim xmlonly docverbatim manonly docverbatim qcstring filename filename config_getstring rtf_output inline_dotgraph_ qfile filename io_writeonly filename writeblock m_t writedotfile filename m_t m_lastispara void rtf doc visitor visit doc anchor anc if m hide return dbg rtf comment rtf doc visitor visit doc anchor n q string anchor if anc file is empty anchor anc file if anc file is empty anc anchor is empty anchor if anc anchor is empty anchor anc anchor m t bkmkstart rtf format bmk str anchor endl m t bkmkend rtf format bmk str anchor endl m lastispara false rtfdocvisitor docanchor m_hide dbg_rtf rtfdocvisitor docanchor qstring isempty isempty isempty _ isempty m_t rtfformatbmkstr m_t rtfformatbmkstr m_lastispara void rtf doc visitor visit doc include inc if m hide return dbg rtf comment rtf doc visitor visit doc include n switch inc type case doc include inc with lines m t endl m t par endl m t rtf style reset get style code example q file info cfi inc file file def fd cfi dir path cfi file name parse code m ci inc context inc text latin1 inc is example inc example file fd m t par endl m t endl break case doc include include m t endl m t par endl m t rtf style reset get style code example parse code m ci inc context inc text latin1 inc is example inc example file m t par endl m t endl break case doc include dont include break case doc include html include break case doc include verb include m t endl m t par endl m t rtf style reset get style code example filter inc text m t par endl m t endl break m lastispara true rtfdocvisitor docinclude m_hide dbg_rtf rtfdocvisitor docinclude docinclude incwithlines m_t m_t m_t rtf_style_reset getstyle codeexample qfileinfo filedef dirpath filename parsecode m_ci isexample examplefile m_t m_t docinclude m_t m_t m_t rtf_style_reset getstyle codeexample parsecode m_ci isexample examplefile m_t m_t docinclude dontinclude docinclude htmlinclude docinclude verbinclude m_t m_t m_t rtf_style_reset getstyle codeexample m_t m_t m_lastispara void rtf doc visitor visit doc inc operator op printf doc inc operator type d first d last d text s n op type op is first op is last op text data dbg rtf comment rtf doc visitor visit doc inc operator n if op is first if m hide m t endl m t par endl m t rtf style reset get style code example push enabled m hide true if op type doc inc operator skip pop enabled if m hide parse code m ci op context op text latin1 op is example op example file push enabled m hide true if op is last pop enabled if m hide m t par endl m t endl m lastispara true else if m hide m t endl m lastispara false rtfdocvisitor docincoperator docincoperator isfirst islast dbg_rtf rtfdocvisitor docincoperator isfirst m_hide m_t m_t m_t rtf_style_reset getstyle codeexample pushenabled m_hide docincoperator popenabled m_hide parsecode m_ci isexample examplefile pushenabled m_hide islast popenabled m_hide m_t m_t m_lastispara m_hide m_t m_lastispara void rtf doc visitor visit doc formula f if m hide return todo do something sensible here like including a bitmap dbg rtf comment rtf doc visitor visit doc formula n m t f text m lastispara false rtfdocvisitor docformula m_hide dbg_rtf rtfdocvisitor docformula m_t m_lastispara void rtf doc visitor visit doc index entry i if m hide return dbg rtf comment rtf doc visitor visit doc index entry n m t xe v i entry endl m lastispara false rtfdocvisitor docindexentry m_hide dbg_rtf rtfdocvisitor docindexentry m_t m_lastispara void rtf doc visitor visit pre doc auto list l if m hide return dbg rtf comment rtf doc visitor visit pre doc auto list n m t endl rtf listiteminfo m indentlevel is enum l is enum list rtf listiteminfo m indentlevel number 1 m lastispara false rtfdocvisitor visitpre docautolist m_hide dbg_rtf rtfdocvisitor visitpre docautolist m_t rtf_listiteminfo m_indentlevel isenum isenumlist rtf_listiteminfo m_indentlevel m_lastispara void rtf doc visitor visit post doc auto list if m hide return dbg rtf comment rtf doc visitor visit post doc auto list n m t par endl m t endl m lastispara true rtfdocvisitor visitpost docautolist m_hide dbg_rtf rtfdocvisitor visitpost docautolist m_t m_t m_lastispara void rtf doc visitor visit pre doc auto list item if m hide return dbg rtf comment rtf doc visitor visit pre doc auto list item n if m lastispara m t par endl m t rtf style reset if rtf listiteminfo m indentlevel is enum m t get style list enum endl m t rtf listiteminfo m indentlevel number tab rtf listiteminfo m indentlevel number else m t get style list bullet endl inc indent level m lastispara false rtfdocvisitor visitpre docautolistitem m_hide dbg_rtf rtfdocvisitor visitpre docautolistitem m_lastispara m_t m_t rtf_style_reset rtf_listiteminfo m_indentlevel isenum m_t getstyle listenum m_t rtf_listiteminfo m_indentlevel rtf_listiteminfo m_indentlevel m_t getstyle listbullet incindentlevel m_lastispara void rtf doc visitor visit post doc auto list item dec indent level dbg rtf comment rtf doc visitor visit post doc auto list item n rtfdocvisitor visitpost docautolistitem decindentlevel dbg_rtf rtfdocvisitor visitpost docautolistitem void rtf doc visitor visit pre doc para dbg rtf comment rtf doc visitor visit post doc para n rtfdocvisitor visitpre docpara dbg_rtf rtfdocvisitor visitpost docpara void rtf doc visitor visit post doc para p if m hide return dbg rtf comment rtf doc visitor visit post doc para n if p is last omit p for last paragraph p parent and for parameter sections p parent kind doc node kind paramsect m t par endl m lastispara true rtfdocvisitor visitpost docpara m_hide dbg_rtf rtfdocvisitor visitpost docpara islast docnode kind_paramsect m_t m_lastispara void rtf doc visitor visit pre doc root r if m hide return dbg rtf comment rtf doc visitor visit pre doc root n if r indent inc indent level m t rtf style body text reference endl rtfdocvisitor visitpre docroot m_hide dbg_rtf rtfdocvisitor visitpre docroot incindentlevel m_t rtf_style bodytext void rtf doc visitor visit post doc root r if m hide return dbg rtf comment rtf doc visitor visit post doc root n if m lastispara r single line m t par endl m t m lastispara true if r indent dec indent level rtfdocvisitor visitpost docroot m_hide dbg_rtf rtfdocvisitor visitpost docroot m_lastispara singleline m_t m_t m_lastispara decindentlevel void rtf doc visitor visit pre doc simple sect s if m hide return dbg rtf comment rtf doc visitor visit pre doc simple sect n if m lastispara m t par endl m t start desc m t b start bold m t rtf style heading5 reference endl switch s type case doc simple sect see m t the translator tr see also break case doc simple sect return m t the translator tr returns break case doc simple sect author m t the translator tr author true true break case doc simple sect authors m t the translator tr author true false break case doc simple sect version m t the translator tr version break case doc simple sect since m t the translator tr since break case doc simple sect date m t the translator tr date break case doc simple sect note m t the translator tr note break case doc simple sect warning m t the translator tr warning break case doc simple sect pre m t the translator tr precondition break case doc simple sect post m t the translator tr postcondition break case doc simple sect invar m t the translator tr invariant break case doc simple sect remark m t the translator tr remarks break case doc simple sect attention m t the translator tr attention break case doc simple sect user break case doc simple sect rcs break case doc simple sect unknown break special case 1 user defined title if s type doc simple sect user s type doc simple sect rcs m t m t par endl m t end bold inc indent level m t rtf style reset get style desc continue m lastispara false rtfdocvisitor visitpre docsimplesect m_hide dbg_rtf rtfdocvisitor visitpre docsimplesect m_lastispara m_t m_t m_t m_t rtf_style docsimplesect m_t thetranslator trseealso docsimplesect m_t thetranslator trreturns docsimplesect m_t thetranslator trauthor docsimplesect m_t thetranslator trauthor docsimplesect m_t thetranslator trversion docsimplesect m_t thetranslator trsince docsimplesect m_t thetranslator trdate docsimplesect m_t thetranslator trnote docsimplesect m_t thetranslator trwarning docsimplesect m_t thetranslator trprecondition docsimplesect m_t thetranslator trpostcondition docsimplesect m_t thetranslator trinvariant docsimplesect m_t thetranslator trremarks docsimplesect m_t thetranslator trattention docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect m_t m_t m_t incindentlevel m_t rtf_style_reset getstyle desccontinue m_lastispara void rtf doc visitor visit post doc simple sect if m hide return dbg rtf comment rtf doc visitor visit post doc simple sect n if m lastispara m t par endl dec indent level m t end desc m lastispara true rtfdocvisitor visitpost docsimplesect m_hide dbg_rtf rtfdocvisitor visitpost docsimplesect m_lastispara m_t decindentlevel m_t m_lastispara void rtf doc visitor visit pre doc title dbg rtf comment rtf doc visitor visit pre doc title n rtfdocvisitor visitpre doctitle dbg_rtf rtfdocvisitor visitpre doctitle void rtf doc visitor visit post doc title if m hide return dbg rtf comment rtf doc visitor visit post doc title n m t end bold m t par endl inc indent level m t rtf style reset get style desc continue m lastispara false rtfdocvisitor visitpost doctitle m_hide dbg_rtf rtfdocvisitor visitpost doctitle m_t m_t incindentlevel m_t rtf_style_reset getstyle desccontinue m_lastispara void rtf doc visitor visit pre doc simple list if m hide return dbg rtf comment rtf doc visitor visit pre doc simple sect n m t endl rtf listiteminfo m indentlevel is enum false m lastispara false rtfdocvisitor visitpre docsimplelist m_hide dbg_rtf rtfdocvisitor visitpre docsimplesect m_t rtf_listiteminfo m_indentlevel isenum m_lastispara void rtf doc visitor visit post doc simple list if m hide return dbg rtf comment rtf doc visitor visit post doc simple sect n if m lastispara m t par endl m t endl m lastispara true rtfdocvisitor visitpost docsimplelist m_hide dbg_rtf rtfdocvisitor visitpost docsimplesect m_lastispara m_t m_t m_lastispara void rtf doc visitor visit pre doc simple list item if m hide return dbg rtf comment rtf doc visitor visit pre doc simple list item n m t par rtf style reset get style list bullet endl m lastispara false inc indent level rtfdocvisitor visitpre docsimplelistitem m_hide dbg_rtf rtfdocvisitor visitpre docsimplelistitem m_t rtf_style_reset getstyle listbullet m_lastispara incindentlevel void rtf doc visitor visit post doc simple list item dec indent level dbg rtf comment rtf doc visitor visit post doc simple list item n rtfdocvisitor visitpost docsimplelistitem decindentlevel dbg_rtf rtfdocvisitor visitpost docsimplelistitem void rtf doc visitor visit pre doc section s if m hide return dbg rtf comment rtf doc visitor visit pre doc section n if m lastispara m t par endl m t start section rtf style reset q string heading int level qmin s level 1 4 heading sprintf heading d level set style m t rtf style heading reference endl make table of contents entry filter s title m t endl par endl m t tc tcl level v filter s title m t endl m lastispara true rtfdocvisitor visitpre docsection m_hide dbg_rtf rtfdocvisitor visitpre docsection m_lastispara m_t m_t rtf_style_reset qstring m_t rtf_style m_t m_t m_t m_lastispara void rtf doc visitor visit post doc section if m hide return dbg rtf comment rtf doc visitor visit post doc section n m t endl end section m lastispara true rtfdocvisitor visitpost docsection m_hide dbg_rtf rtfdocvisitor visitpost docsection m_t m_lastispara void rtf doc visitor visit pre doc html list l if m hide return dbg rtf comment rtf doc visitor visit pre doc html list n m t endl rtf listiteminfo m indentlevel is enum l type doc html list ordered rtf listiteminfo m indentlevel number 1 m lastispara false rtfdocvisitor visitpre dochtmllist m_hide dbg_rtf rtfdocvisitor visitpre dochtmllist m_t rtf_listiteminfo m_indentlevel isenum dochtmllist rtf_listiteminfo m_indentlevel m_lastispara void rtf doc visitor visit post doc html list if m hide return dbg rtf comment rtf doc visitor visit post doc html list n m t par endl endl m lastispara true rtfdocvisitor visitpost dochtmllist m_hide dbg_rtf rtfdocvisitor visitpost dochtmllist m_t m_lastispara void rtf doc visitor visit pre doc html list item if m hide return dbg rtf comment rtf doc visitor visit pre doc html list item n m t par endl m t rtf style reset if rtf listiteminfo m indentlevel is enum m t get style list enum endl m t rtf listiteminfo m indentlevel number tab rtf listiteminfo m indentlevel number else m t get style list bullet endl inc indent level m lastispara false rtfdocvisitor visitpre dochtmllistitem m_hide dbg_rtf rtfdocvisitor visitpre dochtmllistitem m_t m_t rtf_style_reset rtf_listiteminfo m_indentlevel isenum m_t getstyle listenum m_t rtf_listiteminfo m_indentlevel rtf_listiteminfo m_indentlevel m_t getstyle listbullet incindentlevel m_lastispara void rtf doc visitor visit post doc html list item dec indent level dbg rtf comment rtf doc visitor visit post doc html list item n rtfdocvisitor visitpost dochtmllistitem decindentlevel dbg_rtf rtfdocvisitor visitpost dochtmllistitem void rtf doc visitor visit pre doc html desc list if m hide return dbg rtf comment rtf doc visitor visit pre doc html desc list n m t endl m t rtf style reset get style list continue m lastispara false rtfdocvisitor visitpre dochtmldesclist m_hide dbg_rtf rtfdocvisitor visitpre dochtmldesclist m_t m_t rtf_style_reset getstyle listcontinue m_lastispara void rtf doc visitor visit post doc html desc list if m hide return dbg rtf comment rtf doc visitor visit post doc html desc list n m t endl m t par endl m lastispara true rtfdocvisitor visitpost dochtmldesclist m_hide dbg_rtf rtfdocvisitor visitpost dochtmldesclist m_t m_t m_lastispara void rtf doc visitor visit pre doc html desc title if m hide return dbg rtf comment rtf doc visitor visit pre doc html desc title n m t par endl m t b m t rtf style heading5 reference endl m lastispara false rtfdocvisitor visitpre dochtmldesctitle m_hide dbg_rtf rtfdocvisitor visitpre dochtmldesctitle m_t m_t m_t rtf_style m_lastispara void rtf doc visitor visit post doc html desc title if m hide return dbg rtf comment rtf doc visitor visit post doc html desc title n m t par endl m t endl m lastispara true rtfdocvisitor visitpost dochtmldesctitle m_hide dbg_rtf rtfdocvisitor visitpost dochtmldesctitle m_t m_t m_lastispara void rtf doc visitor visit pre doc html desc data if m hide return dbg rtf comment rtf doc visitor visit pre doc html desc data n inc indent level m t rtf style reset get style desc continue rtfdocvisitor visitpre dochtmldescdata m_hide dbg_rtf rtfdocvisitor visitpre dochtmldescdata incindentlevel m_t rtf_style_reset getstyle desccontinue void rtf doc visitor visit post doc html desc data if m hide return dbg rtf comment rtf doc visitor visit post doc html desc data n m t par endl m t endl dec indent level m lastispara true rtfdocvisitor visitpost dochtmldescdata m_hide dbg_rtf rtfdocvisitor visitpost dochtmldescdata m_t m_t decindentlevel m_lastispara void rtf doc visitor visit pre doc html table if m hide return dbg rtf comment rtf doc visitor visit pre doc html table n if m lastispara m t par endl m lastispara true rtfdocvisitor visitpre dochtmltable m_hide dbg_rtf rtfdocvisitor visitpre dochtmltable m_lastispara m_t m_lastispara void rtf doc visitor visit post doc html table if m hide return dbg rtf comment rtf doc visitor visit post doc html table n m t pard endl m lastispara true rtfdocvisitor visitpost dochtmltable m_hide dbg_rtf rtfdocvisitor visitpost dochtmltable m_t m_lastispara void rtf doc visitor visit pre doc html caption dbg rtf comment rtf doc visitor visit pre doc html caption n rtfdocvisitor visitpre dochtmlcaption dbg_rtf rtfdocvisitor visitpre dochtmlcaption void rtf doc visitor visit post doc html caption dbg rtf comment rtf doc visitor visit post doc html caption n rtfdocvisitor visitpost dochtmlcaption dbg_rtf rtfdocvisitor visitpost dochtmlcaption void rtf doc visitor visit pre doc html row r if m hide return dbg rtf comment rtf doc visitor visit pre doc html row n uint i column width rtf pagewidth r num cells m t trowd trgaph108 trleft 108 trbrdrt brdrs brdrw10 trbrdrl brdrs brdrw10 trbrdrb brdrs brdrw10 trbrdrr brdrs brdrw10 trbrdrh brdrs brdrw10 trbrdrv brdrs brdrw10 endl for i 0 i r num cells i m t clvertalt clbrdrt brdrs brdrw10 clbrdrl brdrs brdrw10 clbrdrb brdrs brdrw10 clbrdrr brdrs brdrw10 cltxlrtb cellx i 1 column width endl m t pard widctlpar intbl adjustright endl m lastispara false rtfdocvisitor visitpre dochtmlrow m_hide dbg_rtf rtfdocvisitor visitpre dochtmlrow columnwidth rtf_pagewidth numcells m_t numcells m_t columnwidth m_t m_lastispara void rtf doc visitor visit post doc html row if m hide return dbg rtf comment rtf doc visitor visit post doc html row n m t endl m t pard widctlpar intbl adjustright endl m t row endl m lastispara false rtfdocvisitor visitpost dochtmlrow m_hide dbg_rtf rtfdocvisitor visitpost dochtmlrow m_t m_t m_t m_lastispara void rtf doc visitor visit pre doc html cell if m hide return dbg rtf comment rtf doc visitor visit pre doc html cell n m t m lastispara false rtfdocvisitor visitpre dochtmlcell m_hide dbg_rtf rtfdocvisitor visitpre dochtmlcell m_t m_lastispara void rtf doc visitor visit post doc html cell if m hide return dbg rtf comment rtf doc visitor visit post doc html cell n m t cell m lastispara false rtfdocvisitor visitpost dochtmlcell m_hide dbg_rtf rtfdocvisitor visitpost dochtmlcell m_t m_lastispara void rtf doc visitor visit pre doc internal if m hide return dbg rtf comment rtf doc visitor visit pre doc internal n m t start desc m t b start bold m t the translator tr for internal use only m t end bold m t par endl inc indent level m t rtf style reset get style desc continue m lastispara false rtfdocvisitor visitpre docinternal m_hide dbg_rtf rtfdocvisitor visitpre docinternal m_t m_t m_t thetranslator trforinternaluseonly m_t m_t incindentlevel m_t rtf_style_reset getstyle desccontinue m_lastispara void rtf doc visitor visit post doc internal if m hide return dbg rtf comment rtf doc visitor visit post doc internal n m t par endl dec indent level m t end desc m lastispara true rtfdocvisitor visitpost docinternal m_hide dbg_rtf rtfdocvisitor visitpost docinternal m_t decindentlevel m_t m_lastispara void rtf doc visitor visit pre doch ref href if m hide return dbg rtf comment rtf doc visitor visit pre doch ref n if config getbool rtf hyperlinks m t field fldinst hyperlink l href url fldrslt cs37 ul cf2 else m t f2 m lastispara false rtfdocvisitor visitpre dochref m_hide dbg_rtf rtfdocvisitor visitpre dochref config_getbool rtf_hyperlinks m_t m_t m_lastispara void rtf doc visitor visit post doch ref if m hide return dbg rtf comment rtf doc visitor visit post doch ref n if config getbool rtf hyperlinks m t else m t m lastispara false rtfdocvisitor visitpost dochref m_hide dbg_rtf rtfdocvisitor visitpost dochref config_getbool rtf_hyperlinks m_t m_t m_lastispara void rtf doc visitor visit pre doc html header header if m hide return dbg rtf comment rtf doc visitor visit pre doc html header n m t start section rtf style reset q string heading int level qmin header level 2 4 heading sprintf heading d level set style m t rtf style heading reference make table of contents entry m t tc tcl v level m lastispara false rtfdocvisitor visitpre dochtmlheader m_hide dbg_rtf rtfdocvisitor visitpre dochtmlheader m_t rtf_style_reset qstring m_t rtf_style m_t m_lastispara void rtf doc visitor visit post doc html header if m hide return dbg rtf comment rtf doc visitor visit post doc html header n m t par endl m t endl end section m lastispara true rtfdocvisitor visitpost dochtmlheader m_hide dbg_rtf rtfdocvisitor visitpost dochtmlheader m_t m_t m_lastispara void rtf doc visitor visit pre doc image img dbg rtf comment rtf doc visitor visit pre doc image n if img type doc image rtf m t par endl m t endl m t rtf style reset endl m t par pard qc field flddirty fldinst includepicture m t img name m t d mergeformat fldrslt image par endl m t endl m lastispara true else other format skip hide caption since it is not supported at the moment push enabled m hide true rtfdocvisitor visitpre docimage dbg_rtf rtfdocvisitor visitpre docimage docimage m_t m_t m_t rtf_style_reset m_t m_t m_t m_t m_lastispara pushenabled m_hide void rtf doc visitor visit post doc image dbg rtf comment rtf doc visitor visit post doc image n pop enabled rtfdocvisitor visitpost docimage dbg_rtf rtfdocvisitor visitpost docimage popenabled void rtf doc visitor visit pre doc dot file df dbg rtf comment rtf doc visitor visit pre doc dot file n write dot file df file hide caption since it is not supported at the moment push enabled m hide true rtfdocvisitor visitpre docdotfile dbg_rtf rtfdocvisitor visitpre docdotfile writedotfile pushenabled m_hide void rtf doc visitor visit post doc dot file dbg rtf comment rtf doc visitor visit post doc dot file n pop enabled rtfdocvisitor visitpost docdotfile dbg_rtf rtfdocvisitor visitpost docdotfile popenabled void rtf doc visitor visit pre doc link lnk if m hide return dbg rtf comment rtf doc visitor visit pre doc link n start link lnk ref lnk file lnk anchor rtfdocvisitor visitpre doclink m_hide dbg_rtf rtfdocvisitor visitpre doclink startlink void rtf doc visitor visit post doc link lnk if m hide return dbg rtf comment rtf doc visitor visit post doc link n end link lnk ref rtfdocvisitor visitpost doclink m_hide dbg_rtf rtfdocvisitor visitpost doclink endlink void rtf doc visitor visit pre doc ref ref if m hide return dbg rtf comment rtf doc visitor visit pre doc ref n if ref file is empty start link ref ref ref file ref anchor if ref has link text filter ref target title rtfdocvisitor visitpre docref m_hide dbg_rtf rtfdocvisitor visitpre docref isempty startlink haslinktext targettitle void rtf doc visitor visit post doc ref ref if m hide return dbg rtf comment rtf doc visitor visit post doc ref n if ref file is empty end link ref ref m t rtfdocvisitor visitpost docref m_hide dbg_rtf rtfdocvisitor visitpost docref isempty endlink m_t void rtf doc visitor visit pre doc sec ref item dbg rtf comment rtf doc visitor visit pre doc sec ref item n rtfdocvisitor visitpre docsecrefitem dbg_rtf rtfdocvisitor visitpre docsecrefitem void rtf doc visitor visit post doc sec ref item dbg rtf comment rtf doc visitor visit post doc sec ref item n rtfdocvisitor visitpost docsecrefitem dbg_rtf rtfdocvisitor visitpost docsecrefitem void rtf doc visitor visit pre doc sec ref list if m hide return dbg rtf comment rtf doc visitor visit pre doc sec ref list n m t endl inc indent level m t rtf style reset get style latextoc endl m t par endl m lastispara true rtfdocvisitor visitpre docsecreflist m_hide dbg_rtf rtfdocvisitor visitpre docsecreflist m_t incindentlevel m_t rtf_style_reset getstyle m_t m_lastispara void rtf doc visitor visit post doc sec ref list if m hide return dbg rtf comment rtf doc visitor visit post doc sec ref list n dec indent level m t par endl m t m lastispara true rtfdocvisitor visitpost docsecreflist m_hide dbg_rtf rtfdocvisitor visitpost docsecreflist decindentlevel m_t m_t m_lastispara void rtf doc visitor visit pre doc param sect s if m hide return dbg rtf comment rtf doc visitor visit pre doc param sect n m t start param list if m lastispara m t par endl m t b start bold m t rtf style heading5 reference endl switch s type case doc param sect param m t the translator tr parameters break case doc param sect ret val m t the translator tr return values break case doc param sect exception m t the translator tr exceptions break default assert 0 m t m t par endl m t endl inc indent level m t rtf style reset get style desc continue m lastispara true rtfdocvisitor visitpre docparamsect m_hide dbg_rtf rtfdocvisitor visitpre docparamsect m_t m_lastispara m_t m_t m_t rtf_style docparamsect m_t thetranslator trparameters docparamsect retval m_t thetranslator trreturnvalues docparamsect m_t thetranslator trexceptions m_t m_t m_t incindentlevel m_t rtf_style_reset getstyle desccontinue m_lastispara void rtf doc visitor visit post doc param sect if m hide return dbg rtf comment rtf doc visitor visit post doc param sect n m t par endl dec indent level m t endl rtfdocvisitor visitpost docparamsect m_hide dbg_rtf rtfdocvisitor visitpost docparamsect m_t decindentlevel m_t void rtf doc visitor visit pre doc param list pl if m hide return dbg rtf comment rtf doc visitor visit pre doc param list n m t i q str list iterator li pl parameters const char s q list iterator doc node li pl parameters doc node param bool first true for li to first param li current li if first m t else first false if param kind doc node kind word visit doc word param else if param kind doc node kind linkedword visit doc linked word param m t m lastispara true rtfdocvisitor visitpre docparamlist m_hide dbg_rtf rtfdocvisitor visitpre docparamlist m_t qstrlistiterator qlistiterator docnode docnode tofirst m_t docnode kind_word docword docnode kind_linkedword doclinkedword m_t m_lastispara void rtf doc visitor visit post doc param list if m hide return dbg rtf comment rtf doc visitor visit post doc param list n m t par endl m lastispara true rtfdocvisitor visitpost docparamlist m_hide dbg_rtf rtfdocvisitor visitpost docparamlist m_t m_lastispara void rtf doc visitor visit pre docx ref item x if m hide return bool anonymous enum x file dbg rtf comment rtf doc visitor visit pre docx ref item n m t start param list m t b start bold m t rtf style heading5 reference endl if config getbool rtf hyperlinks anonymous enum q string ref name if x file is empty ref name x file if x file is empty x anchor is empty ref name if x anchor is empty ref name x anchor m t field fldinst hyperlink l ref name fldrslt cs37 ul cf2 filter x title m t else filter x title m t m t par endl m t end bold inc indent level m t rtf style reset get style desc continue m lastispara false rtfdocvisitor visitpre docxrefitem m_hide anonymousenum dbg_rtf rtfdocvisitor visitpre docxrefitem m_t m_t m_t rtf_style config_getbool rtf_hyperlinks anonymousenum qstring refname isempty refname isempty isempty refname _ isempty refname m_t refname m_t m_t m_t m_t incindentlevel m_t rtf_style_reset getstyle desccontinue m_lastispara void rtf doc visitor visit post docx ref item if m hide return dbg rtf comment rtf doc visitor visit post docx ref item n m t par endl dec indent level m t endl end xref item m lastispara true rtfdocvisitor visitpost docxrefitem m_hide dbg_rtf rtfdocvisitor visitpost docxrefitem m_t decindentlevel m_t m_lastispara void rtf doc visitor visit pre doc internal ref ref if m hide return dbg rtf comment rtf doc visitor visit pre doc internal ref n start link ref file ref anchor rtfdocvisitor visitpre docinternalref m_hide dbg_rtf rtfdocvisitor visitpre docinternalref startlink void rtf doc visitor visit post doc internal ref if m hide return dbg rtf comment rtf doc visitor visit post doc internal ref n end link m t rtfdocvisitor visitpost docinternalref m_hide dbg_rtf rtfdocvisitor visitpost docinternalref endlink m_t void rtf doc visitor visit pre doc copy dbg rtf comment rtf doc visitor visit pre doc copy n rtfdocvisitor visitpre doccopy dbg_rtf rtfdocvisitor visitpre doccopy void rtf doc visitor visit post doc copy dbg rtf comment rtf doc visitor visit post doc copy n rtfdocvisitor visitpost doccopy dbg_rtf rtfdocvisitor visitpost doccopy void rtf doc visitor visit pre doc text dbg rtf comment rtf doc visitor visit pre doc text n rtfdocvisitor visitpre doctext dbg_rtf rtfdocvisitor visitpre doctext void rtf doc visitor visit post doc text dbg rtf comment rtf doc visitor visit post doc text n rtfdocvisitor visitpost doctext dbg_rtf rtfdocvisitor visitpost doctext void rtf doc visitor filter const char str bool verbatim if str const unsigned char p const unsigned char str unsigned char c unsigned char pc 0 while p static bool multi byte false c p if multi byte m t get multi byte c multi byte false continue if c 0x80 multi byte true m t get multi byte c continue switch c case m t break case m t break case m t break case n if verbatim m t par endl else m t n break default m t char c pc c rtfdocvisitor multibyte multibyte m_t getmultibyte multibyte multibyte m_t getmultibyte m_t m_t m_t m_t m_t m_t void rtf doc visitor start link const q string ref const q string file const q string anchor if ref is empty config getbool rtf hyperlinks q string ref name if file is empty ref name file if anchor ref name ref name anchor m t field fldinst hyperlink l m t rtf format bmk str ref name m t m t fldrslt cs37 ul cf2 else m t b m lastispara false rtfdocvisitor startlink qstring qstring qstring isempty config_getbool rtf_hyperlinks qstring refname isempty refname refname _ refname m_t m_t rtfformatbmkstr refname m_t m_t m_t m_lastispara void rtf doc visitor end link const q string ref if ref is empty config getbool rtf hyperlinks m t else m t m lastispara false rtfdocvisitor endlink qstring isempty config_getbool rtf_hyperlinks m_t m_t m_lastispara q string rtf doc visitor get style const char name q string n n sprintf s d name m indentlevel style data sd rtf style n assert sd 0 return sd reference qstring rtfdocvisitor getstyle qstring m_indentlevel styledata rtf_style void rtf doc visitor inc indent level if m indentlevel rtf maxindentlevels 1 m indentlevel rtfdocvisitor incindentlevel m_indentlevel rtf_maxindentlevels m_indentlevel void rtf doc visitor dec indent level if m indentlevel 0 m indentlevel rtfdocvisitor decindentlevel m_indentlevel m_indentlevel void rtf doc visitor push enabled m enabled push new bool m hide rtfdocvisitor pushenabled m_enabled m_hide void rtf doc visitor pop enabled bool v m enabled pop assert v 0 m hide v delete v rtfdocvisitor popenabled m_enabled m_hide void rtf doc visitor write dot file const q string file name q string base name file name int i if i base name find rev 1 base name base name right base name length i 1 q string out dir config getstring rtf output write dot graph from file file name out dir base name bitmap if m lastispara m t par endl m t endl m t rtf style reset m t pard qc field flddirty fldinst includepicture m t base name config getenum dot image format m t d mergeformat fldrslt image par endl m t endl m lastispara true rtfdocvisitor writedotfile qstring filename qstring basename filename basename findrev basename basename basename qstring outdir config_getstring rtf_output writedotgraphfromfile filename outdir basename m_lastispara m_t m_t m_t rtf_style_reset m_t m_t basename config_getenum dot_image_format m_t m_t m_lastispara m size size m writeoffset 0 m spareroom 10240 m buf 0 m buf char malloc size m_size m_writeoffset m_spareroom m_buf m_buf buf str free m buf bufstr m_buf void add char char c make room for 1 m buf m writeoffset c addchar makeroomfor m_buf m_writeoffset void add array const char a int len make room for len memcpy m buf m writeoffset a len m writeoffset len addarray makeroomfor m_buf m_writeoffset m_writeoffset void skip uint s make room for s m writeoffset s makeroomfor m_writeoffset void shrink uint newlen m writeoffset newlen resize newlen m_writeoffset void resize uint newlen m size newlen if m writeoffset m size offset out of range enlarge m size m writeoffset m spareroom m buf char realloc m buf m size m_size m_writeoffset m_size m_size m_writeoffset m_spareroom m_buf m_buf m_size char data const return m buf m_buf char at uint i const return m buf i m_buf bool is empty const return m writeoffset 0 isempty m_writeoffset operator const char const return m buf m_buf uint cur pos const return m writeoffset curpos m_writeoffset void make room for uint size if m writeoffset size m size resize m size size m spareroom makeroomfor m_writeoffset m_size m_size m_spareroom void print const if type int printf ld n v l else printf f n v d define define undef false file def 0 is predefined false non recursive false filedef ispredefined nonrecursive name d name definition d definition file name d file name name d name definition d definition file name d file name line nr d line nr nargs d nargs undef d undef file def 0 filename filename filename filename linenr linenr filedef define define definition name bool define has documentation return definition doc config getbool extract all hasdocumentation config_getbool extract_all int compare items gci i1 gci i2 return stricmp define i1 name define i2 name compareitems int compare items gci i1 gci i2 return stricmp define i1 name define i2 name compareitems int compare items gci i1 gci i2 return stricmp define name i1 name string define name i2 name string compareitems definename namestring definename namestring void png encoder write const char name file file null unsigned char rows 0 unsigned char cmap 0 short num of colors 1 depth short bit depth 4 long i 0 long j 0 png structp png ptr png infop info ptr char user error ptr png encoder png colorp png palette png byte ti 1 png ptr png create write struct png libpng ver string png voidp user error ptr user error fn user warning fn if png ptr err can not allocate writing structure n return info ptr png create info struct png ptr if info ptr png destroy write struct png ptr png infopp null err can not allocate writing structure n return if setjmp png jmpbuf png ptr png destroy write struct png ptr info ptr return else png palette png colorp png malloc png ptr png max palette length sizeof png color memset png palette 0 png max palette length sizeof png color for i 0 i num of colors i png palette i red palette i red png palette i green palette i green png palette i blue palette i blue png set plte png ptr info ptr png palette num of colors png set ihdr png ptr info ptr width height bit depth png color type palette png interlace none png compression type base png filter type base free png palette ti 0 trans index png set trns png ptr info ptr ti 1 null rows unsigned char calloc sizeof unsigned char height rows 0 unsigned char calloc sizeof unsigned char height width for i 1 i height i rows i rows i 1 width for i 0 data ptr data i height i for j 0 j width j if j 2 rows i j 2 rows i j 2 data ptr else rows i j 2 data ptr 4 data ptr png set rows png ptr info ptr rows file fopen name wb if file 0 err error opening png file s for writing s n name strerror errno else png init io png ptr file png write png png ptr info ptr png transform identity null png destroy write struct png ptr info ptr if file fclose file if cmap free cmap if rows if rows 0 free rows 0 free rows return pngencoder numofcolors bit_depth png_structp png_ptr png_infop info_ptr user_error_ptr pngencoder png_colorp png_palette png_byte png_ptr png_create_write_struct png_libpng_ver_string png_voidp user_error_ptr user_error_fn user_warning_fn png_ptr info_ptr png_create_info_struct png_ptr info_ptr png_destroy_write_struct png_ptr png_infopp png_jmpbuf png_ptr png_destroy_write_struct png_ptr info_ptr png_palette png_colorp png_malloc png_ptr png_max_palette_length png_color png_palette png_max_palette_length png_color numofcolors png_palette png_palette png_palette png_set_plte png_ptr info_ptr png_palette numofcolors png_set_ihdr png_ptr info_ptr bit_depth png_color_type_palette png_interlace_none png_compression_type_base png_filter_type_base png_palette transindex png_set_trns png_ptr info_ptr dataptr dataptr dataptr dataptr png_set_rows png_ptr info_ptr png_init_io png_ptr png_write_png png_ptr info_ptr png_transform_identity png_destroy_write_struct png_ptr info_ptr void perl mod output stream add char c if m t 0 m t c else m s c perlmodoutputstream m_t m_t m_s void perl mod output stream add const char s if m t 0 m t s else m s s perlmodoutputstream m_t m_t m_s void perl mod output stream add qc string s if m t 0 m t s else m s s perlmodoutputstream qcstring m_t m_t m_s void perl mod output stream add q string s if m t 0 m t s else m s s perlmodoutputstream qstring m_t m_t m_s void perl mod output stream add int n if m t 0 m t n else m s n perlmodoutputstream m_t m_t m_s void perl mod output stream add unsigned int n if m t 0 m t n else m s n perlmodoutputstream m_t m_t m_s m pretty pretty m stream 0 m indentation false m blockstart true m spaces 0 0 m_pretty m_stream m_indentation m_blockstart m_spaces inline perl mod output continue block if m blockstart m blockstart false else m stream add indent return this perlmodoutput continueblock m_blockstart m_blockstart m_stream inline perl mod output indent if m pretty m stream add n m stream add m spaces return this perlmodoutput m_pretty m_stream m_stream m_spaces inline perl mod output add field quoted char const char field char content iadd field quoted char field content return this perlmodoutput addfieldquotedchar iaddfieldquotedchar inline perl mod output add field quoted string const char field const char content iadd field quoted string field content return this perlmodoutput addfieldquotedstring iaddfieldquotedstring inline perl mod output add field boolean const char field bool content return add field quoted string field content yes no perlmodoutput addfieldboolean addfieldquotedstring void perl mod output iopen save m saved push m stream m stream new perl mod output stream perlmodoutput iopensave m_saved m_stream m_stream perlmodoutputstream void perl mod output iclose save q string s s m stream m s delete m stream m stream m saved pop perlmodoutput iclosesave qstring m_stream m_s m_stream m_stream m_saved void perl mod output inc indent if m indentation perloutput max indentation char s m spaces m indentation 2 s s s 0 m indentation perlmodoutput incindent m_indentation perloutput_max_indentation m_spaces m_indentation m_indentation void perl mod output dec indent m indentation if m indentation perloutput max indentation m spaces m indentation 2 0 perlmodoutput decindent m_indentation m_indentation perloutput_max_indentation m_spaces m_indentation void perl mod output iadd quoted const char s char c while c s 0 if c c m stream add m stream add c perlmodoutput iaddquoted m_stream m_stream void perl mod output iadd field quoted char const char field char content iadd field field m stream add if content content m stream add m stream add content m stream add perlmodoutput iaddfieldquotedchar iaddfield m_stream m_stream m_stream m_stream void perl mod output iadd field quoted string const char field const char content if content 0 return iadd field field m stream add iadd quoted content m stream add perlmodoutput iaddfieldquotedstring iaddfield m_stream iaddquoted m_stream void perl mod output iadd field const char s continue block m stream add s m stream add m pretty perlmodoutput iaddfield continueblock m_stream m_stream m_pretty void perl mod output iopen char c const char s if s 0 iadd field s else continue block m stream add c inc indent m blockstart true perlmodoutput iaddfield continueblock m_stream incindent m_blockstart void perl mod output iclose char c dec indent indent if c 0 m stream add c m blockstart false perlmodoutput decindent m_stream m_blockstart doc visitor docvisitor other m output output m textmode false m output open list doc docvisitor docvisitor_other m_output m_textmode m_output openlist void perl mod doc visitor finish leave text m output close list add m other perlmoddocvisitor leavetext m_output closelist m_other void perl mod doc visitor visit doc word w enter text m output add quoted w word perlmoddocvisitor docword entertext m_output addquoted void perl mod doc visitor visit doc linked word w open item url add link w ref w file w anchor m output add field quoted string content w word close item perlmoddocvisitor doclinkedword openitem addlink m_output addfieldquotedstring closeitem void perl mod doc visitor visit doc white space enter text m output add perlmoddocvisitor docwhitespace entertext m_output void perl mod doc visitor visit doc symbol sy char c 0 const char s 0 const char accent 0 const char symbol 0 switch sy symbol case doc symbol at c break case doc symbol less c break case doc symbol greater c break case doc symbol amp c break case doc symbol dollar c break case doc symbol hash c break case doc symbol percent c break case doc symbol quot c break case doc symbol nbsp c break case doc symbol uml accent umlaut break case doc symbol acute accent acute break case doc symbol grave accent grave break case doc symbol circ accent circ break case doc symbol slash accent slash break case doc symbol tilde accent tilde break case doc symbol cedil accent cedilla break case doc symbol ring accent ring break case doc symbol b slash s break case doc symbol copy symbol copyright break case doc symbol tm symbol trademark break case doc symbol reg symbol registered break case doc symbol szlig symbol szlig break case doc symbol apos s break case doc symbol unknown err error unknown symbol found n break if c 0 enter text m output add c else if s 0 enter text m output add s else if symbol 0 leave text open item symbol m output add field quoted string symbol symbol close item else if accent 0 leave text open item accent m output add field quoted string accent accent add field quoted char letter sy letter close item perlmoddocvisitor docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol bslash docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol entertext m_output entertext m_output leavetext openitem m_output addfieldquotedstring closeitem leavetext openitem m_output addfieldquotedstring addfieldquotedchar closeitem void perl mod doc visitor visit docurl u open item url m output add field quoted string content u url close item perlmoddocvisitor openitem m_output addfieldquotedstring closeitem void perl mod doc visitor visit doc style change s const char style 0 switch s style case doc style change bold style bold break case doc style change italic style italic break case doc style change code style code break case doc style change subscript style subscript break case doc style change superscript style superscript break case doc style change center style center break case doc style change small style small break case doc style change preformatted style preformatted break case doc style change div style div break case doc style change span style span break open item style m output add field quoted string style style add field boolean enable s enable close item perlmoddocvisitor docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange openitem m_output addfieldquotedstring addfieldboolean closeitem void perl mod doc visitor visit doc verbatim s const char type 0 switch s type case doc verbatim code if 0 m output add programlisting parse code m ci s context s text false 0 m output add programlisting endif return case doc verbatim verbatim type preformatted break case doc verbatim html only type htmlonly break case doc verbatim man only type manonly break case doc verbatim latex only type latexonly break case doc verbatim xml only type xmlonly break case doc verbatim dot type dot break open item type m output add field quoted string content s text close item perlmoddocvisitor docverbatim docverbatim m_output parsecode m_ci m_output docverbatim docverbatim htmlonly docverbatim manonly docverbatim latexonly docverbatim xmlonly docverbatim openitem m_output addfieldquotedstring closeitem void perl mod doc visitor visit doc anchor anc q string anchor anc file 1 anc anchor open item anchor m output add field quoted string id anchor close item perlmoddocvisitor docanchor qstring _1 openitem m_output addfieldquotedstring closeitem void perl mod doc visitor visit doc include inc const char type 0 switch inc type case doc include inc with lines if 0 m t div class fragment pre q file info cfi inc file file def fd cfi dir path cfi file name parse code m ci inc context inc text latin1 inc is example inc example file fd m t pre div break endif return case doc include include if 0 m output add programlisting parse code m ci inc context inc text false 0 m output add programlisting endif return case doc include dont include return case doc include html include type htmlonly break case doc include verb include type preformatted break open item type m output add field quoted string content inc text close item perlmoddocvisitor docinclude docinclude incwithlines m_t qfileinfo filedef dirpath filename parsecode m_ci isexample examplefile m_t docinclude m_output parsecode m_ci m_output docinclude dontinclude docinclude htmlinclude docinclude verbinclude openitem m_output addfieldquotedstring closeitem void perl mod doc visitor visit doc inc operator if 0 printf doc inc operator type d first d last d text s n op type op is first op is last op text data if op is first m output add programlisting if op type doc inc operator skip parse code m ci op context op text false 0 if op is last m output add programlisting else m output add n endif perlmoddocvisitor docincoperator docincoperator isfirst islast isfirst m_output docincoperator parsecode m_ci islast m_output m_output void perl mod doc visitor visit doc formula f open item formula q string id id f id m output add field quoted string id id add field quoted string content f text close item perlmoddocvisitor docformula openitem qstring m_output addfieldquotedstring addfieldquotedstring closeitem void perl mod doc visitor visit doc index entry if 0 m output add indexentry primaryie m output add quoted ie entry m output add primaryie secondaryie secondaryie indexentry endif perlmoddocvisitor docindexentry m_output m_output addquoted m_output void perl mod doc visitor visit pre doc auto list l open item list m output add field quoted string style l is enum list ordered itemized open sub block content perlmoddocvisitor visitpre docautolist openitem m_output addfieldquotedstring isenumlist opensubblock void perl mod doc visitor visit post doc auto list close sub block close item perlmoddocvisitor visitpost docautolist closesubblock closeitem void perl mod doc visitor visit pre doc auto list item open sub block perlmoddocvisitor visitpre docautolistitem opensubblock void perl mod doc visitor visit post doc auto list item close sub block perlmoddocvisitor visitpost docautolistitem closesubblock void perl mod doc visitor visit pre doc para if m textblockstart m textblockstart false else single item parbreak open item para open sub block content perlmoddocvisitor visitpre docpara m_textblockstart m_textblockstart singleitem openitem opensubblock void perl mod doc visitor visit post doc para close sub block close item perlmoddocvisitor visitpost docpara closesubblock closeitem void perl mod doc visitor visit pre doc root perlmoddocvisitor visitpre docroot void perl mod doc visitor visit post doc root perlmoddocvisitor visitpost docroot void perl mod doc visitor visit pre doc simple sect s const char type 0 switch s type case doc simple sect see type see break case doc simple sect return type return break case doc simple sect author type author break case doc simple sect authors type authors break case doc simple sect version type version break case doc simple sect since type since break case doc simple sect date type date break case doc simple sect note type bug break case doc simple sect warning type warning break case doc simple sect pre type pre break case doc simple sect post type post break case doc simple sect invar type invariant break case doc simple sect remark type remark break case doc simple sect attention type attention break case doc simple sect user type par break case doc simple sect rcs type rcs break case doc simple sect unknown err error unknown simple section found n break open other open sub block type perlmoddocvisitor visitpre docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect openother opensubblock void perl mod doc visitor visit post doc simple sect close sub block close other perlmoddocvisitor visitpost docsimplesect closesubblock closeother void perl mod doc visitor visit pre doc title open item title open sub block content perlmoddocvisitor visitpre doctitle openitem opensubblock void perl mod doc visitor visit post doc title close sub block close item perlmoddocvisitor visitpost doctitle closesubblock closeitem void perl mod doc visitor visit pre doc simple list open item list m output add field quoted string style itemized open sub block content perlmoddocvisitor visitpre docsimplelist openitem m_output addfieldquotedstring opensubblock void perl mod doc visitor visit post doc simple list close sub block close item perlmoddocvisitor visitpost docsimplelist closesubblock closeitem void perl mod doc visitor visit pre doc section s q string sect q string sect 1 arg s level open item sect open sub block content perlmoddocvisitor visitpre docsection qstring qstring openitem opensubblock void perl mod doc visitor visit post doc section close sub block close item perlmoddocvisitor visitpost docsection closesubblock closeitem void perl mod doc visitor visit pre doc html list l open item list m output add field quoted string style l type doc html list ordered ordered itemized open sub block content perlmoddocvisitor visitpre dochtmllist openitem m_output addfieldquotedstring dochtmllist opensubblock void perl mod doc visitor visit post doc html list close sub block close item perlmoddocvisitor visitpost dochtmllist closesubblock closeitem void perl mod doc visitor visit pre doc html desc list if 0 m output add variablelist n endif perlmoddocvisitor visitpre dochtmldesclist m_output void perl mod doc visitor visit post doc html desc list if 0 m output add variablelist n endif perlmoddocvisitor visitpost dochtmldesclist m_output void perl mod doc visitor visit pre doc html desc title if 0 m output add varlistentry term endif perlmoddocvisitor visitpre dochtmldesctitle m_output void perl mod doc visitor visit post doc html desc title if 0 m output add term varlistentry n endif perlmoddocvisitor visitpost dochtmldesctitle m_output void perl mod doc visitor visit pre doc html desc data if 0 m output add listitem endif perlmoddocvisitor visitpre dochtmldescdata m_output void perl mod doc visitor visit post doc html desc data if 0 m output add listitem n endif perlmoddocvisitor visitpost dochtmldescdata m_output void perl mod doc visitor visit pre doc html table if 0 m output add table rows m output add t num rows m output add cols m output add t num cols m output add endif perlmoddocvisitor visitpre dochtmltable m_output m_output numrows m_output m_output numcols m_output void perl mod doc visitor visit post doc html table if 0 m output add table n endif perlmoddocvisitor visitpost dochtmltable m_output void perl mod doc visitor visit pre doc html row if 0 m output add row n endif perlmoddocvisitor visitpre dochtmlrow m_output void perl mod doc visitor visit post doc html row if 0 m output add row n endif perlmoddocvisitor visitpost dochtmlrow m_output void perl mod doc visitor visit pre doc html cell if 0 if c is heading m output add entry thead yes else m output add entry thead no endif perlmoddocvisitor visitpre dochtmlcell isheading m_output m_output void perl mod doc visitor visit post doc html cell if 0 m output add entry endif perlmoddocvisitor visitpost dochtmlcell m_output void perl mod doc visitor visit pre doc html caption if 0 m output add caption endif perlmoddocvisitor visitpre dochtmlcaption m_output void perl mod doc visitor visit post doc html caption if 0 m output add caption n endif perlmoddocvisitor visitpost dochtmlcaption m_output void perl mod doc visitor visit pre doc internal if 0 m output add internal endif perlmoddocvisitor visitpre docinternal m_output void perl mod doc visitor visit post doc internal if 0 m output add internal endif perlmoddocvisitor visitpost docinternal m_output void perl mod doc visitor visit pre doch ref if 0 m output add ulink url m output add href url m output add endif perlmoddocvisitor visitpre dochref m_output m_output m_output void perl mod doc visitor visit post doch ref if 0 m output add ulink endif perlmoddocvisitor visitpost dochref m_output void perl mod doc visitor visit pre doc html header if 0 m output add sect m output add header level m output add endif perlmoddocvisitor visitpre dochtmlheader m_output m_output m_output void perl mod doc visitor visit post doc html header if 0 m output add sect m output add header level m output add n endif perlmoddocvisitor visitpost dochtmlheader m_output m_output m_output void perl mod doc visitor visit pre doc image if 0 m output add image type switch img type case doc image html m output add html break case doc image latex m output add latex break case doc image rtf m output add rtf break m output add qc string base name img name int i if i base name find rev 1 i base name find rev 1 base name base name right base name length i 1 m output add name m output add base name m output add if img width is empty m output add width m output add quoted img width m output add else if img height is empty m output add height m output add quoted img height m output add m output add endif perlmoddocvisitor visitpre docimage m_output docimage m_output docimage m_output docimage m_output m_output qcstring basename basename findrev basename findrev basename basename basename m_output m_output basename m_output isempty m_output m_output addquoted m_output isempty m_output m_output addquoted m_output m_output void perl mod doc visitor visit post doc image if 0 m output add image endif perlmoddocvisitor visitpost docimage m_output void perl mod doc visitor visit pre doc dot file if 0 m output add dotfile name m output add df file m output add endif perlmoddocvisitor visitpre docdotfile m_output m_output m_output void perl mod doc visitor visit post doc dot file if 0 m output add dotfile endif perlmoddocvisitor visitpost docdotfile m_output void perl mod doc visitor visit pre doc link lnk open item link add link lnk ref lnk file lnk anchor perlmoddocvisitor visitpre doclink openitem addlink void perl mod doc visitor visit post doc link close item perlmoddocvisitor visitpost doclink closeitem void perl mod doc visitor visit pre doc ref ref open item ref if ref has link text m output add field quoted string text ref target title open sub block content perlmoddocvisitor visitpre docref openitem haslinktext m_output addfieldquotedstring targettitle opensubblock void perl mod doc visitor visit post doc ref close sub block close item perlmoddocvisitor visitpost docref closesubblock closeitem void perl mod doc visitor visit pre doc sec ref item if 0 m output add tocitem id m output add ref file m output add 1 m output add ref anchor m output add endif perlmoddocvisitor visitpre docsecrefitem m_output m_output m_output _1 m_output m_output void perl mod doc visitor visit post doc sec ref item if 0 m output add tocitem endif perlmoddocvisitor visitpost docsecrefitem m_output void perl mod doc visitor visit pre doc sec ref list if 0 m output add toclist endif perlmoddocvisitor visitpre docsecreflist m_output void perl mod doc visitor visit post doc sec ref list if 0 m output add toclist endif perlmoddocvisitor visitpost docsecreflist m_output void perl mod doc visitor visit pre doc param sect s leave text const char type 0 switch s type case doc param sect param type params break case doc param sect ret val type retvals break case doc param sect exception type exceptions break case doc param sect unknown err error unknown parameter section found n break open other open sub block type perlmoddocvisitor visitpre docparamsect leavetext docparamsect docparamsect retval docparamsect docparamsect openother opensubblock void perl mod doc visitor visit post doc param sect close sub block close other perlmoddocvisitor visitpost docparamsect closesubblock closeother void perl mod doc visitor visit pre doc param list pl leave text m output open hash open list parameters q str list iterator li pl parameters const char s q list iterator doc node li pl parameters doc node param for li to first param li current li qc string s if param kind doc node kind word s doc word param word else if param kind doc node kind linkedword s doc linked word param word m output open hash add field quoted string name s close hash m output close list open list doc perlmoddocvisitor visitpre docparamlist leavetext m_output openhash openlist qstrlistiterator qlistiterator docnode docnode tofirst qcstring docnode kind_word docword docnode kind_linkedword doclinkedword m_output openhash addfieldquotedstring closehash m_output closelist openlist void perl mod doc visitor visit post doc param list leave text m output close list close hash perlmoddocvisitor visitpost docparamlist leavetext m_output closelist closehash void perl mod doc visitor visit pre docx ref item if 0 m output add xrefsect id m output add x file m output add 1 m output add x anchor m output add m output add xreftitle m output add quoted x title m output add xreftitle m output add xrefdescription endif open item xrefitem open sub block content perlmoddocvisitor visitpre docxrefitem m_output m_output m_output _1 m_output m_output m_output m_output addquoted m_output m_output openitem opensubblock void perl mod doc visitor visit post docx ref item close sub block close item if 0 m output add xrefdescription m output add xrefsect endif perlmoddocvisitor visitpost docxrefitem closesubblock closeitem m_output m_output void perl mod doc visitor visit pre doc internal ref ref open item ref add link 0 ref file ref anchor open sub block content perlmoddocvisitor visitpre docinternalref openitem addlink opensubblock void perl mod doc visitor visit post doc internal ref close sub block close item perlmoddocvisitor visitpost docinternalref closesubblock closeitem void perl mod doc visitor visit pre doc copy perlmoddocvisitor visitpre doccopy void perl mod doc visitor visit post doc copy perlmoddocvisitor visitpost doccopy void perl mod doc visitor visit pre doc text perlmoddocvisitor visitpre doctext void perl mod doc visitor visit post doc text perlmoddocvisitor visitpost doctext void perl mod doc visitor add link const q string const q string file const q string anchor q string link file if anchor is empty link 1 anchor m output add field quoted string link link perlmoddocvisitor addlink qstring qstring qstring qstring isempty _1 m_output addfieldquotedstring void perl mod doc visitor enter text if m textmode return open item text m output add field content add m textmode true perlmoddocvisitor entertext m_textmode openitem m_output addfield m_textmode void perl mod doc visitor leave text if m textmode return m textmode false m output add close hash perlmoddocvisitor leavetext m_textmode m_textmode m_output closehash void perl mod doc visitor open item const char name leave text m output open hash add field quoted string type name perlmoddocvisitor openitem leavetext m_output openhash addfieldquotedstring void perl mod doc visitor close item leave text m output close hash perlmoddocvisitor closeitem leavetext m_output closehash void perl mod doc visitor single item const char name open item name close item perlmoddocvisitor singleitem openitem closeitem void perl mod doc visitor open sub block const char s m output open list s m textblockstart true perlmoddocvisitor opensubblock m_output openlist m_textblockstart void perl mod doc visitor close sub block leave text m output close list perlmoddocvisitor closesubblock leavetext m_output closelist void perl mod doc visitor open other leave text m output open save perlmoddocvisitor openother leavetext m_output opensave void perl mod doc visitor close other q string other leave text m output close save other m other other perlmoddocvisitor closeother qstring leavetext m_output closesave m_other void perl mod generator generate perl mod for member member def md definition declaration definition arg lists reimplements reimplemented by exceptions const volatile specifiers examples source definition source references source referenced by body code template arguments template arguments definition template parameter lists qc string mem type bool is func false switch md member type case member def define mem type define break case member def enum value assert 0 break case member def property mem type property break case member def variable mem type variable break case member def typedef mem type typedef break case member def enumeration mem type enum break case member def function mem type function is func true break case member def signal mem type signal is func true break case member def prototype mem type prototype is func true break case member def friend mem type friend is func true break case member def dcop mem type dcop is func true break case member def slot mem type slot is func true break case member def event mem type event break m output open hash add field quoted string kind mem type add field quoted string name md name add field quoted string virtualness get virtualness name md virtualness add field quoted string protection get protection name md protection add field boolean static md is static add perl mod doc block m output brief md get def file name md get def line md get outer scope md md brief description add perl mod doc block m output detailed md get def file name md get def line md get outer scope md md documentation if md member type member def define md member type member def enumeration m output add field quoted string type md type string if is func function argument list al md argument list m output add field boolean const al al const specifier add field boolean volatile al al volatile specifier m output open list parameters argument list decl al md decl argument list argument list def al md argument list if decl al decl al count 0 argument list iterator decl ali decl al argument list iterator def ali def al argument a for decl ali to first a decl ali current decl ali argument def arg def ali current m output open hash if a name is empty m output add field quoted string declaration name a name if def arg def arg name is empty def arg name a name m output add field quoted string definition name def arg name if a type is empty m output add field quoted string type a type if a array is empty m output add field quoted string array a array if a defval is empty m output add field quoted string default value a defval if a attrib is empty m output add field quoted string attributes a attrib m output close hash if def arg def ali m output close list else if md member type member def define md args string 0 define m output open list parameters argument list iterator ali md argument list argument a for ali to first a ali current ali m output open hash add field quoted string name a type close hash m output close list if md initializer is empty m output add field quoted string initializer md initializer if md excp string m output add field quoted string exceptions md excp string if md member type member def enumeration enum if md enum field list m output open list values member list iterator emli md enum field list member def emd for emli to first emd emli current emli m output open hash add field quoted string name emd name if emd initializer is empty m output add field quoted string initializer emd initializer add perl mod doc block m output brief emd get def file name emd get def line emd get outer scope emd emd brief description add perl mod doc block m output detailed emd get def file name emd get def line emd get outer scope emd emd documentation m output close hash m output close list member def rmd md reimplements if rmd m output open hash reimplements add field quoted string name rmd name close hash member list rbml md reimplemented by if rbml member list iterator mli rbml m output open list reimplemented by for mli to first rmd mli current mli m output open hash add field quoted string name rmd name close hash m output close list m output close hash perlmodgenerator generateperlmodformember memberdef reimplementedby templatearguments definitiontemplateparameterlists qcstring memtype isfunc membertype memberdef memtype memberdef enumvalue memberdef memtype memberdef memtype memberdef memtype memberdef memtype memberdef memtype isfunc memberdef memtype isfunc memberdef memtype isfunc memberdef memtype isfunc memberdef memtype isfunc memberdef memtype isfunc memberdef memtype m_output openhash addfieldquotedstring memtype addfieldquotedstring addfieldquotedstring getvirtualnessname addfieldquotedstring getprotectionname addfieldboolean isstatic addperlmoddocblock m_output getdeffilename getdefline getouterscope briefdescription addperlmoddocblock m_output getdeffilename getdefline getouterscope membertype memberdef membertype memberdef m_output addfieldquotedstring typestring isfunc argumentlist argumentlist m_output addfieldboolean constspecifier addfieldboolean volatilespecifier m_output openlist argumentlist declal declargumentlist argumentlist defal argumentlist declal declal argumentlistiterator declali declal argumentlistiterator defali defal declali tofirst declali declali defarg defali m_output openhash isempty m_output addfieldquotedstring declaration_name defarg defarg isempty defarg m_output addfieldquotedstring definition_name defarg isempty m_output addfieldquotedstring isempty m_output addfieldquotedstring isempty m_output addfieldquotedstring default_value isempty m_output addfieldquotedstring m_output closehash defarg defali m_output closelist membertype memberdef argsstring m_output openlist argumentlistiterator argumentlist tofirst m_output openhash addfieldquotedstring closehash m_output closelist isempty m_output addfieldquotedstring excpstring m_output addfieldquotedstring excpstring membertype memberdef enumfieldlist m_output openlist memberlistiterator enumfieldlist memberdef tofirst m_output openhash addfieldquotedstring isempty m_output addfieldquotedstring addperlmoddocblock m_output getdeffilename getdefline getouterscope briefdescription addperlmoddocblock m_output getdeffilename getdefline getouterscope m_output closehash m_output closelist memberdef m_output openhash addfieldquotedstring closehash memberlist reimplementedby memberlistiterator m_output openlist reimplemented_by tofirst m_output openhash addfieldquotedstring closehash m_output closelist m_output closehash member list ml const char name const char header if ml count 0 return empty list m output open hash name if header m output add field quoted string header header m output open list members member list iterator mli ml member def md for mli to first md mli current mli generate perl mod for member md d m output close list close hash memberlist m_output openhash m_output addfieldquotedstring m_output openlist memberlistiterator memberdef tofirst generateperlmodformember m_output closelist closehash void perl mod generator add list of all members class def cd m output open list all members member name infos dict iterator mnii cd member name infos dict member name info mni for mnii to first mni mnii current mnii member name info iterator mii mni member info mi for mii to first mi mii current mii member def md mi member def class def cd md get class def definition d md get group def if d 0 d cd m output open hash add field quoted string name md name add field quoted string virtualness get virtualness name md virtualness add field quoted string protection get protection name mi prot if mi ambiguity resolution scope is empty m output add field quoted string ambiguity scope mi ambiguity resolution scope m output add field quoted string scope cd name close hash m output close list perlmodgenerator addlistofallmembers classdef m_output openlist all_members membernameinfosdict membernameinfosdict membernameinfo tofirst membernameinfoiterator memberinfo tofirst memberdef memberdef classdef getclassdef getgroupdef m_output openhash addfieldquotedstring addfieldquotedstring getvirtualnessname addfieldquotedstring getprotectionname ambiguityresolutionscope isempty m_output addfieldquotedstring ambiguity_scope ambiguityresolutionscope m_output addfieldquotedstring closehash m_output closelist void perl mod generator generate perl mod for class class def cd brief description detailed description template argument list s include file member groups inheritance diagram list of direct super classes list of direct sub classes list of inner classes collaboration diagram list of all members user defined member sections standard member sections detailed member documentation examples using the class if cd is reference return skip external references if cd name find 1 return skip anonymous compounds if cd template master 0 return skip generated template instances m output open hash add field quoted string name cd name if cd base classes count 0 m output open list base base class list iterator bcli cd base classes base class def bcd for bcli to first bcd bcli current bcli m output open hash add field quoted string name bcd class def display name add field quoted string virtualness get virtualness name bcd virt add field quoted string protection get protection name bcd prot close hash m output close list if cd sub classes count 0 m output open list derived base class list iterator bcli cd base classes base class def bcd for bcli to first bcd bcli current bcli m output open hash add field quoted string name bcd class def display name add field quoted string virtualness get virtualness name bcd virt add field quoted string protection get protection name bcd prot close hash m output close list classs dict cl cd get inner classes if cl m output open list inner classs dict iterator cli cl class def cd for cli to first cd cli current cli m output open hash add field quoted string name cd name close hash m output close list include info ii cd include info if ii qc string nm ii include name if nm is empty ii file def nm ii file def doc name if nm is empty m output open hash includes if 0 if ii file def ii file def is reference todo support external references t id ii file def get output file base endif m output add field boolean local ii local add field quoted string name nm close hash add template list cd m output add list of all members cd member groups dict iterator mgli cd member groups dict member group mg for mg mgli current mgli generate perl mod section cd mg members user defined mg header generate perl mod section cd cd pub types public typedefs generate perl mod section cd cd pub methods public methods generate perl mod section cd cd pub attribs public members generate perl mod section cd cd pub slots public slots generate perl mod section cd cd signals signals generate perl mod section cd cd dcop methods dcop methods generate perl mod section cd cd properties properties generate perl mod section cd cd pub static methods public static methods generate perl mod section cd cd pub static attribs public static members generate perl mod section cd cd pro types protected typedefs generate perl mod section cd cd pro methods protected methods generate perl mod section cd cd pro attribs protected members generate perl mod section cd cd pro slots protected slots generate perl mod section cd cd pro static methods protected static methods generate perl mod section cd cd pro static attribs protected static members generate perl mod section cd cd pri types private typedefs generate perl mod section cd cd pri methods private methods generate perl mod section cd cd pri attribs private members generate perl mod section cd cd pri slots private slots generate perl mod section cd cd pri static methods private static methods generate perl mod section cd cd pri static attribs private static members generate perl mod section cd cd friends friend methods generate perl mod section cd cd related related methods add perl mod doc block m output brief cd get def file name cd get def line cd 0 cd brief description add perl mod doc block m output detailed cd get def file name cd get def line cd 0 cd documentation if 0 dot class graph inheritance graph cd dot class graph inheritance if inheritance graph is trivial t inheritancegraph endl inheritance graph write perl mod t t inheritancegraph endl dot class graph collaboration graph cd dot class graph implementation if collaboration graph is trivial t collaborationgraph endl collaboration graph write perl mod t t collaborationgraph endl t location file cd get def file name line cd get def line if cd get start body line 1 t bodystart cd get start body line bodyend cd get end body line t endl endif m output close hash perlmodgenerator generateperlmodforclass classdef isreference templatemaster m_output openhash addfieldquotedstring baseclasses m_output openlist baseclasslistiterator baseclasses baseclassdef tofirst m_output openhash addfieldquotedstring classdef displayname addfieldquotedstring getvirtualnessname addfieldquotedstring getprotectionname closehash m_output closelist subclasses m_output openlist baseclasslistiterator baseclasses baseclassdef tofirst m_output openhash addfieldquotedstring classdef displayname addfieldquotedstring getvirtualnessname addfieldquotedstring getprotectionname closehash m_output closelist classsdict getinnerclasses m_output openlist classsdict classdef tofirst m_output openhash addfieldquotedstring closehash m_output closelist includeinfo includeinfo qcstring includename isempty filedef filedef docname isempty m_output openhash filedef filedef isreference filedef getoutputfilebase m_output addfieldboolean addfieldquotedstring closehash addtemplatelist m_output addlistofallmembers membergroupsdict membergroupsdict membergroup generateperlmodsection user_defined generateperlmodsection pubtypes public_typedefs generateperlmodsection pubmethods public_methods generateperlmodsection pubattribs public_members generateperlmodsection pubslots public_slots generateperlmodsection generateperlmodsection dcopmethods dcop_methods generateperlmodsection generateperlmodsection pubstaticmethods public_static_methods generateperlmodsection pubstaticattribs public_static_members generateperlmodsection protypes protected_typedefs generateperlmodsection promethods protected_methods generateperlmodsection proattribs protected_members generateperlmodsection proslots protected_slots generateperlmodsection prostaticmethods protected_static_methods generateperlmodsection prostaticattribs protected_static_members generateperlmodsection pritypes private_typedefs generateperlmodsection primethods private_methods generateperlmodsection priattribs private_members generateperlmodsection prislots private_slots generateperlmodsection pristaticmethods private_static_methods generateperlmodsection pristaticattribs private_static_members generateperlmodsection friend_methods generateperlmodsection related_methods addperlmoddocblock m_output getdeffilename getdefline briefdescription addperlmoddocblock m_output getdeffilename getdefline dotclassgraph inheritancegraph dotclassgraph inheritancegraph istrivial inheritancegraph writeperlmod dotclassgraph collaborationgraph dotclassgraph collaborationgraph istrivial collaborationgraph writeperlmod getdeffilename getdefline getstartbodyline getstartbodyline getendbodyline m_output closehash void perl mod generator generate perl mod for namespace namespace def nd contained class definitions contained namespace definitions member groups normal members brief desc detailed desc location files containing parts of the namespace definition if nd is reference return skip external references m output open hash add field quoted string name nd name classs dict cl nd classs dict if cl m output open list classes classs dict iterator cli cl class def cd for cli to first cd cli current cli m output open hash add field quoted string name cd name close hash m output close list namespaces dict nl nd namespaces dict if nl m output open list namespaces namespaces dict iterator nli nl namespace def nd for nli to first nd nli current nli m output open hash add field quoted string name nd name close hash m output close list member groups dict iterator mgli nd member groups dict member group mg for mg mgli current mgli generate perl mod section nd mg members user defined mg header generate perl mod section nd nd dec define members defines generate perl mod section nd nd dec proto members prototypes generate perl mod section nd nd dec typedef members typedefs generate perl mod section nd nd dec enum members enums generate perl mod section nd nd dec func members functions generate perl mod section nd nd dec var members variables add perl mod doc block m output brief nd get def file name nd get def line 0 0 nd brief description add perl mod doc block m output detailed nd get def file name nd get def line 0 0 nd documentation m output close hash perlmodgenerator generateperlmodfornamespace namespacedef isreference m_output openhash addfieldquotedstring classsdict classsdict m_output openlist classsdict classdef tofirst m_output openhash addfieldquotedstring closehash m_output closelist namespacesdict namespacesdict m_output openlist namespacesdict namespacedef tofirst m_output openhash addfieldquotedstring closehash m_output closelist membergroupsdict membergroupsdict membergroup generateperlmodsection generateperlmodsection decdefinemembers generateperlmodsection decprotomembers generateperlmodsection dectypedefmembers generateperlmodsection decenummembers generateperlmodsection decfuncmembers generateperlmodsection decvarmembers addperlmoddocblock m_output getdeffilename getdefline briefdescription addperlmoddocblock m_output getdeffilename getdefline m_output closehash void perl mod generator generate perl mod for file file def fd includes files includedby files include graph included by graph contained class definitions contained namespace definitions member groups normal members brief desc detailed desc source code location number of lines if fd is reference return m output open hash add field quoted string name fd name q list iterator include info ili1 fd include file list include info inc m output open list includes for ili1 to first inc ili1 current ili1 m output open hash add field quoted string name inc include name if inc file def inc file def is reference m output add field quoted string ref inc file def get output file base m output close hash m output close list q list iterator include info ili2 fd included by file list m output open list included by for ili2 to first inc ili2 current ili2 m output open hash add field quoted string name inc include name if inc file def inc file def is reference m output add field quoted string ref inc file def get output file base m output close hash m output close list generate perl mod section fd fd dec define members defines generate perl mod section fd fd dec proto members prototypes generate perl mod section fd fd dec typedef members typedefs generate perl mod section fd fd dec enum members enums generate perl mod section fd fd dec func members functions generate perl mod section fd fd dec var members variables add perl mod doc block m output brief fd get def file name fd get def line 0 0 fd brief description add perl mod doc block m output detailed fd get def file name fd get def line 0 0 fd documentation m output close hash perlmodgenerator generateperlmodforfile filedef isreference m_output openhash addfieldquotedstring qlistiterator includeinfo includefilelist includeinfo m_output openlist tofirst m_output openhash addfieldquotedstring includename filedef filedef isreference m_output addfieldquotedstring filedef getoutputfilebase m_output closehash m_output closelist qlistiterator includeinfo includedbyfilelist m_output openlist included_by tofirst m_output openhash addfieldquotedstring includename filedef filedef isreference m_output addfieldquotedstring filedef getoutputfilebase m_output closehash m_output closelist generateperlmodsection decdefinemembers generateperlmodsection decprotomembers generateperlmodsection dectypedefmembers generateperlmodsection decenummembers generateperlmodsection decfuncmembers generateperlmodsection decvarmembers addperlmoddocblock m_output getdeffilename getdefline briefdescription addperlmoddocblock m_output getdeffilename getdefline m_output closehash void perl mod generator generate perl mod for group group def gd members member groups files classes namespaces packages pages child groups examples brief description detailed description if gd is reference return skip external references m output open hash add field quoted string name gd name add field quoted string title gd group title file list fl gd get files if fl m output open list files q list iterator file def fli fl file def fd fl first for fli to first fd fli current fli m output open hash add field quoted string name fd name close hash m output close list classs dict cl gd get classes if cl m output open list classes classs dict iterator cli cl class def cd for cli to first cd cli current cli m output open hash add field quoted string name cd name close hash m output close list namespaces dict nl gd get namespaces if nl m output open list namespaces namespaces dict iterator nli nl namespace def nd for nli to first nd nli current nli m output open hash add field quoted string name nd name close hash m output close list pages dict pl gd get pages if pl m output open list pages pages dict iterator pli pl page def pd for pli to first pd pli current pli m output open hash add field quoted string title pd title close hash m output close list group list gl gd get sub groups if gl m output open list groups group list iterator gli gl group def sgd for gli to first sgd gli current gli m output open hash add field quoted string title sgd group title close hash m output close list member groups dict iterator mgli gd member groups dict member group mg for mg mgli current mgli generate perl mod section gd mg members user defined mg header generate perl mod section gd gd dec define members defines generate perl mod section gd gd dec proto members prototypes generate perl mod section gd gd dec typedef members typedefs generate perl mod section gd gd dec enum members enums generate perl mod section gd gd dec func members functions generate perl mod section gd gd dec var members variables add perl mod doc block m output brief gd get def file name gd get def line 0 0 gd brief description add perl mod doc block m output detailed gd get def file name gd get def line 0 0 gd documentation m output close hash perlmodgenerator generateperlmodforgroup groupdef isreference m_output openhash addfieldquotedstring addfieldquotedstring grouptitle filelist getfiles m_output openlist qlistiterator filedef filedef tofirst m_output openhash addfieldquotedstring closehash m_output closelist classsdict getclasses m_output openlist classsdict classdef tofirst m_output openhash addfieldquotedstring closehash m_output closelist namespacesdict getnamespaces m_output openlist namespacesdict namespacedef tofirst m_output openhash addfieldquotedstring closehash m_output closelist pagesdict getpages m_output openlist pagesdict pagedef tofirst m_output openhash addfieldquotedstring closehash m_output closelist grouplist getsubgroups m_output openlist grouplistiterator groupdef tofirst m_output openhash addfieldquotedstring grouptitle closehash m_output closelist membergroupsdict membergroupsdict membergroup generateperlmodsection generateperlmodsection decdefinemembers generateperlmodsection decprotomembers generateperlmodsection dectypedefmembers generateperlmodsection decenummembers generateperlmodsection decfuncmembers generateperlmodsection decvarmembers addperlmoddocblock m_output getdeffilename getdefline briefdescription addperlmoddocblock m_output getdeffilename getdefline m_output closehash void perl mod generator generate perl mod for page page def pd name title documentation if pd is reference return m output open hash add field quoted string name pd name section info si doxygen section dict find pd name if si m output add field quoted string title si title add perl mod doc block m output detailed pd doc file pd doc line 0 0 pd documentation m output close hash perlmodgenerator generateperlmodforpage pagedef isreference m_output openhash addfieldquotedstring sectioninfo sectiondict m_output addfieldquotedstring addperlmoddocblock m_output docfile docline m_output closehash bool perl mod generator create output file q file f const char s f set name s if f open io writeonly err cannot open file s for writing n s return false return true perlmodgenerator createoutputfile qfile setname io_writeonly bool perl mod generator create output dir q dir perl mod dir qc string output directory config getstring output directory if output directory is empty output directory q dir current dir path else q dir dir output directory if dir exists dir set path q dir current dir path if dir mkdir output directory err error tag output directory output directory s does not exist and cannot be created n output directory data exit 1 else if config getbool quiet err notice output directory s does not exist i have created it for you n output directory data dir cd output directory output directory dir abs path q dir dir output directory if dir exists dir set path q dir current dir path if dir mkdir output directory err cannot create directory s n output directory data return false perl mod dir set path output directory perlmod if perl mod dir exists perl mod dir mkdir output directory perlmod err could not create perlmod directory in s n output directory data return false return true perlmodgenerator createoutputdir qdir perlmoddir qcstring outputdirectory config_getstring output_directory outputdirectory isempty outputdirectory qdir currentdirpath qdir outputdirectory setpath qdir currentdirpath outputdirectory output_directory outputdirectory config_getbool outputdirectory outputdirectory outputdirectory abspath qdir outputdirectory setpath qdir currentdirpath outputdirectory outputdirectory perlmoddir setpath outputdirectory perlmoddir perlmoddir outputdirectory outputdirectory bool perl mod generator generate doxy latex tex q file doxy latex tex if create output file doxy latex tex path doxy latex tex return false q text stream doxy latex tex stream doxy latex tex doxy latex tex stream documentclass a4paper 12pt article n usepackage latin1 inputenc n usepackage none hyphenat n usepackage t1 fontenc n usepackage hyperref n usepackage times n n input doxyformat n n begin document n input path doxy docs tex n sloppy n emit doxy docs n end document n return true perlmodgenerator generatedoxylatextex qfile doxylatextex createoutputfile doxylatextex pathdoxylatextex qtextstream doxylatextexstream doxylatextex doxylatextexstream pathdoxydocstex emitdoxydocs bool perl mod generator generate doxy format tex q file doxy format tex if create output file doxy format tex path doxy format tex return false q text stream doxy format tex stream doxy format tex doxy format tex stream def defcs 1 long expandafter def csname 1 endcsname n defcs empty n def if empty 1 expandafter ifx csname 1 endcsname empty n n def string node 1 defcs 1 1 1 n def doc node 1 defcs 1 1 1 n def list node 1 defcs 1 1 1 defcs 1 sep n def hash node 1 defcs 1 n n input path doxy structure tex n n newbox boxa n dimendef dimena 151 relax n dimendef dimenb 152 relax n countdef zone depth 151 relax n n def cs 1 csname 1 endcsname n def letcs 1 expandafter let csname 1 endcsname n def heading 1 vskip 4mm relax textbf 1 n def see 1 begin flushleft heading see also 1 end flushleft n n def frame 1 vskip 3mm relax fbox vbox hsize0 95 hsize vskip 1mm relax n raggedright 1 vskip 0 5mm relax n n def zone 1 2 3 n defcs test 1 2 n defcs emit 1 3 n defcs 1 n advance zone depth1 relax n letcs mode number zone depth 0 relax n letcs present number zone depth 0 relax n cs test 1 n expandafter if cs present number zone depth 1 n advance zone depth 1 relax n letcs present number zone depth 1 relax n expandafter if cs mode number zone depth 1 n advance zone depth1 relax n letcs mode number zone depth 1 relax n cs emit 1 n advance zone depth 1 relax fi n advance zone depth1 relax fi n advance zone depth 1 relax n n def member 1 2 n defcs test 1 cs field 1 detailed n if empty field 1 detailed doc else letcs present 1 1 fi n defcs 1 letcs present 1 0 relax n cs test 1 if1 cs present 1 letcs present number zone depth 1 relax n if1 cs mode number zone depth 2 fi fi n n def typedef member list 1 2 n defcs 1 detailed doc 1 vskip 5 5mm relax 1 n defcs 1 name 1 textbf 1 n defcs 1 see 1 see 1 n n zone 1s cs field 1 list subsubsection 2 cs field 1 list n member 1 frame typedef cs field 1 type cs field 1 name n cs field 1 detailed doc cs field 1 see vskip 5mm relax n n def variable member list 1 2 n defcs 1 detailed doc 1 vskip 5 5mm relax 1 n defcs 1 name 1 textbf 1 n defcs 1 see 1 see 1 n n zone 1s cs field 1 list subsubsection 2 cs field 1 list n member 1 frame cs field 1 type cs field 1 name n cs field 1 detailed doc cs field 1 see vskip 5mm relax n n def function member list 1 2 n defcs 1pd param name 1 textit 1 n defcs 1pd param cs field 1pd param name n defcs 1pd params sep n defcs 1pd blocks sep vskip 2mm relax n n defcs 1pd blocks 1 n heading parameters vskip 1 5mm relax n dimena0pt relax n defcs 1pd block setbox boxa hbox cs field 1pd params n ifdim dimena wd boxa dimena wd boxa fi n 1 n advance dimena3mm relax n dimenb hsize advance dimenb dimena relax n defcs 1pd block hbox to hsize vtop hsize dimena relax n cs field 1pd params hfill n vtop hsize dimenb relax cs field 1pd doc n 1 n n defcs 1 param name 1 textit 1 n defcs 1 param cs field 1 param type cs field 1 param name n defcs 1 params sep n n defcs 1 name 1 textbf 1 n defcs 1 see 1 see 1 n defcs 1 return 1 heading returns 1 n defcs field 1 title frame cs field 1 type cs field 1 name cs field 1 params n n zone 1s cs field 1 list subsubsection 2 cs field 1 list n member 1 n cs field 1 title vskip 6mm relax cs field 1 detailed doc n cs field 1 return cs field 1pd blocks cs field 1 see vskip 5mm relax n n def file detailed field file detailed doc par n def class detailed field class detailed doc par n n def file subzones field file typedefs field file variables field file functions n n def class subzones n field class public typedefs field class public members field class public methods n field class protected typedefs field class protected members field class protected methods n field class private typedefs field class private members field class private methods n n member page subsection field page name field page detailed doc n n typedef member list file typedef typedefs n variable member list file variable variables n function member list file function functions n zone file file subzones subsection field file name field file detailed file subzones n n typedef member list class public typedef public typedefs n typedef member list class protected typedef protected typedefs n typedef member list class private typedef private typedefs n variable member list class public member public members n variable member list class protected member protected members n variable member list class private member private members n function member list class public method public methods n function member list class protected method protected methods n function member list class private method private methods n zone class class subzones subsection field class name field class detailed class subzones n n zone all pages field pages section pages field pages n zone all files field files section files field files n zone all classes field classes section classes field classes n n newlength oldparskip n newlength oldparindent n newlength oldfboxrule n n zone depth0 relax n letcs mode0 1 relax n n def emit doxy docs n setlength oldparskip parskip n setlength oldparindent parindent n setlength oldfboxrule fboxrule n setlength parskip 0cm n setlength parindent 0cm n setlength fboxrule 1pt n all pages all files all classes n setlength parskip oldparskip n setlength parindent oldparindent n setlength fboxrule oldfboxrule n return true perlmodgenerator generatedoxyformattex qfile doxyformattex createoutputfile doxyformattex pathdoxyformattex qtextstream doxyformattexstream doxyformattex doxyformattexstream ifempty stringnode docnode listnode 1sep hashnode pathdoxystructuretex zonedepth zonedepth1 zonedepth zonedepth zonedepth zonedepth zonedepth zonedepth zonedepth1 zonedepth zonedepth zonedepth1 zonedepth 1detailed ifempty 1detaileddoc zonedepth zonedepth typedefmemberlist 1detaileddoc 1name 1see 1list 1list 1type 1name 1detaileddoc 1see variablememberlist 1detaileddoc 1name 1see 1list 1list 1type 1name 1detaileddoc 1see functionmemberlist 1pdparamname 1pdparam 1pdparamname 1pdparamssep 1pdblockssep 1pdblocks 1pdblock 1pdparams 1pdblock 1pdparams 1pddoc 1paramname 1param 1paramtype 1paramname 1paramssep 1name 1see 1return 1title 1type 1name 1params 1list 1list 1title 1detaileddoc 1return 1pdblocks 1see filedetailed fieldfiledetaileddoc classdetailed fieldclassdetaileddoc filesubzones fieldfiletypedefs fieldfilevariables fieldfilefunctions classsubzones fieldclasspublictypedefs fieldclasspublicmembers fieldclasspublicmethods fieldclassprotectedtypedefs fieldclassprotectedmembers fieldclassprotectedmethods fieldclassprivatetypedefs fieldclassprivatemembers fieldclassprivatemethods fieldpagename fieldpagedetaileddoc typedefmemberlist filetypedef variablememberlist filevariable functionmemberlist filefunction filesubzones fieldfilename fieldfiledetailed filesubzones typedefmemberlist classpublictypedef typedefmemberlist classprotectedtypedef typedefmemberlist classprivatetypedef variablememberlist classpublicmember variablememberlist classprotectedmember variablememberlist classprivatemember functionmemberlist classpublicmethod functionmemberlist classprotectedmethod functionmemberlist classprivatemethod classsubzones fieldclassname fieldclassdetailed classsubzones allpages fieldpages fieldpages allfiles fieldfiles fieldfiles allclasses fieldclasses fieldclasses zonedepth0 emitdoxydocs allpages allfiles allclasses bool perl mod generator generate doxy structurepm q file doxy modelpm if create output file doxy modelpm path doxy structurepm return false q text stream doxy modelpm stream doxy modelpm doxy modelpm stream sub memberlist n my prefix 0 n return n t hash prefix s n t n t members n t list prefix list n t t hash prefix n t t n t t kind string prefix kind n t t name string prefix name n t t static string prefix static n t t virtualness string prefix virtualness n t t protection string prefix protection n t t type string prefix type n t t parameters n t t list prefix params n t t t hash prefix param n t t t n t t t declaration name string prefix param name n t t t type string prefix param type n t t t n t t t n t t n t t detailed n t t hash prefix detailed n t t t n t t t doc doc prefix detailed doc n t t t return doc prefix return n t t t see doc prefix see n t t t params n t t t list prefix pd blocks n t t t hash prefix pd block n t t t t n t t t t parameters n t t t t list prefix pd params n t t t t hash prefix pd param n t t t t t n t t t t t name string prefix pd param name n t t t t t n t t t t n t t t t n t t t t doc doc prefix pd doc n t t t t n t t t n t t t n t t t n t t n t t n t t n t n t n t n n n doxystructure n hash root n n tfiles n t list files n t hash file n t n t tname string file name n t ttypedefs memberlist file typedef n t tvariables memberlist file variable n t tfunctions memberlist file function n t tdetailed n t t hash file detailed n t t n t t doc doc file detailed doc n t t n t t n t n t n t n tpages n t list pages n t hash page n t n t tname string page name n t tdetailed n t t hash page detailed n t t n t t doc doc page detailed doc n t t n t t n t n t n t n tclasses n t list classes n t hash class n t n t tname string class name n t tpublic typedefs memberlist class public typedef n t tpublic methods memberlist class public method n t tpublic members memberlist class public member n t tprotected typedefs memberlist class protected typedef n t tprotected methods memberlist class protected method n t tprotected members memberlist class protected member n t tprivate typedefs memberlist class private typedef n t tprivate methods memberlist class private method n t tprivate members memberlist class private member n t tdetailed n t t hash class detailed n t t n t t doc doc class detailed doc n t t n t t n t n t n t n n n n 1 n return true perlmodgenerator generatedoxystructurepm qfile doxymodelpm createoutputfile doxymodelpm pathdoxystructurepm qtextstream doxymodelpmstream doxymodelpm doxymodelpmstream _ declaration_name paramname paramtype detaileddoc pdblocks pdblock pdparams pdparam pdparamname pddoc filename filetypedef filevariable filefunction filedetailed filedetaileddoc pagename pagedetailed pagedetaileddoc classname tpublic_typedefs classpublictypedef tpublic_methods classpublicmethod tpublic_members classpublicmember tprotected_typedefs classprotectedtypedef tprotected_methods classprotectedmethod tprotected_members classprotectedmember tprivate_typedefs classprivatetypedef tprivate_methods classprivatemethod tprivate_members classprivatemember classdetailed classdetaileddoc bool perl mod generator generate doxy latexpl q file doxy latexpl if create output file doxy latexpl path doxy latexpl return false q text stream doxy latexpl stream doxy latexpl doxy latexpl stream use doxy structure n use doxy docs n n sub latex quote n tmy text 0 n t text s textbackslash g n t text s textbar g n t text s textless g n t text s textgreater g n t text s textasciitilde g n t text s textasciicircum g n t text s g n tprint text n n n sub generate doc n tmy doc 0 n tfor my item doc n t tmy type item type n t tif type eq text n t t tlatex quote item content n t t elsif type eq parbreak n t t tprint n n n t t elsif type eq style n t t tmy style item style n t t tif item enable eq yes n t t t tif style eq bold print bfseries n t t t tif style eq italic print itshape n t t t tif style eq code print ttfamily n t t t else n t t t tif style eq bold print mdseries n t t t tif style eq italic print upshape n t t t tif style eq code print rmfamily n t t t n t t tprint n t t elsif type eq symbol n t t tmy symbol item symbol n t t tif symbol eq copyright print copyright n t t telsif symbol eq szlig print ss n t t tprint n t t elsif type eq accent n t t tmy accent item accent n t t tif accent eq umlaut print n t t telsif accent eq acute print n t t telsif accent eq grave print n t t telsif accent eq circ print n t t telsif accent eq tilde print n t t telsif accent eq cedilla print c n t t telsif accent eq ring print r n t t tprint item letter n t t elsif type eq list n t t tmy env item style eq ordered enumerate itemize n t t tprint n begin env n t t tfor my subitem item content n t t t tprint n item n t t t tgenerate doc subitem n t t t n t t tprint n end env n t t elsif type eq url n t t tlatex quote item content n t t n t n n n sub generate n tmy item node n tmy type name node 0 1 n tif type eq string n t tprint name n t tlatex quote item n t tprint n t elsif type eq doc n t tif item n t t tprint name n t t tgenerate doc item n t t tprint n n t t else n t t tprint name empty n n t t n t elsif type eq hash n t tmy key value n t twhile key subnode each node 2 n t t tmy subname subnode 1 n t t tprint defcs field subname n t t tif item key n t t t tgenerate item key subnode n t t t else n t t t t tprint subname empty n n t t t n t t tprint n n t t n t tprint name n n t elsif type eq list n t tmy index 0 n t tif item n t t tprint name n n t t tfor my subitem item n t t t tif index n t t t t tprint name sep n n t t t t n t t t tgenerate subitem node 2 n t t t t index n t t t n t t tprint n n t t else n t t tprint name empty n n t t n t n n n generate doxydocs doxystructure n return true perlmodgenerator generatedoxylatexpl qfile doxylatexpl createoutputfile doxylatexpl pathdoxylatexpl qtextstream doxylatexplstream doxylatexpl doxylatexplstream doxystructure doxydocs latex_quote _ _ generate_doc _ tlatex_quote tgenerate_doc tlatex_quote _ tlatex_quote tgenerate_doc bool perl mod generator generate doxy latex structurepl q file doxy latex structurepl if create output file doxy latex structurepl path doxy latex structurepl return false q text stream doxy latex structurepl stream doxy latex structurepl doxy latex structurepl stream use doxy structure n n sub process n tmy node 0 n tmy type name node 0 1 n tmy command n tif type eq string command string n telsif type eq doc command doc n telsif type eq hash n t t command hash n t tfor my subnode values node 2 n t t tprocess subnode n t t n t n telsif type eq list n t t command list n t tprocess node 2 n t n tprint command node name n n n n process doxystructure n return true perlmodgenerator generatedoxylatexstructurepl qfile doxylatexstructurepl createoutputfile doxylatexstructurepl pathdoxylatexstructurepl qtextstream doxylatexstructureplstream doxylatexstructurepl doxylatexstructureplstream doxystructure _ bool perl mod generator generate doxy rules q file doxy rules if create output file doxy rules path doxy rules return false bool perlmod latex config getbool perlmod latex q string prefix config getstring perlmod makevar prefix q text stream doxy rules stream doxy rules doxy rules stream prefix doxy exec path path doxy exec n prefix doxyfile path doxyfile n prefix doxydocs pm path doxy docspm n prefix doxystructure pm path doxy structurepm n prefix doxyrules path doxy rules n if perlmod latex doxy rules stream prefix doxylatex pl path doxy latexpl n prefix doxylatexstructure pl path doxy latex structurepl n prefix doxystructure tex path doxy structure tex n prefix doxydocs tex path doxy docs tex n prefix doxyformat tex path doxy format tex n prefix doxylatex tex path doxy latex tex n prefix doxylatex dvi path doxy latexdvi n prefix doxylatex pdf path doxy latexpdf n doxy rules stream n phony clean perlmod n clean perlmod n trm f prefix doxystructure pm n t prefix doxydocs pm if perlmod latex doxy rules stream n t prefix doxylatex pl n t prefix doxylatexstructure pl n t prefix doxydocs tex n t prefix doxystructure tex n t prefix doxyformat tex n t prefix doxylatex tex n t prefix doxylatex pdf n t prefix doxylatex dvi n t addprefix prefix doxylatex tex tex out aux log doxy rules stream n n doxy rules stream prefix doxyrules n prefix doxymakefile n prefix doxystructure pm n prefix doxydocs pm if perlmod latex doxy rules stream n prefix doxylatex pl n prefix doxylatexstructure pl n prefix doxyformat tex n prefix doxylatex tex doxy rules stream n t prefix doxyfile n tcd prefix doxy exec path doxygen n if perlmod latex doxy rules stream n prefix doxydocs tex n prefix doxylatex pl n prefix doxydocs pm n tperl i d n n prefix doxystructure tex n prefix doxylatexstructure pl n prefix doxystructure pm n tperl i d n n prefix doxylatex pdf n prefix doxylatex dvi n prefix doxylatex tex n prefix doxyformat tex n prefix doxystructure tex n prefix doxydocs tex n n prefix doxylatex pdf n prefix doxylatex tex n tpdflatex interaction nonstopmode n n prefix doxylatex dvi n prefix doxylatex tex n tlatex interaction nonstopmode n return true perlmodgenerator generatedoxyrules qfile doxyrules createoutputfile doxyrules pathdoxyrules perlmodlatex config_getbool perlmod_latex qstring config_getstring perlmod_makevar_prefix qtextstream doxyrulesstream doxyrules doxyrulesstream doxy_exec_path pathdoxyexec pathdoxyfile doxydocs_pm pathdoxydocspm doxystructure_pm pathdoxystructurepm pathdoxyrules perlmodlatex doxyrulesstream doxylatex_pl pathdoxylatexpl doxylatexstructure_pl pathdoxylatexstructurepl doxystructure_tex pathdoxystructuretex doxydocs_tex pathdoxydocstex doxyformat_tex pathdoxyformattex doxylatex_tex pathdoxylatextex doxylatex_dvi pathdoxylatexdvi doxylatex_pdf pathdoxylatexpdf doxyrulesstream doxystructure_pm doxydocs_pm perlmodlatex doxyrulesstream doxylatex_pl doxylatexstructure_pl doxydocs_tex doxystructure_tex doxyformat_tex doxylatex_tex doxylatex_pdf doxylatex_dvi doxylatex_tex doxyrulesstream doxyrulesstream doxystructure_pm doxydocs_pm perlmodlatex doxyrulesstream doxylatex_pl doxylatexstructure_pl doxyformat_tex doxylatex_tex doxyrulesstream doxy_exec_path perlmodlatex doxyrulesstream doxydocs_tex doxylatex_pl doxydocs_pm doxystructure_tex doxylatexstructure_pl doxystructure_pm doxylatex_pdf doxylatex_dvi doxylatex_tex doxyformat_tex doxystructure_tex doxydocs_tex doxylatex_pdf doxylatex_tex doxylatex_dvi doxylatex_tex bool perl mod generator generate makefile q file makefile if create output file makefile path makefile return false bool perlmod latex config getbool perlmod latex q string prefix config getstring perlmod makevar prefix q text stream makefile stream makefile makefile stream phony default clean perlmod latex pdf n default perlmod latex pdf clean n n include path doxy rules n n clean clean perlmod n if perlmod latex makefile stream pdf prefix doxylatex pdf n dvi prefix doxylatex dvi n return true perlmodgenerator generatemakefile qfile createoutputfile pathmakefile perlmodlatex config_getbool perlmod_latex qstring config_getstring perlmod_makevar_prefix qtextstream makefilestream makefilestream perlmodlatex perlmodlatex pathdoxyrules perlmodlatex makefilestream doxylatex_pdf doxylatex_dvi bool perl mod generator generate perl mod output q file output file if create output file output file path doxy docspm return false q text stream output text stream output file perl mod output stream output stream output text stream m output set perl mod output stream output stream m output add doxydocs open hash m output open list classes classs dict iterator cli doxygen classs dict class def cd for cli to first cd cli current cli generate perl mod for class cd m output close list m output open list namespaces namespaces dict iterator nli doxygen namespaces dict namespace def nd for nli to first nd nli current nli generate perl mod for namespace nd m output close list m output open list files file name list iterator fnli doxygen input name list file name fn for fn fnli current fnli file name iterator fni fn file def fd for fd fni current fni generate perl mod for file fd m output close list m output open list groups groups dict iterator gli doxygen groups dict group def gd for gd gli current gli generate perl mod for group gd m output close list m output open list pages pages dict iterator pdi doxygen pages dict page def pd 0 for pdi to first pd pdi current pdi generate perl mod for page pd if doxygen main page generate perl mod for page doxygen main page m output close list m output close hash add n1 n return true perlmodgenerator generateperlmodoutput qfile outputfile createoutputfile outputfile pathdoxydocspm qtextstream outputtextstream outputfile perlmodoutputstream outputstream outputtextstream m_output setperlmodoutputstream outputstream m_output openhash m_output openlist classsdict classsdict classdef tofirst generateperlmodforclass m_output closelist m_output openlist namespacesdict namespacesdict namespacedef tofirst generateperlmodfornamespace m_output closelist m_output openlist filenamelistiterator inputnamelist filename filenameiterator filedef generateperlmodforfile m_output closelist m_output openlist groupsdict groupsdict groupdef generateperlmodforgroup m_output closelist m_output openlist pagesdict pagesdict pagedef tofirst generateperlmodforpage mainpage generateperlmodforpage mainpage m_output closelist m_output closehash void perl mod generator generate classes namespaces files packages groups related pages examples q dir perl mod dir if create output dir perl mod dir return bool perlmod latex config getbool perlmod latex path doxy docspm perl mod dir abs path doxy docs pm path doxy structurepm perl mod dir abs path doxy structure pm path makefile perl mod dir abs path makefile path doxy rules perl mod dir abs path doxyrules make if perlmod latex path doxy structure tex perl mod dir abs path doxystructure tex path doxy format tex perl mod dir abs path doxyformat tex path doxy latex tex perl mod dir abs path doxylatex tex path doxy latexdvi perl mod dir abs path doxylatex dvi path doxy latexpdf perl mod dir abs path doxylatex pdf path doxy docs tex perl mod dir abs path doxydocs tex path doxy latexpl perl mod dir abs path doxylatex pl path doxy latex structurepl perl mod dir abs path doxylatex structure pl if generate perl mod output generate doxy structurepm generate makefile generate doxy rules return if perlmod latex if generate doxy latex structurepl generate doxy latexpl generate doxy latex tex generate doxy format tex return perlmodgenerator qdir perlmoddir createoutputdir perlmoddir perlmodlatex config_getbool perlmod_latex pathdoxydocspm perlmoddir abspath doxydocs pathdoxystructurepm perlmoddir abspath doxystructure pathmakefile perlmoddir abspath pathdoxyrules perlmoddir abspath perlmodlatex pathdoxystructuretex perlmoddir abspath pathdoxyformattex perlmoddir abspath pathdoxylatextex perlmoddir abspath pathdoxylatexdvi perlmoddir abspath pathdoxylatexpdf perlmoddir abspath pathdoxydocstex perlmoddir abspath pathdoxylatexpl perlmoddir abspath pathdoxylatexstructurepl perlmoddir abspath generateperlmodoutput generatedoxystructurepm generatemakefile generatedoxyrules perlmodlatex generatedoxylatexstructurepl generatedoxylatexpl generatedoxylatextex generatedoxyformattex void start plain file const char name output generator og outputs first while og if og is enabled og start plain file name og outputs next startplainfile outputgenerator isenabled startplainfile void end plain file output generator og outputs first while og if og is enabled og end plain file og outputs next endplainfile outputgenerator isenabled endplainfile output list output list bool printf output list output list n outputs new q list output generator outputs set auto delete true outputlist outputlist outputlist outputlist qlist outputgenerator setautodelete output list output list printf output list output list n delete outputs outputlist outputlist outputlist outputlist void output list add const output generator og if og outputs append og outputlist outputgenerator void output list disable all but output generator output type o output generator og outputs first while og og disable if not o og outputs next outputlist disableallbut outputgenerator outputtype outputgenerator disableifnot void output list enable all output generator og outputs first while og og enable og outputs next outputlist enableall outputgenerator void output list disable all output generator og outputs first while og og disable og outputs next outputlist disableall outputgenerator void output list disable output generator output type o output generator og outputs first while og og disable if o og outputs next outputlist outputgenerator outputtype outputgenerator disableif void output list enable output generator output type o output generator og outputs first while og og enable if o og outputs next outputlist outputgenerator outputtype outputgenerator enableif bool output list is enabled output generator output type o bool result false output generator og outputs first while og result result og is enabled o og outputs next return result outputlist isenabled outputgenerator outputtype outputgenerator isenabled void output list push generator state output generator og outputs first while og og push generator state og outputs next outputlist pushgeneratorstate outputgenerator pushgeneratorstate void output list pop generator state output generator og outputs first while og og pop generator state og outputs next outputlist popgeneratorstate outputgenerator popgeneratorstate bool single line bool link from index int count 0 if doc str is empty return output generator og outputs first while og if og is enabled count og outputs next if count 0 return no output formats enabled doc node root 0 if doc str at doc str length 1 n root validating parse doc file name start line ctx md doc str index words is example example name single line link from index else root validating parse doc file name start line ctx md doc str n index words is example example name single line link from index og outputs first while og if og is enabled og print doc root og outputs next delete root singleline linkfromindex docstr isempty outputgenerator isenabled docnode docstr docstr validatingparsedoc filename startline docstr indexwords isexample examplename singleline linkfromindex validatingparsedoc filename startline docstr indexwords isexample examplename singleline linkfromindex isenabled printdoc void output list parse text const qc string text str int count 0 output generator og outputs first while og if og is enabled count og outputs next if count 0 return no output formats enabled doc node root validating parse text text str og outputs first while og if og is enabled og print doc root og outputs next delete root outputlist parsetext qcstring textstr outputgenerator isenabled docnode validatingparsetext textstr isenabled printdoc int compare items gci item1 gci item2 return stricmp example item1 name example item2 name compareitems man generator man generator output generator dir config getstring man output man get extension first col true paragraph false col 0 upper case false inside tabbing false in header false mangenerator mangenerator outputgenerator config_getstring man_output getextension firstcol uppercase insidetabbing inheader man generator man generator mangenerator mangenerator void man generator print doc doc node n man doc visitor visitor new man doc visitor t this n accept visitor delete visitor first col false paragraph false mangenerator printdoc docnode mandocvisitor mandocvisitor firstcol void man generator init qc string ext get extension qc string man output config getstring man output q dir d man output if d exists d mkdir man output err could not create output directory s n man output data exit 1 d set path man output man ext if d exists d mkdir man output man ext err could not create output directory s man s n man output data ext data exit 1 create sub dirs d mangenerator qcstring getextension qcstring manoutput config_getstring man_output qdir manoutput manoutput manoutput setpath manoutput manoutput manoutput createsubdirs void man generator start file const char const char man name const char start plain file build file name man name first col true mangenerator startfile manname startplainfile buildfilename manname firstcol void man generator end file t endl end plain file mangenerator endfile endplainfile void man generator end title head const char const char name t th name get extension date to string false if config getstring project number is empty t version config getstring project number if config getstring project name is empty t doxygen else t config getstring project name t nroff endl t ad l endl t nh endl t sh name endl t name first col false in header true mangenerator endtitlehead getextension datetostring config_getstring project_number isempty config_getstring project_number config_getstring project_name isempty config_getstring project_name firstcol inheader void man generator start title if first col t endl t sh first col false paragraph false mangenerator starttitle firstcol firstcol void man generator end title t mangenerator endtitle void man generator new paragraph if paragraph if first col t endl t pp endl first col true paragraph true mangenerator newparagraph firstcol firstcol void man generator write string const char text docify text mangenerator writestring void man generator write index item const char const char const char mangenerator writeindexitem void man generator docify const char str if str const char p str char c 0 while c p switch c case t col break case n t n col 0 break case c no break default t c col break first col c n printf s str fflush stdout paragraph false mangenerator firstcol void man generator codify const char str static char spaces if str const char p str char c int spaces to next tab stop while p c p switch c case t spaces to next tab stop config getint tab size col config getint tab size t spaces left spaces to next tab stop col spaces to next tab stop break case n t n first col true col 0 break case t col break case c no break default t c first col false col break printf s str fflush stdout paragraph false mangenerator spacestonexttabstop spacestonexttabstop config_getint tab_size config_getint tab_size spacestonexttabstop spacestonexttabstop firstcol firstcol const char const char name start bold docify name end bold startbold endbold const char const char name docify name void man generator start html link const char mangenerator starthtmllink void man generator end html link mangenerator endhtmllink void man generator start group header if first col t endl t sh upper case true first col false mangenerator startgroupheader firstcol uppercase firstcol void man generator end group header t n pp endl first col true paragraph true upper case false mangenerator endgroupheader firstcol uppercase void man generator start member header if first col t endl t ss mangenerator startmemberheader firstcol void man generator end member header t n first col true paragraph false mangenerator endmemberheader firstcol void man generator write list item if first col t endl t tp endl first col true paragraph false col 0 mangenerator writelistitem firstcol firstcol void man generator start member list if inside tabbing t n in 1c first col false mangenerator startmemberlist insidetabbing firstcol void man generator end member list if inside tabbing t n in 1c first col false mangenerator endmemberlist insidetabbing firstcol void man generator start anon type scope int indent level if indent level 0 inside tabbing true mangenerator startanontypescope indentlevel indentlevel insidetabbing void man generator end anon type scope int indent level if indent level 0 inside tabbing false mangenerator endanontypescope indentlevel indentlevel insidetabbing void man generator start member item int if first col inside tabbing t in 1c n t n ti 1c n ri first col false mangenerator startmemberitem firstcol insidetabbing firstcol void man generator end member item t n br mangenerator endmemberitem void man generator start member group header bool t n pp n ri fb mangenerator startmembergroupheader void man generator end member group header t fp n br n first col true mangenerator endmembergroupheader firstcol void man generator start member group docs mangenerator startmembergroupdocs void man generator end member group docs t n pp mangenerator endmembergroupdocs void man generator start member group t n in 1c mangenerator startmembergroup void man generator end member group bool t n in 1c first col false mangenerator endmembergroup firstcol void man generator start code fragment new paragraph t nf endl first col true paragraph false mangenerator startcodefragment newparagraph firstcol void man generator end code fragment if first col t endl t fi endl first col true paragraph false col 0 mangenerator endcodefragment firstcol firstcol void man generator start desc item if first col t endl t ip first col false mangenerator startdescitem firstcol firstcol void man generator end desc item t 1c endl first col true mangenerator enddescitem firstcol void man generator write char char c first col c n if first col col 0 else col switch c case t break case c no break default t c break printf c c fflush stdout paragraph false mangenerator writechar firstcol firstcol void man generator start member doc const char const char const char const char if first col t endl t ss first col false paragraph false mangenerator startmemberdoc firstcol firstcol void man generator end member doc bool t mangenerator endmemberdoc const char something to be done if config getbool man links return no the name of the link file is derived from the name of the anchor truncate after an optional qc string base name name int i base name find rev if i 1 base name base name right base name length i 1 remove dangerous characters and append suffix then add dir prefix qc string file name dir build file name base name q file linkfile file name only create file if it doesn t exist already if linkfile open io readonly if linkfile open io writeonly q text stream linkstream linkstream set device linkfile if qt version 200 linkstream set encoding q text stream latin1 endif linkstream so man get extension build file name man name endl linkfile close config_getbool man_links qcstring basename basename findrev basename basename basename qcstring filename buildfilename basename qfile filename io_readonly io_writeonly qtextstream setdevice qt_version setencoding qtextstream getextension buildfilename manname void man generator write start anno item const char const char const char const char mangenerator writestartannoitem void man generator start subsection if first col t endl t ss first col false paragraph false mangenerator startsubsection firstcol firstcol void man generator end subsection t mangenerator endsubsection void man generator start subsubsection if first col t endl t n ss first col false paragraph false mangenerator startsubsubsection firstcol firstcol void man generator end subsubsection t mangenerator endsubsubsection void man generator start desc list section types if first col t endl pp endl first col true paragraph true col 0 paragraph false start bold mangenerator startdesclist sectiontypes firstcol firstcol startbold const char const char title if first col t endl pp endl first col true paragraph true col 0 paragraph false start bold docify title end bold paragraph true firstcol firstcol startbold endbold void man generator end simple sect mangenerator endsimplesect void man generator start param list param list types const char title if first col t endl pp endl first col true paragraph true col 0 paragraph false start bold docify title end bold paragraph true mangenerator startparamlist paramlisttypes firstcol firstcol startbold endbold void man generator end param list mangenerator endparamlist void man generator write desc item if first col t endl if paragraph t in 1c endl t in 1c endl first col true paragraph false col 0 mangenerator writedescitem firstcol firstcol void man generator start section const char const char section info section type type if in header switch type case section info page start group header break case section info section start group header break case section info subsection start member header break case section info subsubsection start member header break case section info paragraph start member header break default assert 0 break mangenerator startsection sectioninfo sectiontype inheader sectioninfo startgroupheader sectioninfo startgroupheader sectioninfo startmemberheader sectioninfo startmemberheader sectioninfo startmemberheader void man generator end section const char section info section type type if in header switch type case section info page end group header break case section info section end group header break case section info subsection end member header break case section info subsubsection end member header break case section info paragraph end member header break default assert 0 break else t n first col true paragraph false in header false mangenerator endsection sectioninfo sectiontype inheader sectioninfo endgroupheader sectioninfo endgroupheader sectioninfo endmemberheader sectioninfo endmemberheader sectioninfo endmemberheader firstcol inheader void man generator write synopsis if first col t endl t sh synopsis n br n pp n first col true paragraph false mangenerator writesynopsis firstcol firstcol doc visitor docvisitor man m t t m ci ci m insidepre false m hide false m firstcol true m indent 0 docvisitor docvisitor_man m_t m_ci m_insidepre m_hide m_firstcol m_indent void man doc visitor visit doc word w if m hide return filter w word m firstcol false mandocvisitor docword m_hide m_firstcol void man doc visitor visit doc linked word w if m hide return m t fb filter w word m t fp m firstcol false mandocvisitor doclinkedword m_hide m_t m_t m_firstcol void man doc visitor visit doc white space w if m hide return if m insidepre m t w chars m firstcol w chars at w chars length 1 n else m t m firstcol false mandocvisitor docwhitespace m_hide m_insidepre m_t m_firstcol m_t m_firstcol void man doc visitor visit doc symbol s if m hide return switch s symbol case doc symbol b slash m t break case doc symbol at m t break case doc symbol less m t break case doc symbol greater m t break case doc symbol amp m t break case doc symbol dollar m t break case doc symbol hash m t break case doc symbol percent m t break case doc symbol copy m t c break case doc symbol tm m t tm break case doc symbol reg m t r break case doc symbol apos m t break case doc symbol quot m t break case doc symbol uml m t s letter 4 break case doc symbol acute m t s letter break case doc symbol grave m t s letter break case doc symbol circ m t s letter break case doc symbol slash m t s letter break todo implement this case doc symbol tilde m t s letter break case doc symbol szlig m t s break case doc symbol cedil m t s letter break case doc symbol ring m t s letter o break case doc symbol nbsp m t break default err error unknown symbol found n m firstcol false mandocvisitor docsymbol m_hide docsymbol bslash m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t m_firstcol void man doc visitor visit docurl u if m hide return m t u url m firstcol false mandocvisitor m_hide m_t m_firstcol void man doc visitor visit doc line break if m hide return m t endl br endl m firstcol true mandocvisitor doclinebreak m_hide m_t m_firstcol void man doc visitor visit doc hor ruler if m hide return if m firstcol m t endl m t pp endl m firstcol true mandocvisitor dochorruler m_hide m_firstcol m_t m_t m_firstcol void man doc visitor visit doc style change s if m hide return switch s style case doc style change bold if s enable m t fb else m t fp m firstcol false break case doc style change italic if s enable m t fi else m t fp m firstcol false break case doc style change code if s enable m t fc else m t fp m firstcol false break case doc style change subscript if s enable m t else m t m firstcol false break case doc style change superscript if s enable m t else m t m firstcol false break case doc style change center not supported break case doc style change small not supported break case doc style change preformatted if s enable if m firstcol m t endl m t pp endl m t nf endl m insidepre true else m insidepre false if m firstcol m t endl m t fi endl m t pp endl m firstcol true break case doc style change div html only break case doc style change span html only break mandocvisitor docstylechange m_hide docstylechange m_t m_t m_firstcol docstylechange m_t m_t m_firstcol docstylechange m_t m_t m_firstcol docstylechange m_t m_t m_firstcol docstylechange m_t m_t m_firstcol docstylechange docstylechange docstylechange m_firstcol m_t m_t m_t m_insidepre m_insidepre m_firstcol m_t m_t m_t m_firstcol docstylechange docstylechange void man doc visitor visit doc verbatim s if m hide return switch s type case doc verbatim code fall though if m firstcol m t endl m t pp endl m t nf endl parse code m ci s context s text latin1 s is example s example file if m firstcol m t endl m t fi endl m t pp endl m firstcol true break case doc verbatim verbatim if m firstcol m t endl m t pp endl m t nf endl m t s text if m firstcol m t endl m t fi endl m t pp endl m firstcol true break case doc verbatim man only m t s text break case doc verbatim html only case doc verbatim xml only case doc verbatim latex only case doc verbatim dot nothing break mandocvisitor docverbatim m_hide docverbatim m_firstcol m_t m_t m_t parsecode m_ci isexample examplefile m_firstcol m_t m_t m_t m_firstcol docverbatim m_firstcol m_t m_t m_t m_t m_firstcol m_t m_t m_t m_firstcol docverbatim manonly m_t docverbatim htmlonly docverbatim xmlonly docverbatim latexonly docverbatim void man doc visitor visit doc anchor no support for anchors in man pages mandocvisitor docanchor void man doc visitor visit doc include inc if m hide return switch inc type case doc include inc with lines if m firstcol m t endl m t pp endl m t nf endl q file info cfi inc file file def fd cfi dir path cfi file name parse code m ci inc context inc text latin1 inc is example inc example file fd if m firstcol m t endl m t fi endl m t pp endl m firstcol true break case doc include include if m firstcol m t endl m t pp endl m t nf endl parse code m ci inc context inc text latin1 inc is example inc example file if m firstcol m t endl m t fi endl m t pp endl m firstcol true break case doc include dont include break case doc include html include break case doc include verb include if m firstcol m t endl m t pp endl m t nf endl m t inc text if m firstcol m t endl m t fi endl m t pp endl m firstcol true break mandocvisitor docinclude m_hide docinclude incwithlines m_firstcol m_t m_t m_t qfileinfo filedef dirpath filename parsecode m_ci isexample examplefile m_firstcol m_t m_t m_t m_firstcol docinclude m_firstcol m_t m_t m_t parsecode m_ci isexample examplefile m_firstcol m_t m_t m_t m_firstcol docinclude dontinclude docinclude htmlinclude docinclude verbinclude m_firstcol m_t m_t m_t m_t m_firstcol m_t m_t m_t m_firstcol void man doc visitor visit doc inc operator op printf doc inc operator type d first d last d text s n op type op is first op is last op text data if op is first if m hide if m firstcol m t endl m t pp endl m t nf endl push enabled m hide true if op type doc inc operator skip pop enabled if m hide parse code m ci op context op text latin1 op is example op example file push enabled m hide true if op is last pop enabled if m hide if m firstcol m t endl m t fi endl m t pp endl m firstcol true else if m hide m t endl mandocvisitor docincoperator docincoperator isfirst islast isfirst m_hide m_firstcol m_t m_t m_t pushenabled m_hide docincoperator popenabled m_hide parsecode m_ci isexample examplefile pushenabled m_hide islast popenabled m_hide m_firstcol m_t m_t m_t m_firstcol m_hide m_t void man doc visitor visit doc formula f if m hide return m t f text mandocvisitor docformula m_hide m_t void man doc visitor visit doc index entry mandocvisitor docindexentry void man doc visitor visit pre doc auto list if m hide return m indent 2 mandocvisitor visitpre docautolist m_hide m_indent void man doc visitor visit post doc auto list if m hide return m indent 2 m t pp endl mandocvisitor visitpost docautolist m_hide m_indent m_t void man doc visitor visit pre doc auto list item li if m hide return qc string ws ws fill m indent 2 if m firstcol m t endl m t ip ws if doc auto list li parent is enum list m t li item number m indent 2 else bullet list m t bu m indent m t endl m firstcol true mandocvisitor visitpre docautolistitem m_hide qcstring m_indent m_firstcol m_t m_t docautolist isenumlist m_t itemnumber m_indent m_t m_indent m_t m_firstcol void man doc visitor visit post doc auto list item if m hide return m t endl m firstcol true mandocvisitor visitpost docautolistitem m_hide m_t m_firstcol void man doc visitor visit pre doc para mandocvisitor visitpre docpara void man doc visitor visit post doc para p if m hide return if p is last omit p for last paragraph p parent and for parameter sections p parent kind doc node kind paramsect if m firstcol m t endl m t pp endl m firstcol true mandocvisitor visitpost docpara m_hide islast docnode kind_paramsect m_firstcol m_t m_t m_firstcol void man doc visitor visit pre doc root mandocvisitor visitpre docroot void man doc visitor visit post doc root mandocvisitor visitpost docroot void man doc visitor visit pre doc simple sect s if m hide return if m firstcol m t endl m t pp endl m t fb switch s type case doc simple sect see m t the translator tr see also break case doc simple sect return m t the translator tr returns break case doc simple sect author m t the translator tr author true true break case doc simple sect authors m t the translator tr author true false break case doc simple sect version m t the translator tr version break case doc simple sect since m t the translator tr since break case doc simple sect date m t the translator tr date break case doc simple sect note m t the translator tr note break case doc simple sect warning m t the translator tr warning break case doc simple sect pre m t the translator tr precondition break case doc simple sect post m t the translator tr postcondition break case doc simple sect invar m t the translator tr invariant break case doc simple sect remark m t the translator tr remarks break case doc simple sect attention m t the translator tr attention break case doc simple sect user break case doc simple sect rcs break case doc simple sect unknown break special case 1 user defined title if s type doc simple sect user s type doc simple sect rcs m t fp endl m t rs 4 endl mandocvisitor visitpre docsimplesect m_hide m_firstcol m_t m_t m_t docsimplesect m_t thetranslator trseealso docsimplesect m_t thetranslator trreturns docsimplesect m_t thetranslator trauthor docsimplesect m_t thetranslator trauthor docsimplesect m_t thetranslator trversion docsimplesect m_t thetranslator trsince docsimplesect m_t thetranslator trdate docsimplesect m_t thetranslator trnote docsimplesect m_t thetranslator trwarning docsimplesect m_t thetranslator trprecondition docsimplesect m_t thetranslator trpostcondition docsimplesect m_t thetranslator trinvariant docsimplesect m_t thetranslator trremarks docsimplesect m_t thetranslator trattention docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect m_t m_t void man doc visitor visit post doc simple sect if m hide return if m firstcol m t endl m t re endl m t pp endl m firstcol true mandocvisitor visitpost docsimplesect m_hide m_firstcol m_t m_t m_t m_firstcol void man doc visitor visit pre doc title mandocvisitor visitpre doctitle void man doc visitor visit post doc title if m hide return m t fp m t rs 4 endl mandocvisitor visitpost doctitle m_hide m_t m_t void man doc visitor visit pre doc simple list if m hide return m indent 2 if m firstcol m t endl m t pd 0 endl mandocvisitor visitpre docsimplelist m_hide m_indent m_firstcol m_t m_t void man doc visitor visit post doc simple list if m hide return m indent 2 m t pp endl mandocvisitor visitpost docsimplelist m_hide m_indent m_t void man doc visitor visit pre doc simple list item if m hide return qc string ws ws fill m indent 2 if m firstcol m t endl m t ip ws bu m indent endl m firstcol true mandocvisitor visitpre docsimplelistitem m_hide qcstring m_indent m_firstcol m_t m_t m_indent m_firstcol void man doc visitor visit post doc simple list item if m hide return m t endl m firstcol true mandocvisitor visitpost docsimplelistitem m_hide m_t m_firstcol void man doc visitor visit pre doc section s if m hide return if m firstcol m t endl if s level 1 m t sh else m t ss m t filter s title m t endl if s level 1 m t pp endl m firstcol true mandocvisitor visitpre docsection m_hide m_firstcol m_t m_t m_t m_t m_t m_t m_firstcol void man doc visitor visit post doc section mandocvisitor visitpost docsection void man doc visitor visit pre doc html list if m hide return m indent 2 if m firstcol m t endl m t pd 0 endl mandocvisitor visitpre dochtmllist m_hide m_indent m_firstcol m_t m_t void man doc visitor visit post doc html list if m hide return m indent 2 if m firstcol m t endl m t pp endl mandocvisitor visitpost dochtmllist m_hide m_indent m_firstcol m_t m_t void man doc visitor visit pre doc html list item li if m hide return qc string ws ws fill m indent 2 if m firstcol m t endl m t ip ws if doc html list li parent type doc html list ordered m t li item number m indent 2 else bullet list m t bu m indent m t endl m firstcol true mandocvisitor visitpre dochtmllistitem m_hide qcstring m_indent m_firstcol m_t m_t dochtmllist dochtmllist m_t itemnumber m_indent m_t m_indent m_t m_firstcol void man doc visitor visit post doc html list item if m hide return m t endl m firstcol true mandocvisitor visitpost dochtmllistitem m_hide m_t m_firstcol void man doc visitor visit pre doc html desc list mandocvisitor visitpre dochtmldesclist void man doc visitor visit post doc html desc list if m hide return if m firstcol m t endl m t pp endl m firstcol true mandocvisitor visitpost dochtmldesclist m_hide m_firstcol m_t m_t m_firstcol void man doc visitor visit pre doc html desc title if m hide return if m firstcol m t endl m t ip fb m firstcol false mandocvisitor visitpre dochtmldesctitle m_hide m_firstcol m_t m_t m_firstcol void man doc visitor visit post doc html desc title if m hide return m t fp 1c endl m firstcol true mandocvisitor visitpost dochtmldesctitle m_hide m_t m_firstcol void man doc visitor visit pre doc html desc data mandocvisitor visitpre dochtmldescdata void man doc visitor visit post doc html desc data mandocvisitor visitpost dochtmldescdata void man doc visitor visit pre doc html table mandocvisitor visitpre dochtmltable void man doc visitor visit post doc html table mandocvisitor visitpost dochtmltable void man doc visitor visit pre doc html caption mandocvisitor visitpre dochtmlcaption void man doc visitor visit post doc html caption mandocvisitor visitpost dochtmlcaption void man doc visitor visit pre doc html row mandocvisitor visitpre dochtmlrow void man doc visitor visit post doc html row mandocvisitor visitpost dochtmlrow void man doc visitor visit pre doc html cell mandocvisitor visitpre dochtmlcell void man doc visitor visit post doc html cell mandocvisitor visitpost dochtmlcell void man doc visitor visit pre doc internal if m hide return if m firstcol m t endl m t pp endl m t fb the translator tr for internal use only fp endl m t rs 4 endl mandocvisitor visitpre docinternal m_hide m_firstcol m_t m_t m_t thetranslator trforinternaluseonly m_t void man doc visitor visit post doc internal if m hide return if m firstcol m t endl m t re endl m t pp endl m firstcol true mandocvisitor visitpost docinternal m_hide m_firstcol m_t m_t m_t m_firstcol void man doc visitor visit pre doch ref if m hide return m t fc mandocvisitor visitpre dochref m_hide m_t void man doc visitor visit post doch ref if m hide return m t fp mandocvisitor visitpost dochref m_hide m_t void man doc visitor visit pre doc html header header if m hide return if m firstcol m t endl if header level 1 m t sh else m t ss m t mandocvisitor visitpre dochtmlheader m_hide m_firstcol m_t m_t m_t m_t void man doc visitor visit post doc html header header if m hide return m t endl if header level 1 m t pp endl m firstcol true mandocvisitor visitpost dochtmlheader m_hide m_t m_t m_firstcol void man doc visitor visit pre doc image mandocvisitor visitpre docimage void man doc visitor visit post doc image mandocvisitor visitpost docimage void man doc visitor visit pre doc dot file mandocvisitor visitpre docdotfile void man doc visitor visit post doc dot file mandocvisitor visitpost docdotfile void man doc visitor visit pre doc link if m hide return m t fb mandocvisitor visitpre doclink m_hide m_t void man doc visitor visit post doc link if m hide return m t fp mandocvisitor visitpost doclink m_hide m_t void man doc visitor visit pre doc ref ref if m hide return m t fb if ref has link text filter ref target title mandocvisitor visitpre docref m_hide m_t haslinktext targettitle void man doc visitor visit post doc ref if m hide return m t fp mandocvisitor visitpost docref m_hide m_t void man doc visitor visit pre doc sec ref item if m hide return qc string ws ws fill m indent 2 if m firstcol m t endl m t ip ws bu m indent endl m firstcol true mandocvisitor visitpre docsecrefitem m_hide qcstring m_indent m_firstcol m_t m_t m_indent m_firstcol void man doc visitor visit post doc sec ref item if m hide return m t endl m firstcol true mandocvisitor visitpost docsecrefitem m_hide m_t m_firstcol void man doc visitor visit pre doc sec ref list if m hide return m indent 2 mandocvisitor visitpre docsecreflist m_hide m_indent void man doc visitor visit post doc sec ref list if m hide return m indent 2 if m firstcol m t endl m t pp endl mandocvisitor visitpost docsecreflist m_hide m_indent m_firstcol m_t m_t void man doc visitor visit pre doc param sect s if m hide return if m firstcol m t endl m t pp endl m t fb switch s type case doc param sect param m t the translator tr parameters break case doc param sect ret val m t the translator tr return values break case doc param sect exception m t the translator tr exceptions break default assert 0 m t fp endl m t rs 4 endl mandocvisitor visitpre docparamsect m_hide m_firstcol m_t m_t m_t docparamsect m_t thetranslator trparameters docparamsect retval m_t thetranslator trreturnvalues docparamsect m_t thetranslator trexceptions m_t m_t void man doc visitor visit post doc param sect if m hide return if m firstcol m t endl m t re endl m t pp endl m firstcol true mandocvisitor visitpost docparamsect m_hide m_firstcol m_t m_t m_t m_firstcol void man doc visitor visit pre doc param list pl if m hide return m t fi q str list iterator li pl parameters const char s q list iterator doc node li pl parameters doc node param bool first true for li to first param li current li if first m t else first false if param kind doc node kind word visit doc word param else if param kind doc node kind linkedword visit doc linked word param m t fp mandocvisitor visitpre docparamlist m_hide m_t qstrlistiterator qlistiterator docnode docnode tofirst m_t docnode kind_word docword docnode kind_linkedword doclinkedword m_t void man doc visitor visit post doc param list pl if m hide return if pl is last if m firstcol m t endl m t br endl mandocvisitor visitpost docparamlist m_hide islast m_firstcol m_t m_t void man doc visitor visit pre docx ref item x if m hide return if m firstcol m t endl m t pp endl m t fb filter x title m t fp endl m t rs 4 endl mandocvisitor visitpre docxrefitem m_hide m_firstcol m_t m_t m_t m_t m_t void man doc visitor visit post docx ref item if m hide return if m firstcol m t endl m t re endl m t pp endl m firstcol true mandocvisitor visitpost docxrefitem m_hide m_firstcol m_t m_t m_t m_firstcol void man doc visitor visit pre doc internal ref if m hide return m t fb mandocvisitor visitpre docinternalref m_hide m_t void man doc visitor visit post doc internal ref if m hide return m t fp mandocvisitor visitpost docinternalref m_hide m_t void man doc visitor visit pre doc copy mandocvisitor visitpre doccopy void man doc visitor visit post doc copy mandocvisitor visitpost doccopy void man doc visitor visit pre doc text mandocvisitor visitpre doctext void man doc visitor visit post doc text mandocvisitor visitpost doctext void man doc visitor filter const char str if str const char p str char c 0 while c p switch c case m t break case c fall through default m t c break mandocvisitor m_t m_t void man doc visitor push enabled m enabled push new bool m hide mandocvisitor pushenabled m_enabled m_hide void man doc visitor pop enabled bool v m enabled pop assert v 0 m hide v delete v mandocvisitor popenabled m_enabled m_hide latex generator latex generator output generator dir config getstring latex output col 0 printf latex generator latex generator inside tabbing false n inside tabbing false first desc item true m indent 0 latexgenerator latexgenerator outputgenerator config_getstring latex_output latexgenerator latexgenerator insidetabbing insidetabbing firstdescitem m_indent latex generator latex generator latexgenerator latexgenerator void latex generator init qc string dir config getstring latex output q dir d dir if d exists d mkdir dir err could not create output directory s n dir data exit 1 qc string file name dir makefile q file file file name if file open io writeonly err could not open file s for writing n file name data exit 1 inserted by konno akihisa konno researchers jp 2002 03 05 qc string latex command config getstring latex cmd name qc string mkidx command config getstring makeindex cmd name end insertion by konno akihisa konno researchers jp 2002 03 05 q text stream t file if config getbool use pdflatex use plain old latex t all clean refman dvi endl endl ps refman ps endl endl pdf refman pdf endl endl ps 2on1 refman 2on1 ps endl endl pdf 2on1 refman 2on1 pdf endl endl refman ps refman dvi endl tdvips o refman ps refman dvi endl endl t refman pdf refman ps endl if defined msc ver ps2pdf bat does not work properly from a makefile using gnu make t tgswin32c q dnopause dbatch sdevice pdfwrite s output file refman pdf c save pop f refman ps endl endl else t tps2pdf refman ps refman pdf endl endl endif t refman dvi refman tex doxygen sty endl techo running latex endl t latex command refman tex endl techo running makeindex endl t mkidx command refman idx endl techo rerunning latex endl t latex command refman tex endl tlatex count 5 endl twhile egrep s rerun la tex to get cross references right refman log latex count gt 0 endl t do endl t echo rerunning latex endl t latex command refman tex endl t latex count expr latex count 1 endl t done endl endl refman 2on1 ps refman ps endl tpsnup 2 refman ps refman 2on1 ps endl endl refman 2on1 pdf refman 2on1 ps endl if defined msc ver ps2pdf bat does not work properly from a makefile using gnu make tgswin32c q dnopause dbatch sdevice pdfwrite s output file refman 2on1 pdf c save pop f refman 2on1 ps endl else tps2pdf refman 2on1 ps refman 2on1 pdf endl endif else use pdflatex for higher quality output t all clean refman pdf endl endl t refman pdf refman tex endl t tpdflatex refman tex endl t tmakeindex refman idx endl t tpdflatex refman tex endl endl tlatex count 5 endl twhile egrep s rerun la tex to get cross references right refman log latex count gt 0 endl t do endl t echo rerunning latex endl t pdflatex refman tex endl t latex count expr latex count 1 endl t done endl endl t endl clean endl trm f ps dvi aux toc idx ind ilg log out refman pdf endl create sub dirs d latexgenerator qcstring config_getstring latex_output qdir qcstring filename qfile filename io_writeonly filename qcstring latex_command config_getstring latex_cmd_name qcstring mkidx_command config_getstring makeindex_cmd_name qtextstream config_getbool use_pdflatex ps_2on1 refman_2on1 pdf_2on1 refman_2on1 _msc_ver soutputfile latex_command mkidx_command latex_command tlatex_count latex latex_count latex_command latex_count latex_count refman_2on1 refman_2on1 refman_2on1 refman_2on1 _msc_ver soutputfile refman_2on1 refman_2on1 refman_2on1 refman_2on1 tlatex_count latex latex_count latex_count latex_count createsubdirs void latex generator write style sheet file q file f q text stream t f if qt version 200 t set encoding q text stream latin1 endif write default style sheet part1 t qc string project name config getstring project name t the translator tr generated at date to string true project name t doxygen t the translator tr written by t dimitri van heesch copyright 1997 2005 write default style sheet part2 t t the translator tr generated at date to string true project name t doxygen t the translator tr written by t dimitri van heesch copyright 1997 2005 write default style sheet part3 t latexgenerator writestylesheetfile qfile qtextstream qt_version setencoding qtextstream writedefaultstylesheetpart1 qcstring projectname config_getstring project_name thetranslator trgeneratedat datetostring projectname thetranslator trwrittenby writedefaultstylesheetpart2 thetranslator trgeneratedat datetostring projectname thetranslator trwrittenby writedefaultstylesheetpart3 void latex generator write header file q file f q text stream t f write default header part1 t t your title here write default header part2 t t generated by write default header part3 t latexgenerator writeheaderfile qfile qtextstream writedefaultheaderpart1 writedefaultheaderpart2 writedefaultheaderpart3 void latex generator print doc doc node n latex doc visitor visitor new latex doc visitor t this inside tabbing n accept visitor delete visitor latexgenerator printdoc docnode latexdocvisitor latexdocvisitor insidetabbing void latex generator start file const char name const char const char qc string file name name rel path relative path to root file name if file name right 4 tex file name right 4 sty file name tex start plain file file name latexgenerator startfile qcstring filename relpath relativepathtoroot filename filename filename filename startplainfile filename void latex generator end file end plain file latexgenerator endfile endplainfile void latex generator start index section index sections is bool compact latex config getbool compact latex qc string latex header config getstring latex header switch is case is title page start if latex header is empty write default header part1 t else qc string header file to string latex header t substitute keywords header 0 break case is title page author if latex header is empty write default header part2 t break case is main page if compact latex t section else t chapter t introduction n break case is package index if compact latex t section else t chapter t package index n break case is module index if compact latex t section else t chapter t module index n break case is dir index if compact latex t section else t chapter t directory index n break case is namespace index if compact latex t section else t chapter t namespace index break case is class hierarchy index if compact latex t section else t chapter t hierarchical index n break case is compound index if compact latex t section else t chapter t annotated compound index n break case is file index if compact latex t section else t chapter t annotated file index n break case is page index if compact latex t section else t chapter t annotated page index n break case is module documentation groups dict iterator gli doxygen groups dict group def gd bool found false for gli to first gd gli current found gli if gd is reference if compact latex t section else t chapter t module documentation n found true break case is dir documentation s dict dir def iterator dli doxygen directories dir def dd bool found false for dli to first dd dli current found dli if dd is linkable in project if compact latex t section else t chapter t module documentation n found true break case is namespace documentation namespaces dict iterator nli doxygen namespaces dict namespace def nd bool found false for nli to first nd nli current found nli if nd is linkable in project if compact latex t section else t chapter t namespace documentation n found true break case is class documentation classs dict iterator cli doxygen classs dict class def cd 0 bool found false for cli to first cd cli current found cli if cd is linkable in project cd template master 0 if compact latex t section else t chapter t compound documentation n found true break case is file documentation bool is first true file name fn doxygen input name list first while fn file def fd fn first while fd if fd is linkable in project if is first if compact latex t section else t chapter t file documentation n is first false break fd fn next fn doxygen input name list next break case is example documentation if compact latex t section else t chapter t example documentation n break case is page documentation if compact latex t section else t chapter t page documentation n break case is end index break latexgenerator startindexsection indexsections compactlatex config_getbool compact_latex qcstring latexheader config_getstring latex_header istitlepagestart latexheader isempty writedefaultheaderpart1 qcstring filetostring latexheader substitutekeywords istitlepageauthor latexheader isempty writedefaultheaderpart2 ismainpage compactlatex ispackageindex compactlatex ismoduleindex compactlatex isdirindex compactlatex isnamespaceindex compactlatex isclasshierarchyindex compactlatex iscompoundindex compactlatex isfileindex compactlatex ispageindex compactlatex ismoduledocumentation groupsdict groupsdict groupdef tofirst isreference compactlatex isdirdocumentation sdict dirdef dirdef tofirst islinkableinproject compactlatex isnamespacedocumentation namespacesdict namespacesdict namespacedef tofirst islinkableinproject compactlatex isclassdocumentation classsdict classsdict classdef tofirst islinkableinproject templatemaster compactlatex isfiledocumentation isfirst filename inputnamelist filedef islinkableinproject isfirst compactlatex isfirst inputnamelist isexampledocumentation compactlatex ispagedocumentation compactlatex isendindex void latex generator end index section index sections is bool compact latex config getbool compact latex qc string latex header config getstring latex header switch is case is title page start break case is title page author if latex header is empty write default header part3 t break case is main page qc string index name index if config getbool generate treeview index name main t n label index if config getbool pdf hyperlinks t hypertarget index t input index name n break case is module index t n input modules n break case is dir index t n input dirs n break case is namespace index t n input namespaces n break case is class hierarchy index t n input hierarchy n break case is compound index t n input annotated n break case is file index t n input files n break case is page index t n input pages n break case is module documentation groups dict iterator gli doxygen groups dict group def gd bool found false for gli to first gd gli current found gli if gd is reference t n input gd get output file base n found true for gd gli current gli if gd is reference if compact latex t input else t include t gd get output file base n break case is dir documentation s dict dir def iterator dli doxygen directories dir def dd bool found false for dli to first dd dli current found dli if dd is linkable in project t n input dd get output file base n found true for dd dli current dli if dd is linkable in project if compact latex t input else t include t dd get output file base n break case is namespace documentation namespaces dict iterator nli doxygen namespaces dict namespace def nd bool found false for nli to first nd nli current found nli if nd is linkable in project t n input nd get output file base n found true while nd nli current if nd is linkable in project if compact latex t input else t include t nd get output file base n nli break case is class documentation classs dict iterator cli doxygen classs dict class def cd 0 bool found false for cli to first cd cli current found cli if cd is linkable in project cd template master 0 t n input cd get output file base n found true for cd cli current cli if cd is linkable in project cd template master 0 if compact latex t input else t include t cd get output file base n break case is file documentation bool is first true file name fn doxygen input name list first while fn file def fd fn first while fd if fd is linkable in project if is first t n input fd get output file base n is first false else if compact latex t input else t include t fd get output file base n fd fn next fn doxygen input name list next break case is example documentation t n pages dict iterator pdi doxygen examples dict page def pd pdi to first if pd t input pd get output file base n for pdi pd pdi current pdi if compact latex t input else t include t pd get output file base n break case is page documentation t n pages dict iterator pdi doxygen pages dict page def pd pdi to first bool first true for pdi to first pd pdi current pdi if pd get group def pd is reference if compact latex first t input else t include t pd get output file base n first false break case is end index t printindex n t end document n break latexgenerator endindexsection indexsections compactlatex config_getbool compact_latex qcstring latexheader config_getstring latex_header istitlepagestart istitlepageauthor latexheader isempty writedefaultheaderpart3 ismainpage qcstring indexname config_getbool generate_treeview indexname config_getbool pdf_hyperlinks indexname ismoduleindex isdirindex isnamespaceindex isclasshierarchyindex iscompoundindex isfileindex ispageindex ismoduledocumentation groupsdict groupsdict groupdef tofirst isreference getoutputfilebase isreference compactlatex getoutputfilebase isdirdocumentation sdict dirdef dirdef tofirst islinkableinproject getoutputfilebase islinkableinproject compactlatex getoutputfilebase isnamespacedocumentation namespacesdict namespacesdict namespacedef tofirst islinkableinproject getoutputfilebase islinkableinproject compactlatex getoutputfilebase isclassdocumentation classsdict classsdict classdef tofirst islinkableinproject templatemaster getoutputfilebase islinkableinproject templatemaster compactlatex getoutputfilebase isfiledocumentation isfirst filename inputnamelist filedef islinkableinproject isfirst getoutputfilebase isfirst compactlatex getoutputfilebase inputnamelist isexampledocumentation pagesdict examplesdict pagedef tofirst getoutputfilebase compactlatex getoutputfilebase ispagedocumentation pagesdict pagesdict pagedef tofirst tofirst getgroupdef isreference compactlatex getoutputfilebase isendindex void latex generator start project number t 1ex large latexgenerator startprojectnumber void latex generator write style info int part switch part case 0 qc string pname config getstring project name strip white space start plain file doxygen sty write default style sheet part1 t break case 1 case 3 t doxygen break case 2 t dimitri van heesch copyright 1997 2005 t n write default style sheet part2 t break case 4 t dimitri van heesch copyright 1997 2005 write default style sheet part3 t end plain file break latexgenerator writestyleinfo qcstring config_getstring project_name stripwhitespace startplainfile writedefaultstylesheetpart1 writedefaultstylesheetpart2 writedefaultstylesheetpart3 endplainfile void latex generator start title head const char file name if config getbool pdf hyperlinks file name t hypertarget strip path file name endl if config getbool compact latex t subsection else t section latexgenerator starttitlehead filename config_getbool pdf_hyperlinks filename strippath filename config_getbool compact_latex void latex generator start title if config getbool compact latex t subsection else t section latexgenerator starttitle config_getbool compact_latex void latex generator end title head const char file name const char name t endl if name t label file name index name escape make index chars this t name t endl if config getbool pdf hyperlinks file name t endl latexgenerator endtitlehead filename filename escapemakeindexchars config_getbool pdf_hyperlinks filename void latex generator new paragraph t endl endl latexgenerator newparagraph void latex generator write string const char text t text latexgenerator writestring void latex generator start index key t item contentsline section latexgenerator startindexkey void latex generator end index key latexgenerator endindexkey void latex generator start index value bool has brief t if has brief t latexgenerator startindexvalue hasbrief hasbrief void latex generator end index value const char name bool has brief if has brief t t pageref name endl latexgenerator endindexvalue hasbrief hasbrief const char name t item if ref fn t contentsline section docify name t pageref fn endl else docify name void latex generator docify const char str filter latex string t str inside tabbing false latexgenerator filterlatexstring insidetabbing void latex generator codify const char str static bool is japanese the translator id language japanese the translator id language japanese en if str const char p str char c int spaces to next tab stop int tab size config getint tab size while p static bool multi byte false c p if is japanese if multi byte t char c multi byte false continue if uchar c 0x80 char in range 0x80 0xff t char c multi byte true continue switch c case 0x0c break remove l case t spaces to next tab stop tab size col tab size t spaces left spaces to next tab stop col spaces to next tab stop break case n t n col 0 break default t c col break latexgenerator isjapanese thetranslator idlanguage thetranslator idlanguage spacestonexttabstop tabsize config_getint tab_size multibyte isjapanese multibyte multibyte multibyte spacestonexttabstop tabsize tabsize spacestonexttabstop spacestonexttabstop const char anchor const char text if ref config getbool pdf hyperlinks t hyperlink if f t strip path f if f anchor t if anchor t anchor t docify text t else t bf docify text t config_getbool pdf_hyperlinks strippath _ const char const char name t name col strlen name void latex generator start text link const char f const char anchor if config getbool pdf hyperlinks t hyperlink if f t strip path f if anchor t anchor t else t bf latexgenerator starttextlink config_getbool pdf_hyperlinks strippath _ void latex generator end text link t latexgenerator endtextlink void latex generator start html link const char url if config getbool pdf hyperlinks t href t url t t tt latexgenerator starthtmllink config_getbool pdf_hyperlinks void latex generator end html link t latexgenerator endhtmllink void latex generator start group header if config getbool compact latex t subsubsection else t subsection latexgenerator startgroupheader config_getbool compact_latex void latex generator end group header t endl latexgenerator endgroupheader void latex generator start member header if config getbool compact latex t subsubsection else t subsection latexgenerator startmemberheader config_getbool compact_latex void latex generator end member header t endl latexgenerator endmemberheader void latex generator start member list if inside tabbing t begin compact itemize endl latexgenerator startmemberlist insidetabbing compactitemize void latex generator end member list printf latex generator end member list d n inside tabbing if inside tabbing t end compact itemize endl latexgenerator endmemberlist latexgenerator endmemberlist insidetabbing insidetabbing compactitemize void latex generator start anon type scope int indent if indent 0 t begin tabbing endl t xx xx xx xx xx xx xx xx xx kill endl printf latex generator start member item inside tabbing true n inside tabbing true latexgenerator startanontypescope latexgenerator startmemberitem insidetabbing insidetabbing void latex generator end anon type scope int indent if indent 0 t endl end tabbing inside tabbing false latexgenerator endanontypescope insidetabbing void latex generator start member item int printf latex generator start member item d n ann type if inside tabbing t item endl latexgenerator startmemberitem latexgenerator startmemberitem anntype insidetabbing void latex generator end member item if inside tabbing t t endl latexgenerator endmemberitem insidetabbing void latex generator start member group header bool has header if has header t begin indent t bf latexgenerator startmembergroupheader hasheader hasheader void latex generator end member group header t par endl latexgenerator endmembergroupheader void latex generator start member group docs t em latexgenerator startmembergroupdocs void latex generator end member group docs t latexgenerator endmembergroupdocs void latex generator start member group latexgenerator startmembergroup void latex generator end member group bool has header if has header t end indent t endl latexgenerator endmembergroup hasheader hasheader void latex generator write anchor const char f name const char name printf latex generator write anchor s s n f name name t label name endl if f name config getbool pdf hyperlinks t hypertarget strip path f name name endl latexgenerator writeanchor fname latexgenerator writeanchor fname fname config_getbool pdf_hyperlinks strippath fname _ void latex generator start description t begin description endl latexgenerator startdescription void latex generator end description t end description endl first desc item true latexgenerator enddescription firstdescitem void latex generator start desc item first desc item true t item latexgenerator startdescitem firstdescitem void latex generator end desc item if first desc item t endl first desc item false else line break latexgenerator enddescitem firstdescitem firstdescitem linebreak const char if memname memname 0 t index if clname t clname docify clname t t escape label name memname escape make index chars this t memname t endl t index escape label name memname escape make index chars this t memname t if clname t clname docify clname t t endl if config getbool compact latex t paragraph else t subsubsection if config getbool pdf hyperlinks memname t escape make index chars this t memname filter title title t t setlength rightskip 0pt plus 5cm escapelabelname escapemakeindexchars escapelabelname escapemakeindexchars config_getbool compact_latex config_getbool pdf_hyperlinks escapemakeindexchars filtertitle void latex generator end member doc bool t if config getbool compact latex t hfill latexgenerator endmemberdoc config_getbool compact_latex const char if config getbool pdf hyperlinks t hypertarget if f name t strip path f name if anchor t anchor t endl config_getbool pdf_hyperlinks fname strippath fname _ void latex generator end doxy anchor const char f name const char anchor if config getbool pdf hyperlinks t endl t label if f name t f name if anchor t anchor t endl latexgenerator enddoxyanchor fname config_getbool pdf_hyperlinks fname fname _ void latex generator write char char c char cs 2 cs 0 c cs 1 0 docify cs latexgenerator writechar const char path const char name t item contentsline section bf if path docify path docify name t void latex generator write end anno item const char name t pageref name endl latexgenerator writeendannoitem void latex generator start member description if inside tabbing t begin compact list small item em else for int i 0 i m indent 1 i t t em latexgenerator startmemberdescription insidetabbing compactlist m_indent void latex generator end member description if inside tabbing t item end compact list else t m indent 0 latexgenerator endmemberdescription insidetabbing compactlist m_indent const char anchor const char title t begin desc n item if file write object link 0 file anchor title else docify title t writeobjectlink void latex generator end simple sect t end desc endl latexgenerator endsimplesect void latex generator start param list param list types const char title t begin desc n item docify title t latexgenerator startparamlist paramlisttypes void latex generator end param list t end desc endl latexgenerator endparamlist void latex generator start section const char lab const char section info section type type if config getbool pdf hyperlinks t hypertarget strip path lab t if config getbool compact latex switch type case section info page t subsection break case section info section t subsubsection break case section info subsection t paragraph break case section info subsubsection t subparagraph break case section info paragraph t subparagraph break default assert 0 break t else switch type case section info page t section break case section info section t subsection break case section info subsection t subsubsection break case section info subsubsection t paragraph break case section info paragraph t subparagraph break default assert 0 break t latexgenerator startsection sectioninfo sectiontype config_getbool pdf_hyperlinks strippath config_getbool compact_latex sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo sectioninfo void latex generator end section const char lab section info section type t label lab endl latexgenerator endsection sectioninfo sectiontype void latex generator add index item const char s1 const char s2 if s1 t index escape label name s1 escape make index chars this t s1 t if s2 t escape label name s2 escape make index chars this t s2 t t latexgenerator addindexitem escapelabelname escapemakeindexchars escapelabelname escapemakeindexchars void latex generator start class diagram if config getbool compact latex t subsubsection else t subsection t latexgenerator startclassdiagram config_getbool compact_latex const char file name const char d write figure t dir file name filename writefigure filename void latex generator start page ref t rm latexgenerator startpageref void latex generator end page ref const char clname const char anchor t pageref if clname t clname if anchor t anchor t latexgenerator endpageref _ void latex generator write non breakable space int if inside tabbing t m indent else t latexgenerator writenonbreakablespace insidetabbing m_indent void latex generator start dot graph latexgenerator startdotgraph void latex generator end dot graph dot class graph g g write graph t eps config getstring latex output rel path latexgenerator enddotgraph dotclassgraph writegraph config_getstring latex_output relpath void latex generator start incl dep graph latexgenerator startincldepgraph void latex generator end incl dep graph dot incl dep graph g g write graph t eps config getstring latex output rel path latexgenerator endincldepgraph dotincldepgraph writegraph config_getstring latex_output relpath void latex generator start call graph latexgenerator startcallgraph void latex generator start group collaboration latexgenerator startgroupcollaboration void latex generator end group collaboration dot group collaboration g g write graph t eps config getstring latex output rel path latexgenerator endgroupcollaboration dotgroupcollaboration writegraph config_getstring latex_output relpath void latex generator end call graph dot call graph g g write graph t eps config getstring latex output rel path latexgenerator endcallgraph dotcallgraph writegraph config_getstring latex_output relpath void latex generator start dir dep graph latexgenerator startdirdepgraph void latex generator end dir dep graph dot dir deps g g write graph t eps config getstring latex output rel path latexgenerator enddirdepgraph dotdirdeps writegraph config_getstring latex_output relpath doc visitor docvisitor latex m t t m ci ci m insidepre false m insideitem false m hide false m insidetabbing inside tabbing docvisitor docvisitor_latex m_t m_ci m_insidepre m_insideitem m_hide m_insidetabbing insidetabbing void latex doc visitor visit doc word w if m hide return filter w word latexdocvisitor docword m_hide void latex doc visitor visit doc linked word w if m hide return start link w ref w file w anchor filter w word end link w ref w file w anchor latexdocvisitor doclinkedword m_hide startlink endlink void latex doc visitor visit doc white space w if m hide return if m insidepre m t w chars else m t latexdocvisitor docwhitespace m_hide m_insidepre m_t m_t void latex doc visitor visit doc symbol s if m hide return switch s symbol case doc symbol b slash m t backslash break case doc symbol at m t break case doc symbol less if m insidepre m t else m t break case doc symbol greater if m insidepre m t else m t break case doc symbol amp m t break case doc symbol dollar m t break case doc symbol hash m t break case doc symbol percent m t break case doc symbol copy m t copyright break case doc symbol tm m t texttrademark break case doc symbol reg m t textregistered break case doc symbol apos m t break case doc symbol quot m t break case doc symbol uml if s letter i m t i else m t s letter break case doc symbol acute if s letter i m t i else m t s letter break case doc symbol grave if s letter i m t i else m t s letter break case doc symbol circ if s letter i m t i else m t s letter break case doc symbol slash if tolower s letter o m t s letter else m t s letter break case doc symbol tilde m t s letter break case doc symbol szlig m t s break case doc symbol cedil m t c s letter break case doc symbol ring m t s letter s letter break case doc symbol nbsp m t break default err error unknown symbol found n latexdocvisitor docsymbol m_hide docsymbol bslash m_t docsymbol m_t docsymbol m_insidepre m_t m_t docsymbol m_insidepre m_t m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t m_t docsymbol m_t m_t docsymbol m_t m_t docsymbol m_t m_t docsymbol m_t m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t docsymbol m_t void latex doc visitor visit docurl u if m hide return if config getbool pdf hyperlinks m t href if u is email m t mailto m t u url m t tt filter u url m t latexdocvisitor m_hide config_getbool pdf_hyperlinks m_t isemail m_t m_t m_t m_t void latex doc visitor visit doc line break if m hide return m t par n latexdocvisitor doclinebreak m_hide m_t void latex doc visitor visit doc hor ruler if m hide return m t n n latexdocvisitor dochorruler m_hide m_t void latex doc visitor visit doc style change s if m hide return switch s style case doc style change bold if s enable m t bf else m t break case doc style change italic if s enable m t em else m t break case doc style change code if s enable m t tt else m t break case doc style change subscript if s enable m t mbox else m t break case doc style change superscript if s enable m t mbox else m t break case doc style change center if s enable m t begin center else m t end center break case doc style change small if s enable m t footnotesize else m t normalsize break case doc style change preformatted if s enable m t small begin alltt m insidepre true else m insidepre false m t end alltt normalsize endl break case doc style change div html only break case doc style change span html only break latexdocvisitor docstylechange m_hide docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t _ m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_t docstylechange m_t m_insidepre m_insidepre m_t docstylechange docstylechange void latex doc visitor visit doc verbatim s if m hide return switch s type case doc verbatim code m t n n footnotesize begin verbatim parse code m ci s context s text latin1 s is example s example file m t end verbatim n normalsize endl break case doc verbatim verbatim m t n n footnotesize begin verbatim m t s text m t end verbatim n normalsize endl break case doc verbatim html only case doc verbatim xml only case doc verbatim man only nothing break case doc verbatim latex only m t s text break case doc verbatim dot static int dotindex 1 qc string file name 4096 file name sprintf s d config getstring latex output inline dotgraph data dotindex q file file file name if file open io writeonly err could not open file s for writing n file name data file write block s text s text length file close m t begin center n start dot file file name false end dot file false m t end center n file remove break latexdocvisitor docverbatim m_hide docverbatim m_t parsecode m_ci isexample examplefile m_t docverbatim m_t m_t m_t docverbatim htmlonly docverbatim xmlonly docverbatim manonly docverbatim latexonly m_t docverbatim qcstring filename filename config_getstring latex_output inline_dotgraph_ qfile filename io_writeonly filename writeblock m_t startdotfile filename enddotfile m_t void latex doc visitor visit doc anchor anc if m hide return m t label anc file anc anchor endl if anc file is empty config getbool pdf hyperlinks m t hypertarget anc file anc anchor endl latexdocvisitor docanchor m_hide m_t _ isempty config_getbool pdf_hyperlinks m_t _ void latex doc visitor visit doc include inc if m hide return switch inc type case doc include inc with lines m t n n footnotesize begin verbatim q file info cfi inc file file def fd cfi dir path cfi file name parse code m ci inc context inc text latin1 inc is example inc example file fd m t end verbatim n normalsize endl break case doc include include m t n n footnotesize begin verbatim parse code m ci inc context inc text latin1 inc is example inc example file m t end verbatim n normalsize endl break case doc include dont include break case doc include html include break case doc include verb include m t n n footnotesize begin verbatim m t inc text m t end verbatim n normalsize endl break latexdocvisitor docinclude m_hide docinclude incwithlines m_t qfileinfo filedef dirpath filename parsecode m_ci isexample examplefile m_t docinclude m_t parsecode m_ci isexample examplefile m_t docinclude dontinclude docinclude htmlinclude docinclude verbinclude m_t m_t m_t void latex doc visitor visit doc inc operator op printf doc inc operator type d first d last d text s n op type op is first op is last op text data if op is first if m hide m t n n footnotesize begin verbatim push enabled m hide true if op type doc inc operator skip pop enabled if m hide parse code m ci op context op text latin1 op is example op example file push enabled m hide true if op is last pop enabled if m hide m t end verbatim n normalsize endl else if m hide m t endl latexdocvisitor docincoperator docincoperator isfirst islast isfirst m_hide m_t pushenabled m_hide docincoperator popenabled m_hide parsecode m_ci isexample examplefile pushenabled m_hide islast popenabled m_hide m_t m_hide m_t void latex doc visitor visit doc formula f if m hide return m t f text latexdocvisitor docformula m_hide m_t void latex doc visitor visit doc index entry i if m hide return m t index escape label name i entry escape make index chars i entry m t latexdocvisitor docindexentry m_hide m_t escapelabelname escapemakeindexchars m_t void latex doc visitor visit pre doc auto list l if m hide return if l is enum list m t begin enumerate endl else m t begin itemize endl latexdocvisitor visitpre docautolist m_hide isenumlist m_t m_t void latex doc visitor visit post doc auto list l if m hide return if l is enum list m t end enumerate endl else m t end itemize endl latexdocvisitor visitpost docautolist m_hide isenumlist m_t m_t void latex doc visitor visit pre doc auto list item if m hide return m t item latexdocvisitor visitpre docautolistitem m_hide m_t void latex doc visitor visit post doc auto list item latexdocvisitor visitpost docautolistitem void latex doc visitor visit pre doc para latexdocvisitor visitpre docpara void latex doc visitor visit post doc para p if m hide return if p is last omit p for last paragraph p parent and for parameter sections p parent kind doc node kind paramsect m t endl endl latexdocvisitor visitpost docpara m_hide islast docnode kind_paramsect m_t void latex doc visitor visit pre doc root latexdocvisitor visitpre docroot void latex doc visitor visit post doc root latexdocvisitor visitpost docroot void latex doc visitor visit pre doc simple sect s if m hide return m t begin desc n item switch s type case doc simple sect see filter the translator tr see also break case doc simple sect return filter the translator tr returns break case doc simple sect author filter the translator tr author true true break case doc simple sect authors filter the translator tr author true false break case doc simple sect version filter the translator tr version break case doc simple sect since filter the translator tr since break case doc simple sect date filter the translator tr date break case doc simple sect note filter the translator tr note break case doc simple sect warning filter the translator tr warning break case doc simple sect pre filter the translator tr precondition break case doc simple sect post filter the translator tr postcondition break case doc simple sect invar filter the translator tr invariant break case doc simple sect remark filter the translator tr remarks break case doc simple sect attention filter the translator tr attention break case doc simple sect user break case doc simple sect rcs break case doc simple sect unknown break special case 1 user defined title if s type doc simple sect user s type doc simple sect rcs m t else m insideitem true latexdocvisitor visitpre docsimplesect m_hide m_t docsimplesect thetranslator trseealso docsimplesect thetranslator trreturns docsimplesect thetranslator trauthor docsimplesect thetranslator trauthor docsimplesect thetranslator trversion docsimplesect thetranslator trsince docsimplesect thetranslator trdate docsimplesect thetranslator trnote docsimplesect thetranslator trwarning docsimplesect thetranslator trprecondition docsimplesect thetranslator trpostcondition docsimplesect thetranslator trinvariant docsimplesect thetranslator trremarks docsimplesect thetranslator trattention docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect m_t m_insideitem void latex doc visitor visit post doc simple sect if m hide return m t end desc endl latexdocvisitor visitpost docsimplesect m_hide m_t void latex doc visitor visit pre doc title latexdocvisitor visitpre doctitle void latex doc visitor visit post doc title if m hide return m insideitem false m t latexdocvisitor visitpost doctitle m_hide m_insideitem m_t void latex doc visitor visit pre doc simple list if m hide return m t begin itemize endl latexdocvisitor visitpre docsimplelist m_hide m_t void latex doc visitor visit post doc simple list if m hide return m t end itemize endl latexdocvisitor visitpost docsimplelist m_hide m_t void latex doc visitor visit pre doc simple list item if m hide return m t item latexdocvisitor visitpre docsimplelistitem m_hide m_t void latex doc visitor visit post doc simple list item latexdocvisitor visitpost docsimplelistitem void latex doc visitor visit pre doc section s if m hide return if config getbool pdf hyperlinks m t hypertarget s file s anchor m t get section name s level filter s title m t label s file s anchor endl latexdocvisitor visitpre docsection m_hide config_getbool pdf_hyperlinks m_t _ m_t getsectionname m_t _ void latex doc visitor visit post doc section latexdocvisitor visitpost docsection void latex doc visitor visit pre doc html list s if m hide return if s type doc html list ordered m t begin enumerate endl else m t begin itemize endl latexdocvisitor visitpre dochtmllist m_hide dochtmllist m_t m_t void latex doc visitor visit post doc html list s if m hide return if s type doc html list ordered m t end enumerate endl else m t end itemize endl latexdocvisitor visitpost dochtmllist m_hide dochtmllist m_t m_t void latex doc visitor visit pre doc html list item if m hide return m t item latexdocvisitor visitpre dochtmllistitem m_hide m_t void latex doc visitor visit post doc html list item latexdocvisitor visitpost dochtmllistitem void latex doc visitor visit pre doc html desc list if m hide return m t begin description endl latexdocvisitor visitpre dochtmldesclist m_hide m_t void latex doc visitor visit post doc html desc list if m hide return m t end description endl latexdocvisitor visitpost dochtmldesclist m_hide m_t void latex doc visitor visit pre doc html desc title if m hide return m t item m insideitem true latexdocvisitor visitpre dochtmldesctitle m_hide m_t m_insideitem void latex doc visitor visit post doc html desc title if m hide return m insideitem false m t latexdocvisitor visitpost dochtmldesctitle m_hide m_insideitem m_t void latex doc visitor visit pre doc html desc data latexdocvisitor visitpre dochtmldescdata void latex doc visitor visit post doc html desc data latexdocvisitor visitpost dochtmldescdata void latex doc visitor visit pre doc html table t if m hide return if t has caption m t begin table h m t begin tabularc t num cols n hline n latexdocvisitor visitpre dochtmltable m_hide hascaption m_t m_t numcols void latex doc visitor visit post doc html table t if m hide return if t has caption m t end table n else m t end tabularc n latexdocvisitor visitpost dochtmltable m_hide hascaption m_t m_t void latex doc visitor visit pre doc html caption if m hide return m t end tabularc n centering n caption latexdocvisitor visitpre dochtmlcaption m_hide m_t void latex doc visitor visit post doc html caption if m hide return m t n latexdocvisitor visitpost dochtmlcaption m_hide m_t void latex doc visitor visit pre doc html row latexdocvisitor visitpre dochtmlrow void latex doc visitor visit post doc html row if m hide return m t hline n latexdocvisitor visitpost dochtmlrow m_hide m_t void latex doc visitor visit pre doc html cell latexdocvisitor visitpre dochtmlcell void latex doc visitor visit post doc html cell c if m hide return if c is last m t latexdocvisitor visitpost dochtmlcell m_hide islast m_t void latex doc visitor visit pre doc internal if m hide return m t begin desc endl item filter the translator tr for internal use only m t endl latexdocvisitor visitpre docinternal m_hide m_t thetranslator trforinternaluseonly m_t void latex doc visitor visit post doc internal if m hide return m t end desc endl latexdocvisitor visitpost docinternal m_hide m_t void latex doc visitor visit pre doch ref href if m hide return if config getbool pdf hyperlinks m t href m t href url m t m t tt latexdocvisitor visitpre dochref m_hide config_getbool pdf_hyperlinks m_t m_t m_t m_t void latex doc visitor visit post doch ref if m hide return m t latexdocvisitor visitpost dochref m_hide m_t void latex doc visitor visit pre doc html header header if m hide return m t get section name header level latexdocvisitor visitpre dochtmlheader m_hide m_t getsectionname void latex doc visitor visit post doc html header if m hide return m t latexdocvisitor visitpost dochtmlheader m_hide m_t void latex doc visitor visit pre doc image img if img type doc image latex if m hide return if img has caption m t begin figure h endl m t begin center endl else m t mbox q string gfx name img name if gfx name right 4 eps gfx name right 4 pdf gfx name gfx name left gfx name length 4 m t includegraphics if img width is empty m t width img width else if img height is empty m t height img height m t gfx name if img has caption m t caption else other format skip push enabled m hide true latexdocvisitor visitpre docimage docimage m_hide hascaption m_t m_t m_t qstring gfxname gfxname gfxname gfxname gfxname gfxname m_t isempty m_t isempty m_t m_t gfxname hascaption m_t pushenabled m_hide void latex doc visitor visit post doc image img if img type doc image latex if m hide return m t endl end mbox or caption if img has caption m t end center endl m t end figure endl else other format pop enabled latexdocvisitor visitpost docimage docimage m_hide m_t hascaption m_t m_t popenabled void latex doc visitor visit pre doc dot file df if m hide return start dot file df file df width df height df has caption latexdocvisitor visitpre docdotfile m_hide startdotfile hascaption void latex doc visitor visit post doc dot file df if m hide return end dot file df has caption latexdocvisitor visitpost docdotfile m_hide enddotfile hascaption void latex doc visitor visit pre doc link lnk if m hide return start link lnk ref lnk file lnk anchor latexdocvisitor visitpre doclink m_hide startlink void latex doc visitor visit post doc link lnk if m hide return end link lnk ref lnk file lnk anchor latexdocvisitor visitpost doclink m_hide endlink void latex doc visitor visit pre doc ref ref if m hide return if ref file is empty start link ref ref ref file ref anchor if ref has link text filter ref target title latexdocvisitor visitpre docref m_hide isempty startlink haslinktext targettitle void latex doc visitor visit post doc ref ref if m hide return if ref file is empty end link ref ref ref file ref anchor latexdocvisitor visitpost docref m_hide isempty endlink void latex doc visitor visit pre doc sec ref item if m hide return m t item contentsline section latexdocvisitor visitpre docsecrefitem m_hide m_t void latex doc visitor visit post doc sec ref item ref if m hide return m t ref ref file ref anchor endl latexdocvisitor visitpost docsecrefitem m_hide m_t _ void latex doc visitor visit pre doc sec ref list if m hide return m t footnotesize endl m t begin multicols 2 endl m t begin compact list endl latexdocvisitor visitpre docsecreflist m_hide m_t m_t m_t compactlist void latex doc visitor visit post doc sec ref list if m hide return m t end compact list endl m t end multicols endl m t normalsize endl latexdocvisitor visitpost docsecreflist m_hide m_t compactlist m_t m_t void latex doc visitor visit pre doc param sect s if m hide return m t begin desc endl m t item switch s type case doc param sect param filter the translator tr parameters break case doc param sect ret val filter the translator tr return values break case doc param sect exception filter the translator tr exceptions break default assert 0 m t endl m t begin description endl latexdocvisitor visitpre docparamsect m_hide m_t m_t docparamsect thetranslator trparameters docparamsect retval thetranslator trreturnvalues docparamsect thetranslator trexceptions m_t m_t void latex doc visitor visit post doc param sect if m hide return m t end description endl m t end desc endl latexdocvisitor visitpost docparamsect m_hide m_t m_t void latex doc visitor visit pre doc param list pl if m hide return m t item if pl direction doc param sect unspecified m t mbox if pl direction doc param sect in m t leftarrow else if pl direction doc param sect out m t rightarrow else if pl direction doc param sect in out m t leftrightarrow m t m t em q str list iterator li pl parameters const char s q list iterator doc node li pl parameters doc node param bool first true for li to first param li current li if first m t else first false m insideitem true if param kind doc node kind word visit doc word param else if param kind doc node kind linkedword visit doc linked word param m insideitem false m t latexdocvisitor visitpre docparamlist m_hide m_t docparamsect m_t docparamsect m_t docparamsect m_t docparamsect inout m_t m_t m_t qstrlistiterator qlistiterator docnode docnode tofirst m_t m_insideitem docnode kind_word docword docnode kind_linkedword doclinkedword m_insideitem m_t void latex doc visitor visit post doc param list latexdocvisitor visitpost docparamlist void latex doc visitor visit pre docx ref item x if m hide return m t begin desc endl bool anonymous enum x file m t item if config getbool pdf hyperlinks anonymous enum m t hyperlink strip path x file x anchor else m t bf m insideitem true filter x title m insideitem false m t latexdocvisitor visitpre docxrefitem m_hide m_t anonymousenum m_t config_getbool pdf_hyperlinks anonymousenum m_t strippath _ m_t m_insideitem m_insideitem m_t void latex doc visitor visit post docx ref item if m hide return m t end desc endl latexdocvisitor visitpost docxrefitem m_hide m_t void latex doc visitor visit pre doc internal ref ref if m hide return start link 0 ref file ref anchor latexdocvisitor visitpre docinternalref m_hide startlink void latex doc visitor visit post doc internal ref ref if m hide return end link 0 ref file ref anchor latexdocvisitor visitpost docinternalref m_hide endlink void latex doc visitor visit pre doc copy latexdocvisitor visitpre doccopy void latex doc visitor visit post doc copy latexdocvisitor visitpost doccopy void latex doc visitor visit pre doc text latexdocvisitor visitpre doctext void latex doc visitor visit post doc text latexdocvisitor visitpost doctext void latex doc visitor filter const char str filter latex string m t str m insidetabbing m insidepre m insideitem latexdocvisitor filterlatexstring m_t m_insidetabbing m_insidepre m_insideitem void latex doc visitor start link const q string ref const q string file const q string anchor if ref is empty config getbool pdf hyperlinks m t hyperlink if file is empty m t strip path file if file is empty anchor is empty m t if anchor is empty m t anchor m t else m t bf latexdocvisitor startlink qstring qstring qstring isempty config_getbool pdf_hyperlinks m_t isempty m_t strippath isempty isempty m_t _ isempty m_t m_t m_t void latex doc visitor end link const q string ref const q string file const q string anchor m t if ref is empty config getbool pdf hyperlinks m t rm filter the translator tr page abbreviation m t pageref file if anchor is empty m t anchor m t latexdocvisitor endlink qstring qstring qstring m_t isempty config_getbool pdf_hyperlinks m_t thetranslator trpageabbreviation m_t isempty m_t _ m_t q string latex doc visitor escape make index chars const char s q string result const char p s char str 2 str 1 0 char c while c p switch c case m t break case m t break case m t break case m t texttt break case m t break case m t break default str 0 c filter str break return result qstring latexdocvisitor escapemakeindexchars qstring m_t m_t m_t m_t m_t m_t q string base name file name int i if i base name find rev 1 base name base name right base name length i 1 if base name right 4 eps base name right 4 pdf base name base name left base name length 4 if base name right 4 dot base name base name left base name length 4 q string out dir config getstring latex output q string name file name write dot graph from file name out dir base name eps if has caption m t begin figure h endl m t begin center endl else m t mbox m t includegraphics if width is empty m t width width else if height is empty m t height height m t base name if has caption m t caption qstring basename filename basename findrev basename basename basename basename basename basename basename basename basename basename basename basename qstring outdir config_getstring latex_output qstring filename writedotgraphfromfile outdir basename hascaption m_t m_t m_t m_t isempty m_t isempty m_t m_t basename hascaption m_t void latex doc visitor end dot file bool has caption if m hide return m t endl end mbox or caption if has caption m t end center endl m t end figure endl latexdocvisitor enddotfile hascaption m_hide m_t hascaption m_t m_t void latex doc visitor push enabled m enabled push new bool m hide latexdocvisitor pushenabled m_enabled m_hide void latex doc visitor pop enabled bool v m enabled pop assert v 0 m hide v delete v latexdocvisitor popenabled m_enabled m_hide virtual qc string latex language support command return qcstring latexlanguagesupportcommand virtual qc string id language charset return iso 8859 1 qcstring idlanguagecharset virtual qc string tr member data documentation if config getbool optimize output for c return field documentation else return member data documentation qcstring trmemberdatadocumentation config_getbool optimize_output_for_c virtual qc string tr generated automatically const char s qc string result generated automatically by doxygen if s result qc string for s result from the source code return result qcstring trgeneratedautomatically qcstring qcstring virtual qc string tr compound list if config getbool optimize output for c return data structures else return class list qcstring trcompoundlist config_getbool optimize_output_for_c virtual qc string tr compound members if config getbool optimize output for c return data fields else return class members qcstring trcompoundmembers config_getbool optimize_output_for_c virtual qc string tr file members if config getbool optimize output for c return globals else return file members qcstring trfilemembers config_getbool optimize_output_for_c virtual qc string tr class hierarchy description return this inheritance list is sorted roughly but not completely alphabetically qcstring trclasshierarchydescription virtual qc string tr file list description bool extract all qc string result here is a list of all if extract all result documented result files with brief descriptions return result qcstring trfilelistdescription extractall qcstring extractall virtual qc string tr compound list description if config getbool optimize output for c return here are the data structures with brief descriptions else return here are the classes structs unions and interfaces with brief descriptions qcstring trcompoundlistdescription config_getbool optimize_output_for_c virtual qc string tr compound members description bool extract all qc string result here is a list of all if extract all result documented if config getbool optimize output for c result struct and union fields else result class members result with links to if extract all if config getbool optimize output for c result the struct union documentation for each field else result the class documentation for each member else if config getbool optimize output for c result the structures unions they belong to else result the classes they belong to return result qcstring trcompoundmembersdescription extractall qcstring extractall config_getbool optimize_output_for_c extractall config_getbool optimize_output_for_c config_getbool optimize_output_for_c virtual qc string tr file members description bool extract all qc string result here is a list of all if extract all result documented if config getbool optimize output for c result functions variables defines enums and typedefs else result file members result with links to if extract all result the files they belong to else result the documentation return result qcstring trfilemembersdescription extractall qcstring extractall config_getbool optimize_output_for_c extractall virtual qc string tr compound index if config getbool optimize output for c return data structure index else return class index qcstring trcompoundindex config_getbool optimize_output_for_c virtual qc string tr class documentation if config getbool optimize output for c return data structure documentation else return class documentation qcstring trclassdocumentation config_getbool optimize_output_for_c virtual qc string tr compounds if config getbool optimize output for c return data structures else return classes qcstring trcompounds config_getbool optimize_output_for_c virtual qc string tr generated at const char date const char proj name qc string result qc string generated on date if proj name result qc string for proj name result qc string by return result qcstring trgeneratedat projname qcstring qcstring projname qcstring projname qcstring virtual qc string tr written by return written by qcstring trwrittenby virtual qc string tr class diagram const char cl name return qc string inheritance diagram for cl name qcstring trclassdiagram clname qcstring clname virtual qc string tr namespace list description bool extract all qc string result here is a list of all if extract all result documented result namespaces with brief descriptions return result qcstring trnamespacelistdescription extractall qcstring extractall bool is template qc string result qc string cl name switch comp type case class def class result class break case class def struct result struct break case class def union result union break case class def interface result interface break case class def protocol result protocol break case class def category result category break case class def exception result exception break if is template result template result reference return result istemplate qcstring qcstring clname comptype classdef classdef classdef classdef classdef classdef classdef istemplate virtual qc string tr file reference const char file name qc string result file name result file reference return result qcstring trfilereference filename qcstring filename virtual qc string tr namespace reference const char namespace name qc string result namespace name result namespace reference return result qcstring trnamespacereference namespacename qcstring namespacename virtual qc string tr write list int num entries qc string result int i the inherits list contain num entries classes for i 0 i num entries i use generate marker to generate placeholders for the class links result generate marker i generate marker for entry i in the list order is left to right if i num entries 1 not the last entry so we need a separator if i num entries 2 not the fore last entry result else the fore last entry result and return result qcstring trwritelist numentries qcstring numentries numentries generatemarker generatemarker numentries numentries virtual qc string tr inherits list int num entries return inherits tr write list num entries qcstring trinheritslist numentries trwritelist numentries virtual qc string tr inherited by list int num entries return inherited by tr write list num entries qcstring trinheritedbylist numentries trwritelist numentries virtual qc string tr reimplemented from list int num entries return reimplemented from tr write list num entries qcstring trreimplementedfromlist numentries trwritelist numentries virtual qc string tr reimplemented in list int num entries return reimplemented in tr write list num entries qcstring trreimplementedinlist numentries trwritelist numentries virtual qc string tr namespace member description bool extract all qc string result here is a list of all if extract all result documented result namespace members with links to if extract all result the namespace documentation for each member else result the namespaces they belong to return result qcstring trnamespacememberdescription extractall qcstring extractall extractall bool single here s is one of class struct or union single is true implies a single file qc string result qc string the documentation for this switch comp type case class def class result class break case class def struct result struct break case class def union result union break case class def interface result interface break case class def protocol result protocol break case class def category result category break case class def exception result exception break result was generated from the following file if single result else result s return result qcstring qcstring comptype classdef classdef classdef classdef classdef classdef classdef virtual qc string tr sources return sources qcstring trsources virtual qc string tr defined at line in source file return definition at line 0 of file 1 qcstring trdefinedatlineinsourcefile virtual qc string tr defined in source file return definition in file 0 qcstring trdefinedinsourcefile virtual qc string tr deprecated return deprecated qcstring trdeprecated virtual qc string tr collaboration diagram const char cl name return qc string collaboration diagram for cl name qcstring trcollaborationdiagram clname qcstring clname virtual qc string tr incl dep graph const char f name return qc string include dependency graph for f name qcstring trincldepgraph fname qcstring fname virtual qc string tr constructor documentation return constructor destructor documentation qcstring trconstructordocumentation virtual qc string tr goto source code return go to the source code of this file qcstring trgotosourcecode virtual qc string tr goto documentation return go to the documentation of this file qcstring trgotodocumentation virtual qc string tr precondition return precondition qcstring trprecondition virtual qc string tr postcondition return postcondition qcstring trpostcondition virtual qc string tr invariant return invariant qcstring trinvariant virtual qc string tr initial value return initial value qcstring trinitialvalue virtual qc string tr code return code qcstring trcode virtual qc string tr graphical hierarchy return graphical class hierarchy qcstring trgraphicalhierarchy virtual qc string tr goto graphical hierarchy return go to the graphical class hierarchy qcstring trgotographicalhierarchy virtual qc string tr goto textual hierarchy return go to the textual class hierarchy qcstring trgototextualhierarchy virtual qc string tr page index return page index qcstring trpageindex virtual qc string tr note return note qcstring trnote virtual qc string tr public types return public types qcstring trpublictypes virtual qc string tr public attribs if config getbool optimize output for c return data fields else return public attributes qcstring trpublicattribs config_getbool optimize_output_for_c virtual qc string tr static public attribs return static public attributes qcstring trstaticpublicattribs virtual qc string tr protected types return protected types qcstring trprotectedtypes virtual qc string tr protected attribs return protected attributes qcstring trprotectedattribs virtual qc string tr static protected attribs return static protected attributes qcstring trstaticprotectedattribs virtual qc string tr private types return private types qcstring trprivatetypes virtual qc string tr private attribs return private attributes qcstring trprivateattribs virtual qc string tr static private attribs return static private attributes qcstring trstaticprivateattribs virtual qc string tr todo return todo qcstring trtodo virtual qc string tr todo list return todo list qcstring trtodolist virtual qc string tr referenced by return referenced by qcstring trreferencedby virtual qc string tr remarks return remarks qcstring trremarks virtual qc string tr attention return attention qcstring trattention virtual qc string tr incl by dep graph return this graph shows which files directly or indirectly include this file qcstring trinclbydepgraph virtual qc string tr since return since qcstring trsince virtual qc string tr legend title return graph legend qcstring trlegendtitle virtual qc string tr legend docs return this page explains how to interpret the graphs that are generated by doxygen p n consider the following example n code n invisible class because of truncation n class invisible n n truncated class inheritance relation is hidden n class truncated public invisible n n class not documented with doxygen comments n class undocumented n n class that is inherited using public inheritance n class public base public truncated n n a template class n template class t class templ n n class that is inherited using protected inheritance n class protected base n n class that is inherited using private inheritance n class private base n n class that is used by the inherited class n class used n n super class that inherits a number of other classes n class inherited public public base n protected protected base n private private base n public undocumented n public templ int n n private n used m usedclass n n endcode n if the c max dot graph height tag in the configuration file is set to 240 this will result in the following graph p center img alt src graph legend config getenum dot image format center n p n the boxes in the above graph have the following meaning n ul n li a filled black box represents the struct or class for which the graph is generated n li a box with a black border denotes a documented struct or class n li a box with a grey border denotes an undocumented struct or class n li a box with a red border denotes a documented struct or class for which not all inheritance containment relations are shown a graph is truncated if it does not fit within the specified boundaries n ul n the arrows have the following meaning n ul n li a dark blue arrow is used to visualize a public inheritance relation between two classes n li a dark green arrow is used for protected inheritance n li a dark red arrow is used for private inheritance n li a purple dashed arrow is used if a class is contained or used by another class the arrow is labeled with the variable s through which the pointed class or struct is accessible n li a yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from the arrow is labeled with the template parameters of the instance n ul n qcstring trlegenddocs publicbase protectedbase privatebase publicbase protectedbase privatebase m_usedclass max_dot_graph_height graph_legend config_getenum dot_image_format virtual qc string tr legend return legend qcstring trlegend virtual qc string tr test return test qcstring trtest virtual qc string tr test list return test list qcstring trtestlist virtual qc string trdcop methods return dcop member functions qcstring trdcopmethods virtual qc string tr properties return properties qcstring trproperties virtual qc string tr property documentation return property documentation qcstring trpropertydocumentation virtual qc string tr interfaces return interfaces qcstring trinterfaces virtual qc string tr classes if config getbool optimize output for c return data structures else return classes qcstring trclasses config_getbool optimize_output_for_c virtual qc string tr package const char name return qc string package name qcstring trpackage qcstring virtual qc string tr package list return package list qcstring trpackagelist virtual qc string tr package list description return here are the packages with brief descriptions if available qcstring trpackagelistdescription virtual qc string tr packages return packages qcstring trpackages virtual qc string tr package documentation return package documentation qcstring trpackagedocumentation virtual qc string tr define value return value qcstring trdefinevalue virtual qc string tr bug return bug qcstring trbug virtual qc string tr bug list return bug list qcstring trbuglist virtual qc string trrt fansicp return 1252 qcstring trrtfansicp virtual qc string trrtf char set return 0 qcstring trrtfcharset virtual qc string trrtf general index return index qcstring trrtfgeneralindex virtual qc string tr class bool first capital bool singular qc string result first capital class class if singular result es return result qcstring trclass first_capital qcstring first_capital virtual qc string tr file bool first capital bool singular qc string result first capital file file if singular result s return result qcstring trfile first_capital qcstring first_capital virtual qc string tr namespace bool first capital bool singular qc string result first capital namespace namespace if singular result s return result qcstring trnamespace first_capital qcstring first_capital virtual qc string tr group bool first capital bool singular qc string result first capital group group if singular result s return result qcstring trgroup first_capital qcstring first_capital virtual qc string tr page bool first capital bool singular qc string result first capital page page if singular result s return result qcstring trpage first_capital qcstring first_capital virtual qc string tr member bool first capital bool singular qc string result first capital member member if singular result s return result qcstring trmember first_capital qcstring first_capital virtual qc string tr field bool first capital bool singular qc string result first capital field field if singular result s return result qcstring trfield first_capital qcstring first_capital virtual qc string tr global bool first capital bool singular qc string result first capital global global if singular result s return result qcstring trglobal first_capital qcstring first_capital virtual qc string tr author bool first capital bool singular qc string result first capital author author if singular result s return result qcstring trauthor first_capital qcstring first_capital virtual qc string tr references return references qcstring trreferences virtual qc string tr implemented from list int num entries return implements tr write list num entries qcstring trimplementedfromlist numentries trwritelist numentries virtual qc string tr implemented in list int num entries return implemented in tr write list num entries qcstring trimplementedinlist numentries trwritelist numentries virtual qc string trrtf table of contents return table of contents qcstring trrtftableofcontents virtual qc string tr deprecated list return deprecated list qcstring trdeprecatedlist virtual qc string tr events return events qcstring trevents virtual qc string tr event documentation return event documentation qcstring treventdocumentation virtual qc string tr package types return package types qcstring trpackagetypes virtual qc string tr package members return package functions qcstring trpackagemembers virtual qc string tr static package members return static package functions qcstring trstaticpackagemembers virtual qc string tr package attribs return package attributes qcstring trpackageattribs virtual qc string tr static package attribs return static package attributes qcstring trstaticpackageattribs virtual qc string tr all return all qcstring trall virtual qc string tr call graph return here is the call graph for this function qcstring trcallgraph virtual qc string tr search for index return search for qcstring trsearchforindex virtual qc string tr search results title return search results qcstring trsearchresultstitle virtual qc string tr search results int num documents if num documents 0 return sorry no documents matching your query else if num documents 1 return found b 1 b document matching your query else return found b num b documents matching your query showing best matches first qcstring trsearchresults numdocuments numdocuments numdocuments virtual qc string tr search matches return matches qcstring trsearchmatches virtual qc string tr source file qc string filename return filename source file qcstring trsourcefile qcstring virtual qc string tr dir description return this directory hierarchy is sorted roughly but not completely alphabetically qcstring trdirdescription virtual qc string tr dir bool first capital bool singular qc string result first capital director director if singular result y else result ies return result qcstring trdir first_capital qcstring first_capital virtual qc string tr overload text return this is an overloaded member function provided for convenience it differs from the above function only in what argument s it accepts qcstring troverloadtext const qc string version string return qc string warning the selected output language language name has not been updated nsince version string as a result some sentences may appear in english n n qcstring versionstring qcstring languagename versionstring qc string latex language support command return usepackage dutch babel n qcstring latexlanguagesupportcommand qc string id language charset return iso 8859 1 qcstring idlanguagecharset qc string tr generated automatically const char s qc string result automatisch gegenereerd door doxygen if s result qc string voor s result uit de programmacode return result qcstring trgeneratedautomatically qcstring qcstring qc string tr class hierarchy description return deze inheritance lijst is min of meer alfabetisch gesorteerd qcstring trclasshierarchydescription qc string tr file list description bool extract all qc string result hieronder volgt de lijst met alle if extract all result gedocumenteerde result files elk met een korte beschrijving return result qcstring trfilelistdescription extractall qcstring extractall qc string tr compound list description return hieronder volgen de klassen structs en unions met voor elk een korte beschrijving qcstring trcompoundlistdescription qc string tr compound members description bool extract all qc string result hieronder volgt de lijst met alle if extract all result gedocumenteerde result klasse members met links naar if extract all result de klasse documentatie voor elke member else result de klassen waartoe ze behoren return result qcstring trcompoundmembersdescription extractall qcstring extractall extractall qc string tr file members description bool extract all qc string result hieronder volgt de lijst met alle if extract all result gedocumenteerde result file members met links naar if extract all result de file documentatie voor elke member else result de files waartoe ze behoren return result qcstring trfilemembersdescription extractall qcstring extractall extractall qc string tr generated at const char date const char proj name qc string result qc string gegenereerd op date if proj name result qc string voor proj name result qc string door return result qcstring trgeneratedat projname qcstring qcstring projname qcstring projname qcstring qc string tr written by return geschreven door qcstring trwrittenby qc string tr class diagram const char cl name return qc string klasse diagram voor cl name qcstring trclassdiagram clname qcstring clname qc string tr reimplemented for internal reasons return om interne redenen opnieuwd ge iuml mplemented de api wordt er niet door be iuml nvloed qcstring trreimplementedforinternalreasons qc string tr namespace list description bool extract all qc string result hier is een lijst met alle if extract all result gedocumenteerde result namespaces met voor elk een korte beschrijving return result qcstring trnamespacelistdescription extractall qcstring extractall used as the title of the html page of a class struct union qc string result qc string cl name if is template result template switch comp type case class def class result class break case class def struct result struct break case class def union result union break case class def interface result interface break case class def protocol result protocol break case class def category result category break case class def exception result exception break result referentie return result qcstring qcstring clname istemplate comptype classdef classdef classdef classdef classdef classdef classdef used as the title of the html page of a file qc string result file name result file referentie return result qcstring filename used as the title of the html page of a namespace qc string result namespace name result namespace referentie return result qcstring namespacename qc string tr write list int num entries this function is used to produce a comma separated list of items use generate marker i to indicate where item i should be put qc string result int i the inherits list contain num entries classes for i 0 i num entries i use generate marker to generate placeholders for the class links result generate marker i generate marker for entry i in the list order is left to right if i num entries 1 not the last entry so we need a separator if i num entries 2 not the fore last entry result else the fore last entry result en return result qcstring trwritelist numentries generatemarker qcstring numentries numentries generatemarker generatemarker numentries numentries if class diagrams are disabled return erft over van tr write list num entries trwritelist numentries if class diagrams are disabled return wordt overge euml rfd door tr write list num entries trwritelist numentries members that are hidden by this one return nieuwe implementatie van tr write list num entries trwritelist numentries qc string tr reimplemented in list int num entries used in member documentation blocks to produce a list of all member that overwrite the implementation of this member return opnieuw ge iuml mplementeerd in tr write list num entries qcstring trreimplementedinlist numentries trwritelist numentries this is an introduction to the page with all namespace members qc string result hier is een lijst van alle if extract all result gedocumenteerde result namespace members met links naar if extract all result de namespace documentatie voor iedere member else result de namespaces waartoe ze behoren return result qcstring extractall extractall qc string tr namespaces return namespaces qcstring trnamespaces bool single here s is one of class struct or union single is true implies a single file qc string result qc string de documentatie voor deze switch comp type case class def class result class break case class def struct result struct break case class def union result union break case class def interface result interface break case class def protocol result protocol break case class def category result category break case class def exception result exception break result is gegenereerd op grond van de volgende file if single result else result s return result qcstring qcstring comptype classdef classdef classdef classdef classdef classdef classdef qc string tr sources return broncode qcstring trsources qc string tr defined at line in source file return de definitie bevindt zich op regel 0 in de file 1 qcstring trdefinedatlineinsourcefile qc string tr defined in source file return de definitie bevindt zich in de file 0 qcstring trdefinedinsourcefile qc string tr deprecated return verouderd qcstring trdeprecated qc string tr collaboration diagram const char cl name return qc string collaboratie diagram voor cl name qcstring trcollaborationdiagram clname qcstring clname qc string tr incl dep graph const char f name return qc string include afhankelijkheidsgraaf voor f name qcstring trincldepgraph fname qcstring fname qc string tr constructor documentation return constructor destructor documentatie qcstring trconstructordocumentation qc string tr goto source code return ga naar de bron code van deze file qcstring trgotosourcecode qc string tr goto documentation return ga naar de documentatie van deze file qcstring trgotodocumentation qc string tr precondition return preconditie qcstring trprecondition qc string tr postcondition return postconditie qcstring trpostcondition qc string tr invariant return invariant qcstring trinvariant qc string tr initial value return initi euml le waarde qcstring trinitialvalue qc string tr code return code qcstring trcode qc string tr graphical hierarchy return grafische klasse hi euml rarchie qcstring trgraphicalhierarchy qc string tr goto graphical hierarchy return ga naar de grafische klasse hi euml rarchie qcstring trgotographicalhierarchy qc string tr goto textual hierarchy return ga naar de tekstuele klasse hi euml rarchie qcstring trgototextualhierarchy qc string tr page index return pagina index qcstring trpageindex qc string tr note return noot qcstring trnote qc string tr public types return public typen qcstring trpublictypes qc string tr public attribs return public attributen qcstring trpublicattribs qc string tr static public attribs return static public attributen qcstring trstaticpublicattribs qc string tr protected types return protected typen qcstring trprotectedtypes qc string tr protected attribs return protected attributen qcstring trprotectedattribs qc string tr static protected attribs return static protected attributen qcstring trstaticprotectedattribs qc string tr private types return private typen qcstring trprivatetypes qc string tr private attribs return private attributen qcstring trprivateattribs qc string tr static private attribs return static private attributen qcstring trstaticprivateattribs qc string tr todo return todo qcstring trtodo qc string tr todo list return todo lijst qcstring trtodolist qc string tr referenced by return wordt aangeroepen door qcstring trreferencedby qc string tr remarks return opmerkingen qcstring trremarks qc string tr attention return attentie qcstring trattention qc string tr incl by dep graph return deze graaf geeft aan welke files direct of indirect afhankelijk zijn van deze file qcstring trinclbydepgraph qc string tr since return sinds qcstring trsince qc string tr legend title return graaf legenda qcstring trlegendtitle qc string tr legend docs return deze pagina legt uit hoe de grafen die gegenereerd worden door doxygen ge iuml nterpreteerd dienen te worden p n beschouw het volgende voorbeeld n code n onzichtbare klasse vanwege afkappen van de graaf n class invisible n n afgekapte klasse overervingsrelatie is verborgen n class truncated public invisible n n klasse is niet gedocumenteerd met doxygen commentaar n class undocumented n n klasse met public inheritance n class public base public truncated n n klasse met protected inheritance n class protected base n n klasse met private inheritance n class private base n n klasse die wordt gebruikt door de klasse inherited n class used n n super klasse die overerft van een aantal andere klassen n class inherited public public base n protected protected base n private private base n public undocumented n n private n used m usedclass n n endcode n als de c max dot graph height tag in the configuratie file op 200 gezet is zal het bestaande voorbeeld resulteren in de volgende graaf p center img src graph legend config getenum dot image format center n p n de rechthoeken in the bovenstaande graaf hebben de volgende betekenis n ul n li een gevulde zwarte rechthoek representeert de structure of klasse waarvoor de graaf is gegeneerd n li een rechthoek met een zwarte rand representeert een gedocumenteerde structure of klasse n li een rechthoek met een grijze rand representeert een ongedocumenteerde structure of klasse n li een rechthoek met een rode rand representeert een gedocumenteerde structure or klasse waarvoor n niet alle overervings of gebruiksrelaties konden worden getoond een graaf wordt afgekapt als hij niet past binnen de gespecificeerde grenzen ul n de pijlen hebben de volgende betekenis n ul n li een donkerblauwe pijl visualizeert een public inheritance relatie tussen twee klassen n li een donkergroene pijl wordt gebruikt voor protected inheritance n li een donkerrode pijl wordt gebruikt voor private inheritance n li een paars gestippelde pijl wordt gebruikt indien een klasse bevat is of gebruikt wordt door een andere klasse de pijl is gelabeled met de variable n die toegang geven tot de aangewezen klasse of structure n li een geel gestippelde pijl wordt gebruikt om een relatie tussen een n template instantie en een template klasse aan te geven de pijl is gelabeld met n template parameters van de instantie n ul n qcstring trlegenddocs publicbase protectedbase privatebase publicbase protectedbase privatebase m_usedclass max_dot_graph_height graph_legend config_getenum dot_image_format qc string tr legend return legenda qcstring trlegend qc string tr test return test qcstring trtest qc string tr test list return test lijst qcstring trtestlist qc string trdcop methods return dcop methoden qcstring trdcopmethods qc string tr properties return properties qcstring trproperties qc string tr property documentation return property documentatie qcstring trpropertydocumentation qc string tr interfaces return interfaces qcstring trinterfaces qc string tr classes return klassen qcstring trclasses qc string tr package const char name return qc string package name qcstring trpackage qcstring qc string tr package list return package lijst qcstring trpackagelist qc string tr package list description return hier volgen de packages elk met een korte beschrijving indien aanwezig qcstring trpackagelistdescription qc string tr packages return packages qcstring trpackages qc string tr package documentation return package documentatie qcstring trpackagedocumentation qc string tr define value return waarde qcstring trdefinevalue qc string tr bug return bug qcstring trbug qc string tr bug list return bug lijst qcstring trbuglist virtual qc string trrt fansicp return 1252 qcstring trrtfansicp virtual qc string trrtf char set return 0 qcstring trrtfcharset virtual qc string trrtf general index return index qcstring trrtfgeneralindex virtual qc string tr class bool first capital bool singular qc string result first capital klasse klass if singular result n return result qcstring trclass first_capital qcstring first_capital virtual qc string tr file bool first capital bool singular qc string result first capital file file if singular result s return result qcstring trfile first_capital qcstring first_capital virtual qc string tr namespace bool first capital bool singular qc string result first capital namespace namespace if singular result s return result qcstring trnamespace first_capital qcstring first_capital virtual qc string tr group bool first capital bool singular qc string result first capital groep groep if singular result en return result qcstring trgroup first_capital qcstring first_capital virtual qc string tr page bool first capital bool singular qc string result first capital pagina pagina if singular result s return result qcstring trpage first_capital qcstring first_capital virtual qc string tr member bool first capital bool singular qc string result first capital member member if singular result s return result qcstring trmember first_capital qcstring first_capital virtual qc string tr field bool first capital bool singular qc string result first capital veld veld if singular result en return result qcstring trfield first_capital qcstring first_capital virtual qc string tr global bool first capital bool singular qc string result first capital globale member globale member if singular result s return result qcstring trglobal first_capital qcstring first_capital virtual qc string tr author bool first capital bool singular qc string result first capital auteur auteur if singular result s return result qcstring trauthor first_capital qcstring first_capital virtual qc string tr references return gebruikt qcstring trreferences virtual qc string tr implemented from list int num entries return implementeert tr write list num entries qcstring trimplementedfromlist numentries trwritelist numentries virtual qc string tr implemented in list int num entries return wordt ge iuml mplementeerd door tr write list num entries qcstring trimplementedinlist numentries trwritelist numentries virtual qc string tr deprecated list return deprecated lijst qcstring trdeprecatedlist virtual qc string tr events return events qcstring trevents virtual qc string tr event documentation return event documentatie qcstring treventdocumentation virtual qc string tr package types return package types qcstring trpackagetypes virtual qc string tr package members return package functies qcstring trpackagemembers virtual qc string tr static package members return statische package functies qcstring trstaticpackagemembers virtual qc string tr package attribs return package attributen qcstring trpackageattribs virtual qc string tr static package attribs return statische package attributen qcstring trstaticpackageattribs virtual qc string tr all return alle qcstring trall virtual qc string tr call graph return hier is de call graaf voor deze functie qcstring trcallgraph virtual qc string tr search for index return zoek naar qcstring trsearchforindex virtual qc string tr search results title return zoek resultaten qcstring trsearchresultstitle virtual qc string tr search results int num documents if num documents 0 return helaas er zijn geen documenten gevonden die aan de zoekopdracht voldoen else if num documents 1 return er is b 1 b document gevonden dat aan de zoekopdracht voldoet else return er zijn b num b documenten gevonden die aan de zoekopdracht voldoen de beste resultaten worden eerst getoond qcstring trsearchresults numdocuments numdocuments numdocuments virtual qc string tr search matches return gevonden qcstring trsearchmatches virtual qc string tr source file qc string filename return filename bron bestand qcstring trsourcefile qcstring virtual qc string tr dir description return deze directory hi euml rarchie is min of meer alfabetisch gesorteerd qcstring trdirdescription virtual qc string tr dir bool first capital bool singular qc string result first capital director director if singular result y else result ies return result qcstring trdir first_capital qcstring first_capital virtual qc string tr overload text return deze functie is overloaded en is beschikbaar gemaakt om het gebruik te vergemakkelijken ze verschilt alleen van de bovenstaande functie wat betreft de parameterlijst qcstring troverloadtext virtual qc string latex language support command return qcstring latexlanguagesupportcommand virtual qc string id language charset return iso 8859 1 qcstring idlanguagecharset virtual qc string tr member data documentation if config getbool optimize output for c return f lt dokumentation else return dokumentation av datamedlemmar qcstring trmemberdatadocumentation config_getbool optimize_output_for_c virtual qc string tr generated automatically const char s qc string result automatiskt skapad av doxygen if s result qc string f r s result fr n k llkoden return result qcstring trgeneratedautomatically qcstring qcstring virtual qc string tr compound list if config getbool optimize output for c return datastrukturer else return sammansatt klasslista qcstring trcompoundlist config_getbool optimize_output_for_c virtual qc string tr compound members if config getbool optimize output for c return data f lt else return sammansatta klassmedlemmar qcstring trcompoundmembers config_getbool optimize_output_for_c virtual qc string tr file members if config getbool optimize output for c return globala symboler else return filmedlemmar qcstring trfilemembers config_getbool optimize_output_for_c virtual qc string tr class hierarchy description return denna lista ver arv r grovt men inte helt sorterad i alfabetisk ordning qcstring trclasshierarchydescription virtual qc string tr file list description bool extract all qc string result h r f ljer en lista ver alla if extract all result dokumenterade result filer med en kort beskrivning return result qcstring trfilelistdescription extractall qcstring extractall virtual qc string tr compound list description if config getbool optimize output for c return h r f ljer datastrukturerna med korta beskrivningar else return h r f ljer klasserna strukterna unionerna och gr nssnitten med korta beskrivningar qcstring trcompoundlistdescription config_getbool optimize_output_for_c virtual qc string tr compound members description bool extract all qc string result h r r en lista ver alla if extract all result dokumenterade if config getbool optimize output for c result struktur och unions f lt else result klassmedlemmar result med l nkar till if extract all if config getbool optimize output for c result struktur unions dokumentationen f r varje f lt else result klassdokumentationen f r varje medlem else if config getbool optimize output for c result strukturerna unionerna de tillh r else result klasserna de tillh r return result qcstring trcompoundmembersdescription extractall qcstring extractall config_getbool optimize_output_for_c extractall config_getbool optimize_output_for_c config_getbool optimize_output_for_c virtual qc string tr file members description bool extract all qc string result h r f ljer en lista ver alla if extract all result dokumenterade if config getbool optimize output for c result funktioner variabler definitioner enumerationer och typdefinitioner else result filmedlemmar result med l nkar till if extract all result filerna som de tillh r else result dokumentationen return result qcstring trfilemembersdescription extractall qcstring extractall config_getbool optimize_output_for_c extractall virtual qc string tr compound index if config getbool optimize output for c return index ver datastrukturer else return index ver sammensatta typer qcstring trcompoundindex config_getbool optimize_output_for_c virtual qc string tr class documentation if config getbool optimize output for c return dokumentation ver datastrukturer else return documentation ver klasser qcstring trclassdocumentation config_getbool optimize_output_for_c virtual qc string tr compounds if config getbool optimize output for c return datastrukturer else return sammans ttning qcstring trcompounds config_getbool optimize_output_for_c virtual qc string tr generated at const char date const char proj name qc string result qc string skapad date if proj name result qc string f r proj name result qc string av return result qcstring trgeneratedat projname qcstring qcstring projname qcstring projname qcstring virtual qc string tr written by return skriven av qcstring trwrittenby virtual qc string tr class diagram const char cl name return qc string klassdiagram f r cl name qcstring trclassdiagram clname qcstring clname virtual qc string tr namespace list description bool extract all qc string result h r r en lista ver alla if extract all result dokumenterade result namnrymder med en kort beskrivning return result qcstring trnamespacelistdescription extractall qcstring extractall bool is template qc string result qc string cl name switch comp type case class def class result klass break case class def struct result strukt break case class def union result union break case class def interface result gr nssnitt break case class def protocol result protocol break translate me case class def category result category break translate me case class def exception result undantag break if is template result template result referens return result istemplate qcstring qcstring clname comptype classdef classdef classdef classdef classdef classdef classdef istemplate virtual qc string tr file reference const char file name qc string result file name result filreferens return result qcstring trfilereference filename qcstring filename virtual qc string tr namespace reference const char namespace name qc string result namespace name result namnrymdreferens return result qcstring trnamespacereference namespacename qcstring namespacename virtual qc string tr write list int num entries this function is used to produce a comma separated list of items use generate marker i to indicate where item i should be put qc string result int i the inherits list contain num entries classes for i 0 i num entries i use generate marker to generate placeholders for the class links result generate marker i generate marker for entry i in the list order is left to right if i num entries 1 not the last entry so we need a separator if i num entries 2 not the fore last entry result else the fore last entry result och return result qcstring trwritelist numentries generatemarker qcstring numentries numentries generatemarker generatemarker numentries numentries if class diagrams are disabled return rver tr write list num entries trwritelist numentries if class diagrams are disabled return rvd av tr write list num entries trwritelist numentries members that are hidden by this one return terskapad fr n tr write list num entries trwritelist numentries virtual qc string tr reimplemented in list int num entries used in member documentation blocks to produce a list of all member that overwrite the implementation of this member return terskapad i tr write list num entries qcstring trreimplementedinlist numentries trwritelist numentries virtual qc string tr namespace member description bool extract all qc string result h r r en lista ver alla if extract all result dokumenterade result namnrymdsmedlemmar med l nkar till if extract all result namnrymd dokumentationen f r varje medlem else result de namnrymder de tillh r return result qcstring trnamespacememberdescription extractall qcstring extractall extractall bool single here s is one of class struct or union single is true implies a single file qc string result qc string dokumentationen f r switch comp type case class def class result denna klass break case class def struct result denna strukt break case class def union result denna union break case class def interface result detta gr nssnitt break case class def protocol result protocol break translate me case class def category result category break translate me case class def exception result detta undantag break result var genererad fr n f ljande fil if single result else result er return result qcstring qcstring comptype classdef classdef classdef classdef classdef classdef classdef virtual qc string tr alphabetical list return alfabetisk lista qcstring tralphabeticallist virtual qc string tr defined at line in source file return definition p rad 0 i filen 1 qcstring trdefinedatlineinsourcefile virtual qc string tr defined in source file return definition i filen 0 qcstring trdefinedinsourcefile virtual qc string tr deprecated return f r ldrad qcstring trdeprecated virtual qc string tr collaboration diagram const char cl name return qc string samarbetsdiagram f r cl name qcstring trcollaborationdiagram clname qcstring clname virtual qc string tr incl dep graph const char f name return qc string include beroendediagram f r f name qcstring trincldepgraph fname qcstring fname virtual qc string tr constructor documentation return dokumentation av konstruktorer och destruktorer qcstring trconstructordocumentation virtual qc string tr goto source code return g till denna fils k llkod qcstring trgotosourcecode virtual qc string tr goto documentation return g till denna fils dokumentation qcstring trgotodocumentation virtual qc string tr precondition return f rhandsvillkor qcstring trprecondition virtual qc string tr postcondition return resultat postcondition qcstring trpostcondition virtual qc string tr invariant return invariant qcstring trinvariant virtual qc string tr initial value return begynnelsev rde qcstring trinitialvalue virtual qc string tr code return k llkod qcstring trcode virtual qc string tr graphical hierarchy return grafisk klasshierarki qcstring trgraphicalhierarchy virtual qc string tr goto graphical hierarchy return g till den grafiska klasshierarkin qcstring trgotographicalhierarchy virtual qc string tr goto textual hierarchy return g till den textbaserade klasshierarkin qcstring trgototextualhierarchy virtual qc string tr page index return sidindex qcstring trpageindex virtual qc string tr note return notera qcstring trnote virtual qc string tr public types return publika typer qcstring trpublictypes virtual qc string tr public attribs if config getbool optimize output for c return dataf lt else return publika attribut qcstring trpublicattribs config_getbool optimize_output_for_c virtual qc string tr static public attribs return statiska publika attribut qcstring trstaticpublicattribs virtual qc string tr protected types return skyddade typer qcstring trprotectedtypes virtual qc string tr protected attribs return skyddade attribut qcstring trprotectedattribs virtual qc string tr static protected attribs return statiska skyddade attribut qcstring trstaticprotectedattribs virtual qc string tr private types return privata typer qcstring trprivatetypes virtual qc string tr private attribs return privata attribut qcstring trprivateattribs virtual qc string tr static private attribs return statiska privata attribut qcstring trstaticprivateattribs virtual qc string tr todo return att g ra qcstring trtodo virtual qc string tr todo list return att g ra lista qcstring trtodolist virtual qc string tr referenced by return refererad av qcstring trreferencedby virtual qc string tr remarks return l gg m rke till qcstring trremarks virtual qc string tr attention return observera qcstring trattention virtual qc string tr incl by dep graph return den h r grafen visar vilka filer som direkt eller indirekt inkluderar denna filen qcstring trinclbydepgraph virtual qc string tr since return sedan qcstring trsince virtual qc string tr legend title return graff rklaring qcstring trlegendtitle virtual qc string tr legend docs return den h r sidan f rklarar hur man ska tolka de grafer som doxygen genererar p n tag f ljande exempel n code n osynlig klass p grund av stympning n class invisible n n stympad klass rvningsrelationen r dold n class truncated public invisible n n klass utan doxygen kommentarer n class undocumented n n klass som rvs med publikt arv n class public base public truncated n n en template klass n template class t class templ n n klass som rvs med skyddat arv n class protected base n n klass som rvs med privat arv n class private base n n klass som anv nds av inherited klassen n class used n n super klassen som rver ett antal andra klasser n class inherited public public base n protected protected base n private private base n public undocumented n public templ int n n private n used m usedclass n n endcode n om c max dot graph height r satt till 240 i konfigurationsfilen kommer f ljande graf att generas p center img alt src graph legend config getenum dot image format center n p n rektanglarna i den ovanst ende grafen har f ljande betydelser n ul n li en fylld svart rektangel representerar den strukt eller klass som har genererat grafen n li en rektangel med svart kant symboliserar en dokumenterad strukt eller klass n li en rektangel med gr kant symboliserar en odokumenterad strukt eller klass n li en klass med r d kant symboliserar en strukt eller klass d r alla dess relationer inte visas en graf stympas om den inte f r plats inom de givna gr nserna n ul n pilarna har f ljande betydelser n ul n li en m rkbl pil anv nds f r att visualisera en publik arvrelation mellan tv klasser n li en m rkgr n pil anv nds f r en skyddad arvsrelation n li en m rkr d pil anv nds f r en privat arvsrelation n li en str ckad lila pil anv nds om en klass r innesluten eller anv nd av en annan klass vid pilen st r namnet p den eller de variabler som klassen pilen pekar p kommer t n li en str ckad gul pil symboliserar f rh llandet mellan en template instans och template klassen som den instantierades fr n n vid pilen st r instansens template parametrar n ul n qcstring trlegenddocs publicbase protectedbase privatebase publicbase protectedbase privatebase m_usedclass max_dot_graph_height graph_legend config_getenum dot_image_format virtual qc string tr legend return f rklaring qcstring trlegend virtual qc string tr test return test qcstring trtest virtual qc string tr test list return testlista qcstring trtestlist virtual qc string trdcop methods return dcop metoder qcstring trdcopmethods virtual qc string tr properties return egenskaper qcstring trproperties virtual qc string tr property documentation return egenskapsdokumentation qcstring trpropertydocumentation virtual qc string tr classes if config getbool optimize output for c return datastrukturer else return klasser qcstring trclasses config_getbool optimize_output_for_c virtual qc string tr package const char name return qc string paket name qcstring trpackage qcstring virtual qc string tr package list return paketlista qcstring trpackagelist virtual qc string tr package list description return h r r en lista ver paketen med en kort beskrivning om s dan finns qcstring trpackagelistdescription virtual qc string tr packages return paket qcstring trpackages virtual qc string tr define value return v rde qcstring trdefinevalue virtual qc string tr bug return bugg qcstring trbug virtual qc string tr bug list return bugglista qcstring trbuglist virtual qc string trrt fansicp return 1252 qcstring trrtfansicp virtual qc string trrtf char set return 0 qcstring trrtfcharset virtual qc string trrtf general index return index qcstring trrtfgeneralindex virtual qc string tr class bool first capital bool singular qc string result first capital klass klass if singular result er return result qcstring trclass first_capital qcstring first_capital virtual qc string tr file bool first capital bool singular qc string result first capital fil fil if singular result er return result qcstring trfile first_capital qcstring first_capital virtual qc string tr namespace bool first capital bool singular qc string result first capital namnrymd namnrynd if singular result er return result qcstring trnamespace first_capital qcstring first_capital virtual qc string tr group bool first capital bool singular qc string result first capital grupp grupp if singular result er return result qcstring trgroup first_capital qcstring first_capital virtual qc string tr page bool first capital bool singular qc string result first capital sid sid if singular result a else result or return result qcstring trpage first_capital qcstring first_capital virtual qc string tr member bool first capital bool singular qc string result first capital medlem medlem if singular result mar return result qcstring trmember first_capital qcstring first_capital virtual qc string tr global bool first capital bool singular qc string result first capital global global if singular result er return result qcstring trglobal first_capital qcstring first_capital virtual qc string tr author bool first capital bool singular qc string result first capital f rfattare f rfattare return result qcstring trauthor first_capital qcstring first_capital virtual qc string tr references return referenser qcstring trreferences virtual qc string tr implemented from list int num entries return implementerar tr write list num entries qcstring trimplementedfromlist numentries trwritelist numentries virtual qc string tr implemented in list int num entries return implementerad i tr write list num entries qcstring trimplementedinlist numentries trwritelist numentries virtual qc string trrtf table of contents return inneh llsf rteckning qcstring trrtftableofcontents virtual qc string tr deprecated list return lista ver f r ldrade qcstring trdeprecatedlist virtual qc string tr events return h ndelser qcstring trevents virtual qc string tr event documentation return h ndelse dokumentation qcstring treventdocumentation virtual qc string tr package types return paket typer qcstring trpackagetypes virtual qc string tr package members return paket funktioner qcstring trpackagemembers virtual qc string tr static package members return statiska paket funktioner qcstring trstaticpackagemembers virtual qc string tr package attribs return paket attribut qcstring trpackageattribs virtual qc string tr static package attribs return statiska paket attribut qcstring trstaticpackageattribs virtual qc string tr all return alla qcstring trall virtual qc string tr call graph return h r r anropnings diagrammet f r den h r funktionen qcstring trcallgraph virtual qc string tr search for index return s k efter qcstring trsearchforindex virtual qc string tr search results title return s kresultat qcstring trsearchresultstitle virtual qc string tr search results int num documents if num documents 0 return tyv rr finns det inga dokument som matchar din s kning else if num documents 1 return hittade b 1 b dokument som matchar din s kning else return hittade b num b dokument som matchar din s kning visar de b sta tr ffarna f rst qcstring trsearchresults numdocuments numdocuments numdocuments virtual qc string tr search matches return tr ffar qcstring trsearchmatches virtual qc string tr source file qc string filename return k llkodsfilen filename qcstring trsourcefile qcstring virtual qc string tr dir description return den h r katalogen r grovt sorterad men inte helt i alfabetisk ordning qcstring trdirdescription virtual qc string tr dir bool first capital bool singular qc string result first capital katalog katalog if singular result er return result qcstring trdir first_capital qcstring first_capital virtual qc string tr overload text return det h r r en verlagrad medlemsfunktion tillhandah llen f r bekv mlighet den enda som skiljer sig fr n ovanst ende funktion r vilka argument den tar emot qcstring troverloadtext inline qc string decode const qc string s input if config getbool use windows encoding return s input else return win1250 toiso88592 s input qcstring qcstring sinput config_getbool use_windows_encoding sinput win1250toiso88592 sinput virtual qc string id language charset if config getbool use windows encoding return windows 1250 else return iso 8859 2 qcstring idlanguagecharset config_getbool use_windows_encoding virtual qc string tr member data documentation if config getbool optimize output for c return decode dokumentace k polo k m else return decode dokumentace k datov m len m qcstring trmemberdatadocumentation config_getbool optimize_output_for_c virtual qc string tr generated automatically const char s qc string result generov no automaticky programem doxygen ze zdrojov ch text if s result qc string projektu s result return decode result qcstring trgeneratedautomatically qcstring qcstring virtual qc string tr compound list if config getbool optimize output for c return decode datov struktury else return decode seznam t d qcstring trcompoundlist config_getbool optimize_output_for_c virtual qc string tr compound members if config getbool optimize output for c return decode datov polo ky else return decode seznam len t d qcstring trcompoundmembers config_getbool optimize_output_for_c virtual qc string tr file members if config getbool optimize output for c return decode glob ln symboly else return decode symboly v souborech qcstring trfilemembers config_getbool optimize_output_for_c virtual qc string tr class hierarchy description return decode zde naleznete seznam vyjad uj c vztah d di nosti t d je se azen p ibli n ale ne pln podle abecedy qcstring trclasshierarchydescription virtual qc string tr file list description bool extract all qc string result zde naleznete seznam v ech if extract all result dokumentovan ch result soubor se stru n mi popisy return decode result qcstring trfilelistdescription extractall qcstring extractall virtual qc string tr compound list description if config getbool optimize output for c return decode n sleduj c seznam obsahuje identifikace datov ch struktur a jejich stru n popisy else return decode n sleduj c seznam obsahuje p edev m identifikace t d ale nach zej se zde i dal netrivi ln prvky jako jsou struktury struct unie union a rozhran interface v seznamu jsou uvedeny jejich stru n popisy qcstring trcompoundlistdescription config_getbool optimize_output_for_c virtual qc string tr compound members description bool extract all qc string result zde naleznete seznam v ech if extract all result dokumentovan ch if config getbool optimize output for c result polo ek struktur struct a uni union else result len t d result s odkazy na if extract all if config getbool optimize output for c result dokumentaci struktur uni ke kter m p slu ej else result dokumentaci t d ke kter m p slu ej else if config getbool optimize output for c result struktury unie ke kter m p slu ej else result t dy ke kter m p slu ej return decode result qcstring trcompoundmembersdescription extractall qcstring extractall config_getbool optimize_output_for_c extractall config_getbool optimize_output_for_c config_getbool optimize_output_for_c virtual qc string tr file members description bool extract all qc string result zde naleznete seznam v ech if extract all result dokumentovan ch if config getbool optimize output for c result funkc prom nn ch maker v t a definic typ typedef s odkazy na else result symbol kter jsou definov ny na rovni sv ch soubor pro ka d symbol je uveden odkaz na if extract all result soubory ke kter m p slu ej else result dokumentaci return decode result qcstring trfilemembersdescription extractall qcstring extractall config_getbool optimize_output_for_c extractall virtual qc string tr compound index if config getbool optimize output for c return decode rejst k datov ch struktur else return decode rejst k t d qcstring trcompoundindex config_getbool optimize_output_for_c virtual qc string tr class documentation if config getbool optimize output for c return decode dokumentace datov ch struktur else return decode dokumentace t d qcstring trclassdocumentation config_getbool optimize_output_for_c virtual qc string tr compounds if config getbool optimize output for c return decode datov struktry else return decode t dy qcstring trcompounds config_getbool optimize_output_for_c virtual qc string tr generated at const char date const char proj name qc string result qc string generov no date if proj name result qc string pro projekt proj name result qc string programem return decode result qcstring trgeneratedat projname qcstring qcstring projname qcstring projname qcstring virtual qc string tr written by return decode autor qcstring trwrittenby virtual qc string tr class diagram const char cl name return decode qc string diagram d di nosti pro t du cl name qcstring trclassdiagram clname qcstring clname virtual qc string tr namespace list description bool extract all qc string result zde naleznete seznam v ech if extract all result dokumentovan ch result prostor jmen se stru n m popisem return decode result qcstring trnamespacelistdescription extractall qcstring extractall bool is template qc string result dokumentace if is template result ablony switch comp type case class def class result t dy break case class def struct result struktury break case class def union result unie break case class def interface result rozhran break case class def protocol result protocol break translate me case class def category result category break translate me case class def exception result v jimky break result cl name return decode result istemplate qcstring istemplate comptype classdef classdef classdef classdef classdef classdef classdef clname virtual qc string tr file reference const char file name qc string result dokumentace souboru result file name return decode result qcstring trfilereference filename qcstring filename virtual qc string tr namespace reference const char namespace name qc string result dokumentace prostoru jmen result namespace name return decode result qcstring trnamespacereference namespacename qcstring namespacename virtual qc string tr write list int num entries qc string result int i the inherits list contain num entries classes for i 0 i num entries i use generate marker to generate placeholders for the class links result generate marker i generate marker for entry i in the list order is left to right if i num entries 1 not the last entry so we need a separator if i num entries 2 not the fore last entry result else the fore last entry result a return decode result qcstring trwritelist numentries qcstring numentries numentries generatemarker generatemarker numentries numentries virtual qc string tr inherits list int num entries qc string result d d z result num entries 1 b zov t dy b zov ch t d result tr write list num entries return decode result qcstring trinheritslist numentries qcstring numentries trwritelist numentries virtual qc string tr inherited by list int num entries qc string result zd d na result num entries 1 t dou t dami result tr write list num entries return decode result qcstring trinheritedbylist numentries qcstring numentries trwritelist numentries virtual qc string tr reimplemented from list int num entries qc string result reimplementuje stejnojmenn prvek z result tr write list num entries return decode result qcstring trreimplementedfromlist numentries qcstring trwritelist numentries virtual qc string tr reimplemented in list int num entries qc string result reimplementov no v result tr write list num entries return decode result qcstring trreimplementedinlist numentries qcstring trwritelist numentries virtual qc string tr namespace member description bool extract all qc string result zde naleznete seznam v ech if extract all result dokumentovan ch result symbol kter jsou definov ny ve sv ch prostorech jmen u ka d ho je uveden odkaz na if extract all result dokumentaci p slu n ho prostoru jmen else result p slu n prostor jmen return decode result qcstring trnamespacememberdescription extractall qcstring extractall extractall bool single here s is one of class struct or union single is true implies a single file qc string result qc string dokumentace pro switch comp type case class def class result tuto t du break case class def struct result tuto strukturu struct break case class def union result tuto unii union break case class def interface result toto rozhran break case class def protocol result protocol break translate me case class def category result category break translate me case class def exception result tuto v jimku break result byla generov na z if single result n sleduj c ho souboru else result n sleduj c ch soubor return decode result qcstring qcstring comptype classdef classdef classdef classdef classdef classdef classdef virtual qc string tr defined at line in source file return decode definice je uvedena na dku 0 v souboru 1 qcstring trdefinedatlineinsourcefile virtual qc string tr defined in source file return decode definice v souboru 0 qcstring trdefinedinsourcefile virtual qc string tr deprecated return decode zastaral qcstring trdeprecated virtual qc string tr collaboration diagram const char cl name return decode qc string diagram t d pro cl name qcstring trcollaborationdiagram clname qcstring clname virtual qc string tr incl dep graph const char f name return decode qc string graf z vislost na vkl dan ch souborech pro f name qcstring trincldepgraph fname qcstring fname virtual qc string tr constructor documentation return decode dokumentace konstruktoru a destruktoru qcstring trconstructordocumentation virtual qc string tr goto source code return decode zobrazit zdrojov text tohoto souboru qcstring trgotosourcecode virtual qc string tr goto documentation return decode zobrazit dokumentaci tohoto souboru qcstring trgotodocumentation virtual qc string tr precondition return decode precondition qcstring trprecondition virtual qc string tr postcondition return decode postcondition qcstring trpostcondition virtual qc string tr invariant return decode invariant qcstring trinvariant virtual qc string tr initial value return decode initializer qcstring trinitialvalue virtual qc string tr code return decode zdrojov text qcstring trcode virtual qc string tr graphical hierarchy return decode grafick zobrazen hierarchie t d qcstring trgraphicalhierarchy virtual qc string tr goto graphical hierarchy return decode zobrazit grafickou podobu hierarchie t d qcstring trgotographicalhierarchy virtual qc string tr goto textual hierarchy return decode zobrazit textovou podobu hierarchie t d qcstring trgototextualhierarchy virtual qc string tr page index return decode rejst k str nek qcstring trpageindex virtual qc string tr note return decode pozn mka qcstring trnote virtual qc string tr public types return decode ve ejn typy qcstring trpublictypes virtual qc string tr public attribs if config getbool optimize output for c return decode datov polo ky else return decode ve ejn atributy qcstring trpublicattribs config_getbool optimize_output_for_c virtual qc string tr static public attribs return decode statick ve ejn atributy qcstring trstaticpublicattribs virtual qc string tr protected types return decode chr n n typy qcstring trprotectedtypes virtual qc string tr protected attribs return decode chr n n atributy qcstring trprotectedattribs virtual qc string tr static protected attribs return decode statick chr n n atributy qcstring trstaticprotectedattribs virtual qc string tr private types return decode priv tn typy qcstring trprivatetypes virtual qc string tr private attribs return decode priv tn atributy qcstring trprivateattribs virtual qc string tr static private attribs return decode statick priv tn atributy qcstring trstaticprivateattribs virtual qc string tr todo return decode pl novan pravy qcstring trtodo virtual qc string tr todo list return decode seznam pl novan ch prav qcstring trtodolist virtual qc string tr referenced by return decode pou v se v qcstring trreferencedby virtual qc string tr remarks return decode pozn mky not checked in a context qcstring trremarks virtual qc string tr attention return decode upozorn n not checked in a context qcstring trattention virtual qc string tr incl by dep graph return decode n sleduj c graf ukazuje kter soubory p mo nebo nep mo vkl daj tento soubor qcstring trinclbydepgraph virtual qc string tr since return decode od not checked in a context qcstring trsince virtual qc string tr legend title return decode vysv tlivky ke grafu qcstring trlegendtitle virtual qc string tr legend docs qc string result zde naleznete vysv tlen jak maj b t interpretov ny grafy kter byly generov ny programem doxygen p n uva ujte n sleduj c p klad n code n neviditeln t da kter se v grafu nezobrazuje proto e do lo k o ez n grafu n class invisible n n t da u kter do lo k o ez n grafu vztah d di nosti je skryt n class truncated public invisible n n b zov t da d d n ve ejn public inheritance n class public base public truncated n n b zov t da pou it pro chr n n d d n protected inheritance n class protected base n n b zov t da vyu it pro priv tn d d n private inheritance n class private base n n t da kter nen dokumentov na koment i programu doxygen n class undocumented n n ablona t dy n template class t class templ n n t da kter je vyu v na t dou inherited n class used n n odvozen t da kter r zn m zp sobem d d z v ce b zov ch t d n class inherited public public base n protected protected base n private private base n public undocumented n public templ int n n private n used m usedclass n n endcode n pokud je polo ka c max dot graph height konfigura n ho souboru nastavena na hodnotu 200 bude vygenerov n n sleduj c graf p center img src graph legend config getenum dot image format center n p n bloky tj uzly v uveden m grafu maj n sleduj c v znam n ul n li ern vypln n obd ln k reprezentuje strukturu nebo t du pro kterou byl graf generov n n li obd ln k s ern m obrysem ozna uje dokumentovanou strukturu nebo t du n li obd ln k s ed m obrysem ozna uje nedokumentovanou strukturu nebo t du n li obd ln k s erven m obrysem ozna uje dokumentovanou strukturu nebo t du pro kterou n nejsou zobrazeny v echny vztahy d di nosti nebo obsa en graf je o ez n v p pad kdy jej n nen mo n um stit do vymezen ho prostoru n ul n ipky tj hrany grafu maj n sleduj c v znam n ul n li tmav modr ipka se pou v pro ozna en vztahu ve ejn d di nosti public mezi dv ma t dami n li tmav zelen ipka ozna uje vztah chr n n d di nosti protected n li tmav erven ipka ozna uje vztah priv tn d di nosti private n li purpurov ipka kreslen rkovan se pou v v p pad kdy je t da obsa ena v jin t d n nebo kdy je pou v na jinou t dou je ozna ena identifik torem jedn nebo v ce prom n ch p es kter n je t da nebo struktura zp stupn na n li lut ipka kreslen rkovan vyjad uje vztah mezi instanc ablony a ablonou t dy na z klad kter byla n instance ablony vytvo ena v popisu ipky jsou uvedeny p slu n parametry ablony n ul n return decode result qcstring trlegenddocs qcstring publicbase protectedbase privatebase publicbase protectedbase privatebase m_usedclass max_dot_graph_height graph_legend config_getenum dot_image_format virtual qc string tr legend return decode vysv tlivky qcstring trlegend virtual qc string tr test return decode test qcstring trtest virtual qc string tr test list return decode seznam test qcstring trtestlist virtual qc string trdcop methods return decode metody dcop qcstring trdcopmethods virtual qc string tr properties return decode vlastnosti qcstring trproperties virtual qc string tr property documentation return decode dokumentace k vlastnosti qcstring trpropertydocumentation virtual qc string tr classes return decode t dy qcstring trclasses virtual qc string tr package const char name return decode qc string bal k name qcstring trpackage qcstring virtual qc string tr package list return decode seznam bal k qcstring trpackagelist virtual qc string tr package list description return decode zde naleznete seznam bal k se stru n m popisem pokud byl uveden qcstring trpackagelistdescription virtual qc string tr packages return decode bal ky qcstring trpackages virtual qc string tr define value return decode hodnota qcstring trdefinevalue virtual qc string tr bug return decode chyba qcstring trbug virtual qc string tr bug list return decode seznam chyb qcstring trbuglist virtual qc string trrt fansicp return 1250 qcstring trrtfansicp virtual qc string trrtf char set return 238 qcstring trrtfcharset virtual qc string trrtf general index return decode rejst k qcstring trrtfgeneralindex virtual qc string tr class bool first capital bool singular qc string result first capital t d t d result singular a y return decode result qcstring trclass first_capital qcstring first_capital virtual qc string tr file bool first capital bool singular qc string result first capital soubor soubor if singular result y return decode result qcstring trfile first_capital qcstring first_capital virtual qc string tr namespace bool first capital bool singular qc string result first capital prostor prostor if singular result y result jmen return decode result qcstring trnamespace first_capital qcstring first_capital virtual qc string tr group bool first capital bool singular qc string result first capital skupin skupin result singular a y return decode result qcstring trgroup first_capital qcstring first_capital virtual qc string tr page bool first capital bool singular qc string result first capital str nk str nk result singular a y return decode result qcstring trpage first_capital qcstring first_capital virtual qc string tr member bool first capital bool singular qc string result first capital len len if singular result y return decode result qcstring trmember first_capital qcstring first_capital virtual qc string tr global bool first capital bool singular qc string result first capital global global if singular result s return result qcstring trglobal first_capital qcstring first_capital virtual qc string tr author bool first capital bool singular qc string result first capital auto auto result singular r i return decode result qcstring trauthor first_capital qcstring first_capital virtual qc string tr references return decode odkazuje se na qcstring trreferences virtual qc string tr implemented from list int num entries return implementuje tr write list num entries qcstring trimplementedfromlist numentries trwritelist numentries virtual qc string tr implemented in list int num entries return decode implementov no v tr write list num entries qcstring trimplementedinlist numentries trwritelist numentries virtual qc string trrtf table of contents return decode obsah qcstring trrtftableofcontents virtual qc string tr deprecated list return decode seznam zastaral ch prvk qcstring trdeprecatedlist virtual qc string tr events return decode ud losti qcstring trevents virtual qc string tr event documentation return decode dokumentace ud lost qcstring treventdocumentation virtual qc string tr package types return decode typy v bal ku qcstring trpackagetypes virtual qc string tr package members return decode funkce v bal ku qcstring trpackagemembers virtual qc string tr static package members return decode statick funkce v bal ku qcstring trstaticpackagemembers virtual qc string tr package attribs return decode atributy bal ku qcstring trpackageattribs virtual qc string tr static package attribs return decode statick atributy bal ku qcstring trstaticpackageattribs virtual qc string tr all return decode v e qcstring trall virtual qc string tr call graph return decode graf vol n pro tuto funkci qcstring trcallgraph virtual qc string tr search for index return decode vyhledat qcstring trsearchforindex virtual qc string tr search results title return decode v sledky vyhled v n qcstring trsearchresultstitle virtual qc string tr search results int num documents if num documents 0 return decode lituji va emu dotazu neodpov d dn dokument else if num documents 1 return decode nalezen jedin dokument kter vyhovuje va emu dotazu else return decode nalezeno b num b dokument kter vyhovuj va emu dotazu nejl pe odpov daj c dokumenty jsou zobrazeny jako prvn qcstring trsearchresults numdocuments numdocuments numdocuments virtual qc string tr search matches return decode nalezen slova qcstring trsearchmatches virtual qc string tr source file qc string filename return decode zdrojov soubor filename qcstring trsourcefile qcstring virtual qc string tr dir description return decode n sleduj c hierarchie adres je zhruba ale ne pln azena podle abecedy qcstring trdirdescription virtual qc string tr dir reference const char dir name qc string result reference k adres i result dir name return decode result qcstring trdirreference dirname qcstring dirname virtual qc string tr dir bool first capital bool singular qc string result first capital adres adres if singular result e return decode result qcstring trdir first_capital qcstring first_capital virtual qc string tr overload text return decode jde o p et enou overloaded metodu kter m usnadnit pou v n od v e uveden metody se li pouze jinak zad van mi argumenty qcstring troverloadtext ftv help ftv help get instance if m theinstance 0 m theinstance new ftv help return m theinstance ftvhelp ftvhelp getinstance m_theinstance m_theinstance ftvhelp m_theinstance void ftv help initialize ftvhelp void ftv help finalize generate tree view ftvhelp generatetreeview int ftv help inc contents depth int i for i 0 i m dc 1 i m cts m indent assert m indent max indent return m indent ftvhelp inccontentsdepth m_dc m_cts m_indent m_indent max_indent m_indent int ftv help dec contents depth int i for i 0 i m dc i m cts assert m indent 0 if m indent 0 m indent q list ftv node nl m indentnodes m indent ftv node parent nl get last q list ftv node children m indentnodes m indent 1 while children is empty parent children append children take 0 return m indent ftvhelp deccontentsdepth m_dc m_cts m_indent m_indent m_indent qlist ftvnode m_indentnodes m_indent ftvnode getlast qlist ftvnode m_indentnodes m_indent isempty m_indent q list ftv node nl m indentnodes m indent ftv node new node new ftv node is dir ref file anchor name if nl is empty nl get last is last false nl append new node if m indent 0 q list ftv node pnl m indentnodes m indent 1 new node parent pnl get last qlist ftvnode m_indentnodes m_indent ftvnode newnode ftvnode isdir isempty getlast islast newnode m_indent qlist ftvnode m_indentnodes m_indent newnode getlast void ftv help generate tree view images static bool done false if done return done true generate tree view images ftv image info p image info while p name qc string file name config getstring html output p name q file f file name if f open io writeonly f write block char p data p len else fprintf stderr warning cannot open file s for writing n file name data f close p ftvhelp generatetreeviewimages ftvimageinfo image_info qcstring filename config_getstring html_output qfile filename io_writeonly writeblock filename void ftv help generate tree view generate alternative index html as a frame qc string file name config getstring html output index doxygen html file extension q file f f set name file name if f open io writeonly err cannot open file s for writing n file name data return else q text stream t f if qt version 200 t set encoding q text stream latin1 endif t doctype html public w3c dtd html 4 0 transitional en n t html head t meta http equiv content type content text html charset the translator id language charset n t title if config getstring project name is empty t doxygen documentation else t config getstring project name t title head endl t frameset cols config getint treeview width endl t frame src tree doxygen html file extension name treefrm endl t frame src main doxygen html file extension name basefrm endl t frameset endl t html endl f close generate tree view frame file name config getstring html output tree doxygen html file extension f set name file name if f open io writeonly err cannot open file s for writing n file name data return else q text stream t f if qt version 200 t set encoding q text stream latin1 endif t html xmlns http www w3 org 1999 xhtml xml lang en lang en n t head n t meta http equiv content type content text xhtml charset the translator id language charset n t meta http equiv content style type content text css n t meta http equiv content language content en n t link rel stylesheet href qc string cssname config getstring html stylesheet if cssname is empty t doxygen css else q file info cssfi cssname if cssfi exists err error user specified html style sheet file does not exist n t cssfi file name t endl t title tree view title n t style type text css n t n t directory font size 10pt font weight bold n t directory h3 margin 0px margin top 1em font size 11pt n t directory p margin 0px white space nowrap n t directory div display none margin 0px n t directory img vertical align middle n t n t style n t script type text javascript n t hide script from old browsers n t n t function find child node node name n t n t var temp n t if node null n t n t return null n t n t node node first child n t while node null n t n t if node node name name n t n t return node n t n t temp find child node node name n t if temp null n t n t return temp n t n t node node next sibling n t n t return null n t n t n user has clicked on a node folder or in the tree t function toggle folder id image node n t n t var folder document get element by id id n t var l image node src length n if the user clicks on the book icon we move left one image so the code below will also adjust the icon t if image node src substring l 20 l ftv icon file folderclosed n t image node src substring l 18 l ftv icon file folderopen n t n t image node image node previous sibling n t l image node src length n t n t var vl ftv icon file vertline n t if image node null image node node name img n t n t image node find child node image node img n t if image node null l image node src length n t n t if folder null n t n t n node controls a open section we need to close it t else if folder style display block n t n t while image node null n t image node src substring l vl length l vl n t n t image node image node next sibling n t n t if image node null n t n t image node next sibling src ftv icon file folderclosed n t if image node src substring l 13 l ftv icon file mnode n t n t image node src ftv icon file pnode n t n t else if image node src substring l 17 l ftv icon file mlastnode n t n t image node src ftv icon file plastnode n t n t n t folder style display none n t n t else n section is closed we need to open it t n t while image node null n t image node src substring l vl length l vl n t n t image node image node next sibling n t n t if image node null n t n t image node next sibling src ftv icon file folderopen n t if image node src substring l 13 l ftv icon file pnode n t n t image node src ftv icon file mnode n t n t else if image node src substring l 17 l ftv icon file plastnode n t n t image node src ftv icon file mlastnode n t n t n t folder style display block n t n t n t n t end script hiding n t script n t head n t n t body n t div class directory n t h3 qc string proj name config getstring project name if proj name is empty t root else t proj name t h3 n t div style display block n generate tree t m indentnodes 0 0 t div n t div n t body n t html n generate tree view images ftvhelp generatetreeview qcstring filename config_getstring html_output htmlfileextension qfile setname filename io_writeonly filename qtextstream qt_version setencoding qtextstream thetranslator idlanguagecharset config_getstring project_name isempty config_getstring project_name config_getint treeview_width htmlfileextension htmlfileextension filename config_getstring html_output htmlfileextension setname filename io_writeonly filename qtextstream qt_version setencoding qtextstream thetranslator idlanguagecharset qcstring config_getstring html_stylesheet isempty qfileinfo filename treeview findchildnode firstchild nodename findchildnode nextsibling togglefolder imagenode getelementbyid imagenode imagenode ftv_icon_file imagenode ftv_icon_file imagenode imagenode previoussibling imagenode ftv_icon_file imagenode imagenode nodename imagenode findchildnode imagenode imagenode imagenode imagenode imagenode imagenode imagenode nextsibling imagenode imagenode nextsibling ftv_icon_file imagenode ftv_icon_file imagenode ftv_icon_file imagenode ftv_icon_file imagenode ftv_icon_file imagenode imagenode imagenode imagenode nextsibling imagenode imagenode nextsibling ftv_icon_file imagenode ftv_icon_file imagenode ftv_icon_file imagenode ftv_icon_file imagenode ftv_icon_file qcstring projname config_getstring project_name projname isempty projname generatetree m_indentnodes generatetreeviewimages void ftv help generate tree q text stream t const q list ftv node nl int level qc string spaces spaces fill level 2 8 q list iterator ftv node nli nl ftv node n for nli to first n nli current nli t spaces p generate indent t n 0 if n is dir t img ftv imgattribs folderclosed onclick toggle folder folder folder id this generate link t n t p n t spaces div id folder folder id n folder id generate tree t n children level 1 t spaces div n else t img ftv imgattribs doc generate link t n t p n ftvhelp generatetree qtextstream qlist ftvnode qcstring qlistiterator ftvnode ftvnode tofirst generateindent isdir ftv_imgattribs togglefolder folderid generatelink folderid folderid generatetree ftv_imgattribs generatelink void ftv help generate indent q text stream t ftv node n int level if n parent generate indent t n parent level 1 from the root up to node n do if level 0 item before a dir or document if n is last if n is dir t img ftv imgattribs plastnode onclick toggle folder folder folder id this else t img ftv imgattribs lastnode else if n is dir t img ftv imgattribs pnode onclick toggle folder folder folder id this else t img ftv imgattribs node else item at another level if n is last t img ftv imgattribs blank else t img ftv imgattribs vertline ftvhelp generateindent qtextstream ftvnode generateindent islast isdir ftv_imgattribs togglefolder folderid ftv_imgattribs isdir ftv_imgattribs togglefolder folderid ftv_imgattribs islast ftv_imgattribs ftv_imgattribs void ftv help generate link q text stream t ftv node n qc string dest printf ftv help generate link ref s file s anchor s n n ref data n file data n anchor data if n file is empty no link t b n name b else link into other frame if n ref is empty link to entity imported via tag file t a class el ref t doxygen n ref if dest doxygen tag destination dict n ref t dest t else local link t a class el t href if n ref is empty if dest doxygen tag destination dict n ref t dest t n file doxygen html file extension if n anchor is empty t n anchor t target basefrm t n name t a if n ref is empty t nbsp external ftvhelp generatelink qtextstream ftvnode qcstring ftvhelp generatelink isempty isempty elref tagdestinationdict isempty tagdestinationdict htmlfileextension isempty isempty ftv help ftv help initial depth m dc 0 m cf 0 m indentnodes new q list ftv node max indent m indentnodes 0 set auto delete true m indent 0 ftvhelp ftvhelp m_dc m_cf m_indentnodes qlist ftvnode max_indent m_indentnodes setautodelete m_indent ftv help ftv help delete m indentnodes ftvhelp ftvhelp m_indentnodes image image int w int h data new uchar w h memset data 0 w h width w height h image image delete data void image set pixel int x int y uchar val if x 0 x width y 0 y height data y width x val setpixel uchar image get pixel int x int y const if x 0 x width y 0 y height return data y width x else return 0 getpixel void image write char int x int y char c uchar fg if c int xf yf ci c int row offset 0 int cw char width ci int cp char pos ci for yf 0 yf char height yf unsigned short bit pattern 0 int bits left cw int byte offset row offset cp 3 int bit offset cp 7 get the bit pattern for row yf of the character from the font data while bits left 0 int bits 8 bit offset if bits bits left bits bits left bit pattern bits bit pattern font raw byte offset bit offset 0xff 8 bits bits left bits bit offset 0 byte offset int mask 1 cw 1 draw character row yf for xf 0 xf cw xf set pixel x xf y yf bit pattern mask fg get pixel x xf y yf mask 1 row offset char set width writechar rowoffset charwidth charpos charheight bitpattern bitsleft byteoffset rowoffset bitoffset bitsleft bitoffset bitsleft bitsleft bitpattern bitpattern fontraw byteoffset bitoffset bitsleft bitoffset byteoffset setpixel bitpattern getpixel rowoffset charsetwidth void image write string int x int y const char s uchar fg if s char c while c s write char x y c fg x char width c writestring writechar charwidth void image draw horz line int y int xs int xe uchar col index uint mask int x i 0 j 0 for x xs x xe x j if j 1 i if mask 1 i 0x1f set pixel x y col index drawhorzline colindex setpixel colindex void image draw horz arrow int y int xs int xe uchar col index uint mask draw horz line y xs xe col index mask int i for i 0 i 6 i int h i 1 draw vert line xe i y h y h col index 0xffffffff drawhorzarrow colindex drawhorzline colindex drawvertline colindex void image draw vert line int x int ys int ye uchar col index uint mask int y i 0 for y ys y ye y i if mask 1 i 0x1f set pixel x y col index drawvertline colindex setpixel colindex void image draw vert arrow int x int ys int ye uchar col index uint mask draw vert line x ys ye col index mask int i for i 0 i 6 i int h i 1 draw horz line ys i x h x h col index 0xffffffff drawvertarrow colindex drawvertline colindex drawhorzline colindex void image draw rect int x int y int w int h uchar col index uint mask draw horz line y x x w 1 col index mask draw horz line y h 1 x x w 1 col index mask draw vert line x y y h 1 col index mask draw vert line x w 1 y y h 1 col index mask drawrect colindex drawhorzline colindex drawhorzline colindex drawvertline colindex drawvertline colindex void image fill rect int x int y int lwidth int lheight uchar col index uint mask int xp yp xi yi for yp y yi 0 yp y lheight yp yi for xp x xi 0 xp x lwidth xp xi if mask 1 xi yi 0x1f set pixel xp yp col index fillrect colindex setpixel colindex bool image save const char file name int mode png encoder enc data mode 0 palette palette2 width height mode 0 3 4 0 enc write file name return true filename pngencoder filename uint image string length const char s int w 0 if s char c while c s w char width c return w stringlength charwidth html help index html help index list new index field list dict new index field dict 10007 list set auto delete true htmlhelpindex htmlhelpindex indexfieldlist indexfielddict setautodelete html help index html help index delete list delete dict htmlhelpindex htmlhelpindex bool reversed qc string key level1 if level2 key qc string level2 if dict find key 0 new key printf html help index add item s s s s n level1 level2 url anchor index field f new index field f name key f url url f anchor anchor f link has link f reversed reversed list in sort f dict insert key f qcstring qcstring htmlhelpindex additem indexfield indexfield haslink insort void html help index write fields q text stream t index field list iterator ifli list index field f qc string last level1 bool level2 started false for f ifli current ifli qc string level1 level2 int i if i f name find 1 level1 f name left i level2 f name right f name length i 1 else level1 f name copy if level1 last level1 finish old list at level 2 if level2 started t ul endl level2 started false antony added this code so that an item with only one subitem is written without any subitem for example a1 b1 will create only a1 not separate subitem for b1 a2 b2 a2 b3 qc string next level1 index field fnext ifli if fnext next level1 fnext name left fnext name find ifli if level1 next level1 level2 antony if level2 is empty t li object type text sitemap t param name local value f url doxygen html file extension if f anchor is empty f reversed t f anchor t t param name name value level1 object n else if f link t li object type text sitemap t param name local value f url doxygen html file extension if f anchor is empty f reversed t f anchor t t param name name value level1 object n else t li object type text sitemap t param name see also value level1 t param name name value level1 object n if level2 started level2 is empty start new list at level 2 t ul endl level2 started true else if level2 started level2 is empty end list at level 2 t ul endl level2 started false if level2 started t li object type text sitemap t param name local value f url doxygen html file extension if f anchor is empty t f anchor t t param name name value level2 object n last level1 level1 copy if level2 started t ul endl htmlhelpindex writefields qtextstream indexfieldlistiterator indexfield qcstring lastlevel1 level2started qcstring lastlevel1 level2started level2started qcstring nextlevel1 indexfield nextlevel1 nextlevel1 isempty htmlfileextension isempty htmlfileextension isempty level2started isempty level2started level2started isempty level2started level2started htmlfileextension isempty lastlevel1 level2started int compare items gci item1 gci item2 return stricmp index field item1 name index field item2 name compareitems indexfield indexfield int cmd mapper map const char name return instance find name cmdmapper void cmd mapper free instance delete m instance m instance 0 cmdmapper freeinstance m_instance m_instance cmd mapper cmd mapper instance if m instance 0 m instance new cmd mapper return m instance cmdmapper cmdmapper m_instance m_instance cmdmapper m_instance cmd mapper cmd mapper m map 89 m map set auto delete true command map p cmd map while p cmd name m map insert p cmd name new int p cmd id p cmdmapper cmdmapper m_map m_map setautodelete commandmap cmdmap cmdname m_map cmdname cmdid int cmd mapper find const char name int result m map find name if result return result else return cmd unknown cmdmapper m_map cmd_unknown int html tag mapper map const char name return instance find name htmltagmapper void html tag mapper free instance delete m instance m instance 0 htmltagmapper freeinstance m_instance m_instance html tag mapper html tag mapper instance if m instance 0 m instance new html tag mapper return m instance htmltagmapper htmltagmapper m_instance m_instance htmltagmapper m_instance html tag mapper html tag mapper m map 89 m map set auto delete true command map p html tag map while p cmd name m map insert p cmd name new int p cmd id p htmltagmapper htmltagmapper m_map m_map setautodelete commandmap htmltagmap cmdname m_map cmdname cmdid int html tag mapper find const char name int result m map find name if result return result else return html unknown htmltagmapper m_map html_unknown int compare items gci item1 gci item2 return stricmp dot node item1 m label dot node item2 m label compareitems dotnode m_label dotnode m_label void visit doc word w indent leaf printf s w word data docword indent_leaf void visit doc linked word w indent leaf printf s w word data doclinkedword indent_leaf void visit doc white space w indent leaf if m insidepre printf s w chars data else printf docwhitespace indent_leaf m_insidepre void visit doc symbol s indent leaf switch s symbol case doc symbol b slash printf break case doc symbol at printf break case doc symbol less printf break case doc symbol greater printf break case doc symbol amp printf break case doc symbol dollar printf break case doc symbol hash printf break case doc symbol percent printf break case doc symbol copy printf copy break case doc symbol apos printf break case doc symbol quot printf break case doc symbol uml printf cuml s letter break case doc symbol acute printf cacute s letter break case doc symbol grave printf cgrave s letter break case doc symbol circ printf ccirc s letter break case doc symbol tilde printf ctilde s letter break case doc symbol szlig printf szlig break case doc symbol cedil printf ccedul s letter break case doc symbol ring printf cring s letter break case doc symbol nbsp printf nbsp break default printf error unknown symbol found n docsymbol indent_leaf docsymbol bslash docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol docsymbol void visit docurl u indent leaf printf s u url data indent_leaf void visit doc line break indent leaf printf br doclinebreak indent_leaf void visit doc hor ruler indent leaf printf hr dochorruler indent_leaf void visit doc style change s indent leaf switch s style case doc style change bold if s enable printf bold else printf bold break case doc style change italic if s enable printf italic else printf italic break case doc style change code if s enable printf code else printf code break case doc style change subscript if s enable printf sub else printf sub break case doc style change superscript if s enable printf sup else printf sup break case doc style change center if s enable printf center else printf center break case doc style change small if s enable printf small else printf small break case doc style change preformatted if s enable printf pre else printf pre break case doc style change div if s enable printf div else printf div break case doc style change span if s enable printf span else printf span break docstylechange indent_leaf docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange docstylechange void visit doc verbatim s indent leaf switch s type case doc verbatim code printf code break case doc verbatim verbatim printf verbatim break case doc verbatim html only printf htmlonly break case doc verbatim man only printf manonly break case doc verbatim latex only printf latexonly break case doc verbatim xml only printf xmlonly break case doc verbatim dot printf dot break printf s s text data switch s type case doc verbatim code printf code break case doc verbatim verbatim printf verbatim break case doc verbatim html only printf htmlonly break case doc verbatim man only printf manonly break case doc verbatim latex only printf latexonly break case doc verbatim xml only printf xmlonly break case doc verbatim dot printf dot break docverbatim indent_leaf docverbatim docverbatim docverbatim htmlonly docverbatim manonly docverbatim latexonly docverbatim xmlonly docverbatim docverbatim docverbatim docverbatim htmlonly docverbatim manonly docverbatim latexonly docverbatim xmlonly docverbatim void visit doc anchor a indent leaf printf anchor name s a anchor data docanchor indent_leaf void visit doc include inc indent leaf printf include file s type inc file data switch inc type case doc include include printf include break case doc include inc with lines printf incwithlines break case doc include dont include printf dontinclude break case doc include html include printf htmlinclude break case doc include verb include printf verbinclude break printf docinclude indent_leaf docinclude docinclude incwithlines docinclude dontinclude docinclude htmlinclude docinclude verbinclude void visit doc inc operator op indent leaf printf incoperator pattern s type op pattern data switch op type case doc inc operator line printf line break case doc inc operator skip printf skip break case doc inc operator skip line printf skipline break case doc inc operator until printf until break printf docincoperator indent_leaf docincoperator docincoperator docincoperator skipline docincoperator void visit doc formula f indent leaf printf formula name s test s f name data f text data docformula indent_leaf void visit doc index entry i indent leaf printf indexentry s indexentry n i entry data docindexentry indent_leaf void visit pre doc auto list l indent pre if l is enum list printf ol n else printf ul n visitpre docautolist indent_pre isenumlist void visit post doc auto list l indent post if l is enum list printf ol n else printf ul n visitpost docautolist indent_post isenumlist void visit pre doc auto list item indent pre printf li n visitpre docautolistitem indent_pre void visit post doc auto list item indent post printf li n visitpost docautolistitem indent_post void visit pre doc para indent pre printf para n visitpre docpara indent_pre void visit post doc para indent post printf para n visitpost docpara indent_post void visit pre doc root indent pre printf root n visitpre docroot indent_pre void visit post doc root indent post printf root n visitpost docroot indent_post void visit pre doc simple sect s indent pre printf simplesect type switch s type case doc simple sect see printf see break case doc simple sect return printf return break case doc simple sect author printf author break case doc simple sect authors printf authors break case doc simple sect version printf version break case doc simple sect since printf since break case doc simple sect date printf date break case doc simple sect note printf note break case doc simple sect warning printf warning break case doc simple sect pre printf pre break case doc simple sect post printf post break case doc simple sect invar printf invar break case doc simple sect remark printf remark break case doc simple sect attention printf attention break case doc simple sect user printf user break case doc simple sect rcs printf rcs break case doc simple sect unknown printf unknown break printf n visitpre docsimplesect indent_pre docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect docsimplesect void visit post doc simple sect indent post printf simplesect n visitpost docsimplesect indent_post void visit pre doc title indent pre printf title n visitpre doctitle indent_pre void visit post doc title indent post printf title n visitpost doctitle indent_post void visit pre doc simple list indent pre printf ul n visitpre docsimplelist indent_pre void visit post doc simple list indent post printf ul n visitpost docsimplelist indent_post void visit pre doc simple list item indent pre printf li n visitpre docsimplelistitem indent_pre void visit post doc simple list item indent post printf li n visitpost docsimplelistitem indent_post void visit pre doc section s indent pre printf sect d n s level visitpre docsection indent_pre void visit post doc section s indent post printf sect d n s level visitpost docsection indent_post void visit pre doc html list s indent pre if s type doc html list ordered printf ol n else printf ul n visitpre dochtmllist indent_pre dochtmllist void visit post doc html list s indent post if s type doc html list ordered printf ol n else printf ul n visitpost dochtmllist indent_post dochtmllist void visit pre doc html list item indent pre printf li n visitpre dochtmllistitem indent_pre void visit post doc html list item indent post printf li n visitpost dochtmllistitem indent_post void visit pre doc html desc list indent pre printf dl n visitpre dochtmldesclist indent_pre void visit post doc html desc list indent post printf dl n visitpost dochtmldesclist indent_post void visit pre doc html desc title indent pre printf dt n visitpre dochtmldesctitle indent_pre void visit post doc html desc title indent post printf dt n visitpost dochtmldesctitle indent_post void visit pre doc html desc data indent pre printf dd n visitpre dochtmldescdata indent_pre void visit post doc html desc data indent post printf dd n visitpost dochtmldescdata indent_post void visit pre doc html table t indent pre printf table rows d cols d n t num rows t num cols visitpre dochtmltable indent_pre numrows numcols void visit post doc html table indent post printf table n visitpost dochtmltable indent_post void visit pre doc html row indent pre printf tr n visitpre dochtmlrow indent_pre void visit post doc html row indent post printf tr n visitpost dochtmlrow indent_post void visit pre doc html cell c indent pre printf t c n c is heading h d visitpre dochtmlcell indent_pre isheading void visit post doc html cell c indent post printf t c n c is heading h d visitpost dochtmlcell indent_post isheading void visit pre doc html caption indent pre printf caption n visitpre dochtmlcaption indent_pre void visit post doc html caption indent post printf caption n visitpost dochtmlcaption indent_post void visit pre doc internal indent pre printf internal n visitpre docinternal indent_pre void visit post doc internal indent post printf internal n visitpost docinternal indent_post void visit pre doch ref href indent pre printf a url s n href url data visitpre dochref indent_pre void visit post doch ref indent post printf a n visitpost dochref indent_post void visit pre doc html header header indent pre printf h d n header level visitpre dochtmlheader indent_pre void visit post doc html header header indent post printf h d n header level visitpost dochtmlheader indent_post void visit pre doc image img indent pre printf image src s type img name data switch img type case doc image html printf html break case doc image latex printf latex break case doc image rtf printf rtf break printf width s height s n img width data img height data visitpre docimage indent_pre docimage docimage docimage void visit post doc image indent post printf image n visitpost docimage indent_post void visit pre doc dot file df indent pre printf dotfile src s n df name data visitpre docdotfile indent_pre void visit post doc dot file indent post printf dotfile n visitpost docdotfile indent_post void visit pre doc link lnk indent pre printf link ref s file s anchor s n lnk ref data lnk file data lnk anchor data visitpre doclink indent_pre void visit post doc link indent post printf link n visitpost doclink indent_post void visit pre doc ref ref indent pre printf ref ref s file s anchor s target title s has link text s ref to anchor s ref to section s n ref ref data ref file data ref anchor data ref target title data ref has link text yes no ref ref to anchor yes no ref ref to section yes no visitpre docref indent_pre targettitle haslinktext reftoanchor reftosection targettitle haslinktext reftoanchor reftosection void visit post doc ref indent post printf ref n visitpost docref indent_post void visit pre doc sec ref item ref indent pre printf secrefitem target s n ref target data visitpre docsecrefitem indent_pre void visit post doc sec ref item indent post printf secrefitem n visitpost docsecrefitem indent_post void visit pre doc sec ref list indent pre printf secreflist n visitpre docsecreflist indent_pre void visit post doc sec ref list indent post printf secreflist n visitpost docsecreflist indent_post void visit pre doc param list pl indent pre q str list iterator sli pl parameters q list iterator doc node sli pl parameters const char s doc node param printf parameters for sli to first param sli current sli printf param if param kind doc node kind word visit doc word param else if param kind doc node kind linkedword visit doc linked word param printf param printf n visitpre docparamlist indent_pre qstrlistiterator qlistiterator docnode docnode tofirst docnode kind_word docword docnode kind_linkedword doclinkedword void visit post doc param list indent post printf parameters n visitpost docparamlist indent_post void visit pre doc param sect ps indent pre printf paramsect type switch ps type case doc param sect param printf param break case doc param sect ret val printf retval break case doc param sect exception printf exception break case doc param sect unknown printf unknown break printf n visitpre docparamsect indent_pre docparamsect docparamsect retval docparamsect docparamsect void visit post doc param sect indent post printf paramsect n visitpost docparamsect indent_post void visit pre docx ref item x indent pre printf xrefitem file s anchor s title s n x file data x anchor data x title data visitpre docxrefitem indent_pre void visit post docx ref item indent post printf xrefitem n visitpost docxrefitem indent_post void visit pre doc internal ref r indent pre printf internalref file s anchor s n r file data r anchor data visitpre docinternalref indent_pre void visit post doc internal ref indent post printf internalref n visitpost docinternalref indent_post void visit pre doc copy c indent pre printf copy link s n c link data visitpre doccopy indent_pre void visit post doc copy indent post printf copy n visitpost doccopy indent_post void visit pre doc text indent pre printf text n visitpre doctext indent_pre void visit post doc text indent post printf text n visitpost doctext indent_post void indent if m needsenter printf n for int i 0 i m indent i printf m needsenter false m_needsenter m_indent m_needsenter void indent leaf if m needsenter indent m needsenter true indent_leaf m_needsenter m_needsenter void indent pre indent m indent indent_pre m_indent void indent post m indent indent indent_post m_indent q buffer q buffer set flags io direct a inc 16 initial increment a len 0 io index 0 qbuffer qbuffer setflags io_direct a_inc a_len ioindex q buffer q buffer q byte array buf a buf set flags io direct a len a size a inc a len 512 512 a len initial increment if a inc 16 a inc 16 io index 0 qbuffer qbuffer qbytearray setflags io_direct a_len a_inc a_len a_len a_inc a_inc ioindex q buffer q buffer qbuffer qbuffer bool q buffer set buffer q byte array buf if is open if defined check state q warning q buffer set buffer buffer is open endif return false a buf a len a size a inc a len 512 512 a len initial increment if a inc 16 a inc 16 io index 0 return true qbuffer setbuffer qbytearray isopen check_state qwarning qbuffer setbuffer a_len a_inc a_len a_len a_inc a_inc ioindex bool q buffer open int m if is open buffer already open if defined check state q warning q buffer open buffer already open endif return false set mode m if m io truncate truncate buffer a resize 0 a len 0 if m io append append to end of buffer io index a size else io index 0 a inc 16 set state io open set status 0 return true qbuffer isopen check_state qwarning qbuffer setmode io_truncate a_len io_append ioindex ioindex a_inc setstate io_open setstatus void q buffer close if is open set flags io direct io index 0 a inc 16 qbuffer isopen setflags io_direct ioindex a_inc void q buffer flush return qbuffer bool q buffer at int pos if defined check state if is open q warning q buffer at buffer is not open return false endif if uint pos a len if defined check range q warning q buffer at index d out of range pos endif return false io index pos return true qbuffer check_state isopen qwarning qbuffer a_len check_range qwarning qbuffer ioindex int q buffer read block char p uint len if defined check state check ptr p if is open buffer not open q warning q buffer read block buffer not open return 1 if is readable reading not permitted q warning q buffer read block read operation not permitted return 1 endif if uint io index len a size overflow if uint io index a size set status io readerror return 1 else len a size uint io index memcpy p a data io index len io index len return len qbuffer readblock check_state check_ptr isopen qwarning qbuffer readblock isreadable qwarning qbuffer readblock ioindex ioindex setstatus io_readerror ioindex ioindex ioindex int q buffer write block const char p uint len if defined check null if p 0 len 0 q warning q buffer write block null pointer error endif if defined check state if is open buffer not open q warning q buffer write block buffer not open return 1 if is writable writing not permitted q warning q buffer write block write operation not permitted return 1 endif if uint io index len a len overflow uint new len a len a inc uint io index len a len a inc 1 if a resize new len could not resize if defined check null q warning q buffer write block memory allocation error endif set status io resourceerror return 1 a inc 2 double increment a len new len a shd len uint io index len memcpy a data io index p len io index len if a shd len uint io index a shd len uint io index fake not alloc d length return len qbuffer writeblock check_null qwarning qbuffer writeblock check_state isopen qwarning qbuffer writeblock iswritable qwarning qbuffer writeblock ioindex a_len new_len a_len a_inc ioindex a_len a_inc new_len check_null qwarning qbuffer writeblock setstatus io_resourceerror a_inc a_len new_len ioindex ioindex ioindex ioindex ioindex int q buffer read line char p uint maxlen if defined check state check ptr p if is open buffer not open q warning q buffer read line buffer not open return 1 if is readable reading not permitted q warning q buffer read line read operation not permitted return 1 endif if maxlen 0 return 0 uint start uint io index char d a data io index maxlen make room for 0 terminator if a size uint io index maxlen maxlen a size uint io index while maxlen if p d n break p 0 io index d a data return uint io index start qbuffer readline check_state check_ptr isopen qwarning qbuffer readline isreadable qwarning qbuffer readline ioindex ioindex ioindex ioindex ioindex ioindex int q buffer getch if defined check state if is open buffer not open q warning q buffer getch buffer not open return 1 if is readable reading not permitted q warning q buffer getch read operation not permitted return 1 endif if uint io index 1 a size overflow set status io readerror return 1 return uchar a data io index qbuffer check_state isopen qwarning qbuffer isreadable qwarning qbuffer ioindex setstatus io_readerror ioindex int q buffer putch int ch if defined check state if is open buffer not open q warning q buffer putch buffer not open return 1 if is writable writing not permitted q warning q buffer putch write operation not permitted return 1 endif if uint io index 1 a len overflow char buf 1 buf 0 char ch if write block buf 1 1 return 1 write error else a data io index char ch if a shd len uint io index a shd len uint io index return ch qbuffer check_state isopen qwarning qbuffer iswritable qwarning qbuffer ioindex a_len writeblock ioindex ioindex ioindex int q buffer ungetch int ch if defined check state if is open buffer not open q warning q buffer ungetch buffer not open return 1 if is readable reading not permitted q warning q buffer ungetch read operation not permitted return 1 endif if ch 1 if io index io index else ch 1 return ch qbuffer check_state isopen qwarning qbuffer isreadable qwarning qbuffer ioindex ioindex q windows local codec heuristic content match function found in the qt sources a q text codec subclass might have improved performance if you also re implement dl dt c bool can encode q char const qwindowslocalcodec heuristiccontentmatch qtextcodec canencode qchar mb codec to unicode multibyte uchars return result to_unicode_multibyte alias i alias i charmap lt i token i gt x i hexbyte i lt u i unicode i gt lt i token i gt d i decbyte i lt u i unicode i gt lt i token i gt i octbyte i lt u i unicode i gt lt i token i gt i any i i any i lt u i unicode i gt end charmap pre the resulting q text codec is returned and also added to the global list of codecs the name of the result is taken qtextcodec if the letters and numbers are the same we have an almost perfect match q string h letters and numbers hint q string n letters and numbers name if h n return qstrlen hint 1 if h strip white space n strip white space return qstrlen hint 2 qstring lettersandnumbers qstring lettersandnumbers stripwhitespace stripwhitespace else if try locale list iso8859 6locales lang locale mapper codec for name iso 8859 6 i else if try locale list iso8859 7locales lang locale mapper codec for name iso 8859 7 else if try locale list iso8859 8locales lang locale mapper codec for name iso 8859 8 i else if try locale list iso8859 9locales lang locale mapper codec for name iso 8859 9 else if try locale list iso8859 15locales lang locale mapper codec for name iso 8859 15 else if try locale list tis 620locales lang locale mapper codec for name iso 8859 11 else if try locale list koi8 ulocales lang locale mapper codec for name koi8 u try_locale_list iso8859_6locales localemapper codecforname try_locale_list iso8859_7locales localemapper codecforname try_locale_list iso8859_8locales localemapper codecforname try_locale_list iso8859_9locales localemapper codecforname try_locale_list iso8859_15locales localemapper codecforname try_locale_list tis_620locales localemapper codecforname try_locale_list koi8_ulocales localemapper codecforname searches all installed q text codec objects returning the one which best matches given name returns null if no codec has a match closeness above a accuracy sa heuristic name match q text codec q text codec codec for name const char hint int accuracy setup q list iterator q text codec i all q text codec result 0 int best accuracy for q text codec cursor cursor i i int s cursor heuristic name match hint qtextcodec heuristicnamematch qtextcodec qtextcodec codecforname qlistiterator qtextcodec qtextcodec qtextcodec heuristicnamematch a simple utility function for heuristic name match it does some very minor character skipping heuristicnamematch if ru ru codec qc string origlocale setlocale lc ctype i unicode koi8r latin5 name 0x044e 0xc0 0xee cyrillic small letter yu 0x042e 0xe0 0xce cyrillic capital letter yu int latin5 tolower 0xce int koi8r tolower 0xe0 if koi8r 0xc0 latin5 0xee ru ru codec q text codec codec for name koi8 r else if koi8r 0xc0 latin5 0xee ru ru codec q text codec codec for name iso 8859 5 else something else again let s assume throws dice ru ru codec q text codec codec for name koi8 r q warning q text codec using koi8 r probe failed 02x 02x s koi8r latin5 i setlocale lc ctype origlocale data return ru ru codec endif static q text codec locale mapper 0 void qt set locale codec q text codec codec locale mapper codec returns a pointer to the codec most suitable for this locale q text codec q text codec codec for locale if locale mapper return locale mapper setup ifdef os win32 locale mapper new q windows local codec else very poorly defined and followed standards causes lots of code to try to get all the cases char lang qstrdup getenv lang char p lang strchr lang 0 if p p some versions of setlocale return encoding others not char ctype qstrdup setlocale lc ctype 0 some linux distributions have broken locales which will return c for lc ctype if qstrcmp ctype c 0 delete ctype else if lang delete lang lang ctype p lang strchr lang 0 if p p if there is an encoding and we don t know it we return 0 user knows what they are doing codecs will believe them locale mapper codec for name lang if locale mapper use or codec disagree locale mapper codec for name p 1 if locale mapper p p ru_ru_codec qcstring lc_ctype ru_ru_codec qtextcodec codecforname ru_ru_codec qtextcodec codecforname ru_ru_codec qtextcodec codecforname qwarning qtextcodec lc_ctype ru_ru_codec qtextcodec localemapper qt_set_locale_codec qtextcodec localemapper qtextcodec qtextcodec codecforlocale localemapper localemapper _os_win32_ localemapper qwindowslocalcodec lc_ctype lc_ctype localemapper codecforname localemapper localemapper codecforname localemapper void q text codec delete all codecs if all return destroying is ok true q list q text codec ball all all 0 ball clear delete ball destroying is ok false qtextcodec deleteallcodecs destroying_is_ok qlist qtextcodec destroying_is_ok q text codec q text codec load charmap qio device iod q text codec fromiod r new q text codec fromiod iod if r ok delete r r 0 return r qtextcodec qtextcodec loadcharmap qiodevice qtextcodecfromiod qtextcodecfromiod the iana character sets encoding file a for more information it is important that each q text codec subclass return the correct unique value for this function qtextcodec a return value of 0 indicates that the text should be decoded with this codec rather than as ascii but there is no particular evidence the value should range up to a len thus the caller is responsible for deleting the returned object q text decoder q text codec make decoder const return new q text stateless decoder this qtextdecoder qtextcodec makedecoder qtextstatelessdecoder the default implementation makes a decoder with make decoder and converts the input with that note that the default make decoder implementation makes a decoder that simply calls this function hence subclasses e must reimplement one function or the other to avoid infinite recursion makedecoder makedecoder delete i return result name is negative or too large the length of a uc is used instead the value returned is the property of the caller which is responsible for deleting it with delete the length of the resulting unicode character sequence is returned in a len in out leninout qc string q text codec from unicode const q string uc int len in out const q text encoder i make encoder qcstring qtextcodec fromunicode qstring leninout qtextencoder makeencoder overload qc string q text codec from unicode const q string uc const qcstring qtextcodec fromunicode qstring q string q text codec to unicode const q byte array a int len const qstring qtextcodec tounicode qbytearray q string q text codec to unicode const q byte array a const qstring qtextcodec tounicode qbytearray of qt to delete it which is done at q application destruction q text codec q text codec qapplication qtextcodec qtextcodec of the result in len in out dl again these are mutually recursive so only one needs to be implemented or both if better efficiency is possible leninout returns a string cotnaining the letters and numbers from input with a space separating run of a character class e g iso8859 1 becomes iso 8859 1 static q string letters and numbers const char input q string result q char c while input input c input if c is letter c is number result c lower if input 1 add space at character class transition except transition from upper case to lower case letter q char n input 1 if c is letter n is letter if c c lower n n upper result qstring lettersandnumbers qstring qchar isletter isnumber qchar isletter isletter destructs the encoder q xml namespace support q xml namespace support reset qxmlnamespacesupport qxmlnamespacesupport q xml namespace support q xml namespace support qxmlnamespacesupport qxmlnamespacesupport void q xml namespace support set prefix const q string pre const q string uri if pre is null ns insert uri else ns insert pre uri qxmlnamespacesupport setprefix qstring qstring isnull q string q xml namespace support prefix const q string uri const q map q string q string const iterator itc it ns begin while itc it ns end it if itc data uri itc key is empty return itc key return qstring qxmlnamespacesupport qstring qmap qstring qstring constiterator isempty q string q xml namespace support uri const q string prefix const const q string returi ns prefix return returi qstring qxmlnamespacesupport qstring qstring q string prefix q string localname const uint pos search the for pos 0 pos qname length pos if qname at pos break and split prefix qname left pos localname qname mid pos 1 qstring qstring q string nsuri q string localname const uint pos search the for pos 0 pos qname length pos if qname at pos break if pos qname length there was a nsuri uri qname left pos localname qname mid pos 1 else there was no if is attribute nsuri attributes don t take default namespace else nsuri uri get default namespace localname qname qstring qstring isattribute q string list q xml namespace support prefixes const q string list list q map q string q string const iterator itc it ns begin while itc it ns end it if itc key is empty list append itc key return list qstringlist qxmlnamespacesupport qstringlist qmap qstring qstring constiterator isempty q string list q xml namespace support prefixes const q string uri const q string list list q map q string q string const iterator itc it ns begin while itc it ns end it if itc data uri itc key is empty list append itc key return list qstringlist qxmlnamespacesupport qstring qstringlist qmap qstring qstring constiterator isempty void q xml namespace support push context ns stack push ns qxmlnamespacesupport pushcontext nsstack void q xml namespace support pop context if ns stack is empty ns ns stack pop qxmlnamespacesupport popcontext nsstack isempty nsstack void q xml namespace support reset ns stack clear ns clear ns insert xml http www w3 org xml 1998 namespace the xml namespace qxmlnamespacesupport nsstack int q xml attributes index const q string q name const return qname list find index q name qxmlattributes qstring qname qnamelist findindex qname int q xml attributes index const q string uri const q string local part const uint count uri list count for uint i 0 i count i if uri list i uri localname list i local part return i return 1 qxmlattributes qstring qstring localpart urilist urilist localnamelist localpart int q xml attributes length const return value list count qxmlattributes valuelist q string q xml attributes local name int index const return localname list index qstring qxmlattributes localname localnamelist q string q xml attributes q name int index const return qname list index qstring qxmlattributes qname qnamelist q string q xml attributes uri int index const return uri list index qstring qxmlattributes urilist q string q xml attributes type int const return cdata qstring qxmlattributes q string q xml attributes type const q string const return cdata qstring qxmlattributes qstring q string q xml attributes type const q string const q string const return cdata qstring qxmlattributes qstring qstring q string q xml attributes value int index const return value list index qstring qxmlattributes valuelist q string q xml attributes value const q string q name const int i index q name if i 1 return q string null return value list i qstring qxmlattributes qstring qname qname qstring valuelist q string q xml attributes value const q string uri const q string local name const int i index uri local name if i 1 return q string null return value list i qstring qxmlattributes qstring qstring localname localname qstring valuelist void q xml default handler set document locator q xml locator qxmldefaulthandler setdocumentlocator qxmllocator bool q xml default handler start document return true qxmldefaulthandler startdocument bool q xml default handler end document return true qxmldefaulthandler enddocument bool q xml default handler start prefix mapping const q string const q string return true qxmldefaulthandler startprefixmapping qstring qstring bool q xml default handler end prefix mapping const q string return true qxmldefaulthandler endprefixmapping qstring const q string const q xml attributes return true qstring qxmlattributes const q string return true qstring bool q xml default handler characters const q string return true qxmldefaulthandler qstring bool q xml default handler ignorable whitespace const q string return true qxmldefaulthandler ignorablewhitespace qstring const q string return true qstring bool q xml default handler skipped entity const q string return true qxmldefaulthandler skippedentity qstring bool q xml default handler warning const q xml parse exception return true qxmldefaulthandler qxmlparseexception bool q xml default handler error const q xml parse exception return true qxmldefaulthandler qxmlparseexception bool q xml default handler fatal error const q xml parse exception return true qxmldefaulthandler fatalerror qxmlparseexception const q string return true qstring const q string const q string return true qstring qstring q xml input source ret ret 0 return true qxmlinputsource bool q xml default handler startdtd const q string const q string const q string return true qxmldefaulthandler qstring qstring qstring bool q xml default handler enddtd return true qxmldefaulthandler bool q xml default handler startcdata return true qxmldefaulthandler bool q xml default handler endcdata return true qxmldefaulthandler bool q xml default handler comment const q string return true qxmldefaulthandler qstring bool q xml default handler attribute decl const q string const q string const q string const q string const q string return true qxmldefaulthandler attributedecl qstring qstring qstring qstring qstring bool q xml default handler internal entity decl const q string const q string return true qxmldefaulthandler internalentitydecl qstring qstring bool q xml default handler external entity decl const q string const q string const q string return true qxmldefaulthandler externalentitydecl qstring qstring qstring q string q xml default handler error string return q string xmlerr errorbyconsumer qstring qxmldefaulthandler errorstring qstring xmlerr_errorbyconsumer q xml input source q xml input source input qxmlinputsource qxmlinputsource q xml input source q xml input source q text stream stream q byte array raw data if stream device is direct access raw data stream device read all else int nread 0 const int bufsize 512 while stream device at end raw data resize nread bufsize nread stream device read block raw data data nread bufsize raw data resize nread read input raw data qxmlinputsource qxmlinputsource qtextstream qbytearray rawdata isdirectaccess rawdata readall atend rawdata readblock rawdata rawdata readinput rawdata q xml input source q xml input source q file file if file open io readonly input return q byte array raw data file read all read input raw data file close qxmlinputsource qxmlinputsource qfile io_readonly qbytearray rawdata readall readinput rawdata q xml input source q xml input source qxmlinputsource qxmlinputsource const q string q xml input source data const return input qstring qxmlinputsource void q xml input source set data const q string dat input dat qxmlinputsource setdata qstring void q xml input source read input q byte array raw data q buffer buf raw data buf open io readonly q text stream stream new q text stream buf q char tmp assume utf8 or utf16 at first stream set encoding q text stream unicodeutf8 input read the first 5 characters for int i 0 i 5 i stream tmp input tmp starts the document with an xml declaration if input xml read the whole xml declaration do stream tmp input tmp while tmp and try to find out if there is an encoding int pos input find encoding if pos 1 q string encoding do pos if pos int input length goto finished while input pos input pos pos while input pos input pos encoding input pos pos if pos int input length goto finished delete stream stream new q text stream buf stream set codec q text codec codec for name encoding buf reset input finished input stream read delete stream buf close qxmlinputsource readinput qbytearray rawdata qbuffer rawdata io_readonly qtextstream qtextstream qchar setencoding qtextstream qstring qtextstream setcodec qtextcodec codecforname int q xml locator column number return reader column nr 1 1 reader column nr 1 qxmllocator columnnumber columnnr columnnr int q xml locator line number return reader line nr 1 1 reader line nr 1 qxmllocator linenumber linenr linenr int q xml parse exception column number const return column qxmlparseexception columnnumber int q xml parse exception line number const return line qxmlparseexception linenumber q string q xml parse exception public id const return pub qstring qxmlparseexception publicid q string q xml parse exception system id const return sys qstring qxmlparseexception systemid q string q xml parse exception message const return msg qstring qxmlparseexception to unicode from unicode ch is the original a ch subclasses may be able to improve the efficiency bool q text codec can encode q char ch const tounicode fromunicode qtextcodec canencode qchar const uint eol 0x80020000 end of line const uint bow 0x80030000 beginning of word const uint eow 0x80040000 end of word const uint any 0x80050000 any character const uint clo 0x80070000 kleene closure const uint opt 0x80080000 optional closure q reg exp member functions constructs an empty regular expression qregexp constructs a regular expression arg e pattern is the regular expression pattern string arg e case sensitive specifies whether or not to use case sensitive casesensitive q reg exp q reg exp const q string pattern bool case sensitive bool wildcard qregexp qregexp qstring casesensitive constructs a regular expression which is a copy of e r sa operator const q reg exp q reg exp q reg exp const q reg exp r qregexp qregexp qregexp qregexp q reg exp q reg exp if rxdata avoid purify complaints delete rxdata qregexp qregexp cs r cs wc r wc compile sa wildcard void q reg exp set wildcard bool wildcard qregexp setwildcard fn bool q reg exp is valid const returns true if the regexp is valid or false if it is invalid qregexp isvalid int len matchstring rxd str strlength bol cs if len 0 return 0 return str len attempts to match in e str starting from position e index returns the position of the match or 1 if there was no match if e len is not a null pointer the length of the match is stored in e len if e index is start is true the default the position e index in the string will match the start of input primitive in the regexp if present otherwise position 0 in e str will match example code q reg exp r 0 9 0 9 matches floating point int len r match pi 3 1416 0 len returns 5 len 6 endcode note in qt 3 0 this function will be replaced by find int q reg exp match const q string str int index int len bool index is start const if is valid is empty return 1 if str length uint index return 1 const q char start str unicode const q char p start index uint pl str length index uint d rxdata int ep 1 if d bol match from beginning of line indexisstart qregexp qregexp qstring indexisstart isvalid isempty qchar qchar case any q debug tany break case clo q debug tclo p dump p break case opt q debug topt p dump p break q debug tend return p 1 endif debug static const int maxlen 1024 max length of regexp array static uint rxarray maxlen tmp regexp array internal compiles the regular expression and stores the result in rxdata the error flag is set to non zero if an error is detected note this function is not reentrant void q reg exp compile if rxdata delete old data delete rxdata rxdata 0 if rxstring is empty no regexp pattern set error pat null return error pat ok assume pattern is ok q string pattern if wc pattern wc2rx rxstring else pattern rxstring const q char start pattern unicode pattern pointer const q char p start pattern pointer uint pl pattern length uint d rxarray data pointer uint prev d 0 define gen x d x while pl char ch char p switch ch case beginning of line prev d d gen p start bol chr ch p pl break case end of line prev d d gen pl 1 eol chr ch p pl break case any char prev d d gen any p pl break case character class prev d d p pl if pl error pat syntax return bool first is escaped char p uint cch char val p pl if cch first is escaped negate gen ccn if pl error pat syntax return cch char val p pl else gen ccl uint num fields 0 while pl if pl 2 char p char p 1 found a range char val p pl read the uint cch2 char val p pl read the range end if cch cch2 swap start and stop int tmp cch cch cch2 cch2 tmp gen cch 16 cch2 from to num fields else found a single character if cch mcd it s a code will not be mistaken gen cch for a range since from to else gen cch 16 cch from to range num fields if d rxarray maxlen pattern too long error pat overflow return if pl at least should be left error pat syntax return bool next is escaped char p cch char val p pl if cch uint next is escaped break if pl end should have seen error pat syntax return prev d num fields store number of fields break case kleene closure or case positive closure or case optional closure if prev d 0 no previous expression error pat syntax empty closure return switch prev d test if invalid closure case bol case bow case eow case clo case opt error pat syntax return int ddiff d prev d if p convert to kleene closure if d ddiff rxarray maxlen error pat overflow pattern too long return memcpy d prev d ddiff sizeof uint d ddiff prev d ddiff memmove prev d 1 prev d ddiff sizeof uint prev d ch opt clo d gen end p pl qdebug qdebug qdebug qdebug qregexp isempty patnull patok qstring qchar qchar prev_d prev_d prev_d prev_d prev_d patsyntax firstisescaped char_val firstisescaped patsyntax char_val numfields char_val char_val numfields numfields patoverflow patsyntax nextisescaped char_val nextisescaped patsyntax prev_d numfields prev_d patsyntax prev_d patsyntax prev_d patoverflow prev_d prev_d prev_d prev_d prev_d return p start end if p return 1 p pl provides the access functions is direct access is sequential access and is combined access to tell users what a given i o device supports li buffering some devices are accessed in raw mode while others isdirectaccess issequentialaccess iscombinedaccess li synchronicity synchronous devices work there and then for example files when you read from a file the file delivers its data right away others such as a socket connected to a http server may not deliver the data until seconds after you ask to read if uint s io statemask uint s q warning qio device set state specified state out of range endif io_statemask qwarning qiodevice setstate void qio device set status int s io st s fn bool qio device open int mode qiodevice setstatus iost qiodevice li c io writeonly opens a file in write only mode li c io readwrite opens a file in read write mode li c io append sets the file index to the end of the file li c io truncate truncates the file li c io translate enables carriage returns and linefeed translation for text files under ms dos window os 2 and macintosh on unix systems this flag has no effect use with caution as it will also transform every linefeed written to the file into a crlf pair this is likely to corrupt your file when writing binary data to it cannot be combined with c io raw ul io_writeonly io_readwrite io_append io_truncate io_translate io_raw else return at int size fn bool qio device reset sets the device index to 0 sa at fn int qio device read block char data uint maxlen reads at most e maxlen bytes from the i o device into e data and returns the number of bytes actually read qiodevice qiodevice readblock io index pos return true ioindex sa at virtual function that returns the current i o device index this index is the data read write head of the i o device sa size int qio device at const qiodevice returns true if the i o device was opened using c io readonly or c io readwrite mode sa is writable is read write fn bool qio device is writable const returns true if the i o device was opened using c io writeonly or io_readonly io_readwrite iswritable isreadwrite qiodevice iswritable io_writeonly sa is readable is writable fn bool qio device is inactive const returns true if the i o device state is 0 i e the device is not open sa is open isreadable iswritable qiodevice isinactive isopen fn int qio device status const returns the i o device status the i o device status returns an error code if open returns false or read block or write block return 1 this function can be called to get the reason why the operation did not succeed qiodevice readblock writeblock li c io openerror could not open the device li c io connecterror could not connect to the device li c io aborterror the operation was unexpectedly aborted io_openerror io_connecterror io_aborterror void q text stream set encoding encoding e if d source type q text stream private string return q string does not need any encoding switch e case unicode mapper 0 latin1 false do unicode header true internal order true break case unicodeutf8 ifndef qt no codecs mapper q text codec codec for mib 106 latin1 false do unicode header true internal order true else mapper 0 latin1 true do unicode header true endif break case unicode network order mapper 0 latin1 false do unicode header true internal order q char network ordered break case unicode reverse mapper 0 latin1 false do unicode header true internal order q char network ordered reverse network ordered break case raw unicode mapper 0 latin1 false do unicode header false internal order true break case locale latin1 true fallback to latin 1 ifndef qt no textcodec mapper q text codec codec for locale if defined os win32 if getacp 1252 mapper 0 optimized latin1 processing endif if mapper mapper mib enum 4 endif mapper 0 optimized latin1 processing do unicode header true if it reads as unicode accept it break case latin1 mapper 0 do unicode header false latin1 true break qtextstream setencoding sourcetype qtextstreamprivate qstring dounicodeheader internalorder qt_no_codecs qtextcodec codecformib dounicodeheader internalorder dounicodeheader unicodenetworkorder dounicodeheader internalorder qchar networkordered unicodereverse dounicodeheader internalorder qchar networkordered rawunicode dounicodeheader internalorder qt_no_textcodec qtextcodec codecforlocale _os_win32_ mibenum dounicodeheader dounicodeheader void q text stream set codec q text codec codec if d source type q text stream private string return q string does not need any codec mapper codec do unicode header false qtextstream setcodec qtextcodec sourcetype qtextstreamprivate qstring dounicodeheader q text stream q text stream init set encoding locale reset d source type q text stream private not set qtextstream qtextstream setencoding sourcetype qtextstreamprivate notset q text stream q text stream qio device iod init set encoding locale dev iod set device reset d source type q text stream private io device qtextstream qtextstream qiodevice setencoding sourcetype qtextstreamprivate iodevice q text stream q text stream q string str int filemode todo optimize for this case as it becomes more common see q string buffer above init dev new q string buffer str q string buffer dev open filemode owndev true set encoding raw unicode reset d source type q text stream private string qtextstream qtextstream qstring qstringbuffer qstringbuffer qstringbuffer setencoding rawunicode sourcetype qtextstreamprivate q text stream q text stream q string str int filemode init dev new q string buffer str q string buffer dev open filemode owndev true set encoding raw unicode reset d source type q text stream private string qtextstream qtextstream qstring qstringbuffer qstringbuffer setencoding rawunicode sourcetype qtextstreamprivate q text stream q text stream q byte array a int mode init dev new q buffer a q buffer dev open mode owndev true set encoding latin1 locale reset d source type q text stream private byte array qtextstream qtextstream qbytearray qbuffer qbuffer setencoding sourcetype qtextstreamprivate bytearray q text stream q text stream file fh int mode init set encoding locale dev new q file q file dev open mode fh fstrm owndev true reset d source type q text stream private file qtextstream qtextstream setencoding qfile qfile sourcetype qtextstreamprivate q text stream q text stream if owndev delete dev delete d qtextstream qtextstream void q text stream set device qio device iod if owndev delete dev owndev false dev iod d source type q text stream private io device qtextstream setdevice qiodevice sourcetype qtextstreamprivate iodevice void q text stream unset device set device 0 d source type q text stream private not set qtextstream unsetdevice setdevice sourcetype qtextstreamprivate notset q text stream q text stream operator q char c check stream precond c ts getc return this qtextstream qtextstream qchar check_stream_precond ts_getc q text stream q text stream operator char c check stream precond c eat ws return this qtextstream qtextstream check_stream_precond eat_ws q text stream q text stream operator signed short i check stream precond i signed short input int return this qtextstream qtextstream check_stream_precond input_int q text stream q text stream operator unsigned short i check stream precond i unsigned short input int return this qtextstream qtextstream check_stream_precond input_int q text stream q text stream operator signed int i check stream precond i signed int input int return this qtextstream qtextstream check_stream_precond input_int q text stream q text stream operator unsigned int i check stream precond i unsigned int input int return this qtextstream qtextstream check_stream_precond input_int q text stream q text stream operator signed long i check stream precond i signed long input int return this qtextstream qtextstream check_stream_precond input_int q text stream q text stream operator unsigned long i check stream precond i unsigned long input int return this qtextstream qtextstream check_stream_precond input_int q text stream q text stream operator float f check stream precond f float input double return this qtextstream qtextstream check_stream_precond input_double q text stream q text stream operator double f check stream precond f input double return this qtextstream qtextstream check_stream_precond input_double q text stream q text stream operator char s check stream precond int maxlen width 0 q char c eat ws if maxlen maxlen 1 while c qeof if ts isspace c maxlen 0 ts ungetc c break s c c ts getc s 0 return this qtextstream qtextstream check_stream_precond qchar eat_ws ts_isspace ts_ungetc ts_getc q text stream q text stream operator q string str check stream precond str q string from latin1 q char c eat ws while c qeof if ts isspace c ts ungetc c break str c c ts getc return this qtextstream qtextstream qstring check_stream_precond qstring fromlatin1 qchar eat_ws ts_isspace ts_ungetc ts_getc q text stream q text stream operator qc string str check stream precond qc string dynbuf 0 const int buflen 256 char buffer buflen char s buffer int i 0 q char c eat ws while c qeof if ts isspace c ts ungetc c break if i buflen 1 if dynbuf create dynamic buffer dynbuf new qc string buflen 2 memcpy dynbuf data s i copy old data else if i int dynbuf size 1 dynbuf resize dynbuf size 2 s dynbuf data s i c c ts getc str resize i 1 memcpy str data s i delete dynbuf return this qtextstream qtextstream qcstring check_stream_precond qcstring qchar eat_ws ts_isspace ts_ungetc qcstring ts_getc q text stream q text stream operator q char c check stream precond ts putc c return this qtextstream qtextstream qchar check_stream_precond ts_putc q text stream q text stream operator char c check stream precond unsigned char uc unsigned char c ts putc uc return this qtextstream qtextstream check_stream_precond ts_putc q text stream q text stream operator signed short i return output int i short i signed i i 0 qtextstream qtextstream output_int i_short i_signed q text stream q text stream operator unsigned short i return output int i short i unsigned i false qtextstream qtextstream output_int i_short i_unsigned q text stream q text stream operator signed int i return output int i int i signed i i 0 qtextstream qtextstream output_int i_int i_signed q text stream q text stream operator unsigned int i return output int i int i unsigned i false qtextstream qtextstream output_int i_int i_unsigned q text stream q text stream operator signed long i return output int i long i signed i i 0 qtextstream qtextstream output_int i_long i_signed q text stream q text stream operator unsigned long i return output int i long i unsigned i false qtextstream qtextstream output_int i_long i_unsigned q text stream q text stream operator float f return this double f qtextstream qtextstream q text stream q text stream operator double f check stream precond char buf 64 char f char char format 16 if flags floatfield fixed f char f else if flags floatfield scientific f char flags uppercase e e else f char flags uppercase g g register char fs format generate format string fs prec l f char fs int prec precision if prec 99 prec 99 if prec 10 fs prec 10 0 fs prec 10 0 else fs prec 0 fs l fs f char fs 0 sprintf buf format f convert to text if fwidth padding this const char buf else just write it write block buf qstrlen buf return this qtextstream qtextstream check_stream_precond f_char f_char f_char f_char f_char f_char writeblock q text stream q text stream operator const char s check stream precond char padbuf 48 uint len qstrlen s don t write null terminator if fwidth field width set int padlen fwidth len fwidth 0 reset width if padlen 0 char ppad if padlen 46 create extra big fill buffer ppad new char padlen check ptr ppad else ppad padbuf memset ppad char fillchar padlen fill with fillchar if flags left write block ppad padlen padlen 0 write block s len if padlen write block ppad padlen if ppad padbuf delete extra big fill buf delete ppad return this write block s len return this qtextstream qtextstream check_stream_precond check_ptr writeblock writeblock writeblock writeblock q text stream q text stream operator const q string s check stream precond uint len s length q string s1 s if fwidth field width set if flags left s1 s right justify fwidth char fillchar else s1 s left justify fwidth char fillchar fwidth 0 reset width write block s1 unicode len return this qtextstream qtextstream qstring check_stream_precond qstring rightjustify leftjustify writeblock q text stream q text stream operator const qc string s return operator s data qtextstream qtextstream qcstring q text stream q text stream operator void ptr int f flags setf hex basefield setf showbase unsetf uppercase output int i long i unsigned ulong ptr false flags f return this qtextstream qtextstream output_int i_long i_unsigned q text stream q text stream read raw bytes char s uint len dev read block s len return this qtextstream qtextstream readrawbytes readblock q text stream q text stream write raw bytes const char s uint len dev write block s len return this qtextstream qtextstream writerawbytes writeblock q string q text stream read line if defined check state if dev q warning q text stream read line no device return q string null endif q string result const int buf size 256 q char c buf size int pos 0 c pos ts getc if c pos qeof return q string null while c pos qeof c pos n pos if pos buf size result q string c pos pos 0 c pos ts getc result q string c pos int len int result length if len result len 1 r result truncate len 1 if there are two r let one stay return result qstring qtextstream readline check_state qwarning qtextstream readline qstring qstring buf_size qchar buf_size ts_getc qstring buf_size qstring ts_getc qstring q string q text stream read if defined check state if dev q warning q text stream read no device return q string null endif q string result const uint bufsize 512 q char buf bufsize uint i num start bool skipped cr false while 1 num ts getbuf buf bufsize do a s r n n start 0 for i 0 i num i if buf i r only skip single cr s preceding lf s if skipped cr result buf i start else result q string buf start i start start i 1 skipped cr true else if skipped cr if buf i n should not have skipped it result r skipped cr false if start num result q string buf start i start if num bufsize if eof break return result qstring qtextstream check_state qwarning qtextstream qstring qstring qchar skipped_cr ts_getbuf skipped_cr qstring skipped_cr skipped_cr skipped_cr qstring void q text stream skip white space ts ungetc eat ws qtextstream skipwhitespace ts_ungetc eat_ws void q text stream reset fflags 0 fwidth 0 fillchar fprec 6 qtextstream long q text stream input int long val q char ch char c switch flags basefield case bin val long input bin break case oct val long input oct break case dec c ch eat ws if ch qeof val 0 else if c c ts ungetc ch if c ulong v input dec if v ensure that long min can be read v val long v 1 else val 0 else val long input dec break case hex val long input hex break default val 0 c ch eat ws if c 0 bin oct or hex c ch ts getc if tolower c x val long input hex else if tolower c b val long input bin else octal ts ungetc ch if c 0 c 7 val long input oct else val 0 else if ts isdigit ch ts ungetc ch val long input dec else if c c ulong v input dec if c if v ensure that long min can be read v val long v 1 else val 0 else val long v return val qtextstream input_int qchar input_bin input_oct eat_ws ts_ungetc input_dec long_min input_dec input_hex eat_ws ts_getc input_hex input_bin ts_ungetc input_oct ts_isdigit ts_ungetc input_dec input_dec long_min void q text stream init ungetc buf qeof dev 0 no device set fstrm owndev false mapper 0 d new q text stream private do unicode header true default to autodetect latin1 true should use local internal order q char network ordered default to network order qtextstream ungetcbuf qtextstreamprivate dounicodeheader internalorder qchar networkordered q text stream q text stream output int int format ulong n bool neg static char hexdigits lower 0123456789abcdef static char hexdigits upper 0123456789abcdef check stream precond char buf 76 register char p int len char hexdigits switch flags i base mask case i base 2 output binary number switch format i type mask case i short len 16 break case i int len sizeof int 8 break case i long len 32 break default len 0 p buf 74 go reverse order p 0 while len p char n 1 0 n 1 if n break if flags showbase show base p flags uppercase b b p 0 break case i base 8 output octal number p buf 74 p 0 do p char n 7 0 n 3 while n if flags showbase p 0 break case i base 16 output hexadecimal number p buf 74 p 0 hexdigits flags uppercase hexdigits upper hexdigits lower do p hexdigits int n 0xf n 4 while n if flags showbase p flags uppercase x x p 0 break default decimal base is default p buf 74 p 0 if neg n ulong long n do p int n 10 0 n 10 while n if neg p else if flags showpos p if flags internal fwidth ts isdigit p ts putc p special case for internal p padding fwidth return this const char p if fwidth adjustment required if flags left but not left adjustment len qstrlen p int padlen fwidth len if padlen 0 no padding required write block p len else if padlen int p buf speeds up padding memset p padlen char fillchar padlen write block p padlen padlen len else standard padding this const char p else this const char p fwidth 0 reset field width else write block p qstrlen p return this qtextstream qtextstream output_int hexdigits_lower hexdigits_upper check_stream_precond i_base_mask i_base_2 i_type_mask i_short i_int i_long i_base_8 i_base_16 hexdigits_upper hexdigits_lower ts_isdigit ts_putc writeblock writeblock writeblock q char q text stream eat ws q char c do c ts getc while c qeof ts isspace c return c qchar qtextstream eat_ws qchar ts_getc ts_isspace void q text stream ts ungetc q char c if c unicode 0xffff return d ungetc buf prepend c qtextstream ts_ungetc qchar ungetcbuf uint q text stream ts getbuf q char buf uint len if len 1 return 0 uint rnum 0 the number of q chars really read if d d ungetc buf length while rnum len rnum d ungetc buf length buf rnum d ungetc buf constref rnum rnum d ungetc buf d ungetc buf mid rnum if rnum len return rnum we use dev ungetch for one of the bytes of the unicode byte order mark but a local unget hack for the other byte int unget hack eof if do unicode header do unicode header false only at the top int c1 dev getch if c1 eof return rnum int c2 dev getch if c1 0xfe c2 0xff mapper 0 latin1 false internal order q char network ordered network order else if c1 0xff c2 0xfe mapper 0 latin1 false internal order q char network ordered reverse network order else if c2 eof dev ungetch c2 unget hack c1 else dev ungetch c1 note that a small possible bug might hide here here if only the first byte of a file has made it so far and that first byte is half of the byte order mark then the utfness will not be detected whether or not this is a bug depends on taste i can t really decide ifndef qt no textcodec if mapper bool short read false if d decoder d decoder mapper make decoder while rnum len q string s bool read block len 1 rnum while true for efficiency normally read a whole block if read block guess buffersize this may be wrong too small or too big but we can handle this either iterate reading or use ungetc buf note that this might cause problems for codecs where one byte can result in 1 unicode characters if bytes are written to the stream in the meantime loss of synchronicity uint rlen len rnum char cbuf new char rlen if unget hack eof rlen 1 dev read block cbuf 1 rlen 1 cbuf 0 char unget hack unget hack eof else rlen dev read block cbuf rlen s d decoder to unicode cbuf rlen delete cbuf use buffered reading only for the first time because we have to get the stream synchronous again this is easier with single character reading read block false get stream and codec in sync int c if unget hack eof c dev getch else c unget hack unget hack eof if c eof short read true break char b c uint length before s length s d decoder to unicode b 1 if s length length before break it seems we are in sync now uint i 0 while rnum len i s length buf rnum s constref i if s length i could be but append is clearer d ungetc buf append s mid i if short read return rnum else endif if latin1 if len 1 rnum use this method for one character because it is more efficient arnt doubts whether it makes a difference but lets it stand int c unget hack eof dev getch unget hack if c eof buf rnum char c else if unget hack eof buf rnum char unget hack unget hack eof char cbuf new char len rnum while dev at end rnum len uint rlen len rnum rlen dev read block cbuf rlen uint i 0 while i rlen buf rnum cbuf i delete cbuf else ucs 2 or utf 16 if len 1 rnum int c1 unget hack eof dev getch unget hack if c1 eof return rnum int c2 dev getch if c2 eof return rnum if is network order buf rnum q char c2 c1 else buf rnum q char c1 c2 else char cbuf new char 2 len rnum for paranoids overflow possible while dev at end rnum len uint rlen 2 len rnum if unget hack eof rlen 1 dev read block cbuf 1 rlen 1 cbuf 0 char unget hack unget hack eof else rlen dev read block cbuf rlen we can t use an odd number of bytes so put it back but do it only if we are capable of reading more normally there should not be an odd number but the file might be truncated or not in utf 16 if rlen 1 1 if dev at end dev ungetch cbuf rlen uint i 0 if is network order while i rlen buf rnum q char cbuf i 1 cbuf i i 2 else while i rlen buf rnum q char cbuf i cbuf i 1 i 2 delete cbuf return rnum qtextstream ts_getbuf qchar qchars ungetcbuf ungetcbuf ungetcbuf ungetcbuf ungetcbuf ungethack dounicodeheader dounicodeheader internalorder qchar networkordered internalorder qchar networkordered ungethack qt_no_textcodec shortread makedecoder qstring readblock readblock ungetcbuf ungethack readblock ungethack ungethack readblock tounicode readblock ungethack ungethack ungethack shortread lengthbefore tounicode lengthbefore ungetcbuf shortread ungethack ungethack ungethack ungethack ungethack atend readblock ungethack ungethack isnetworkorder qchar qchar atend ungethack readblock ungethack ungethack readblock atend isnetworkorder qchar qchar void q text stream ts putc int ch ts putc q char ushort ch qtextstream ts_putc ts_putc qchar void q text stream ts putc q char c ifndef qt no textcodec if mapper int len 1 q string s c qc string block mapper from unicode s len dev write block block len else endif if latin1 if c row dev putch unknown character else dev putch c cell else if do unicode header do unicode header false ts putc q char byte order mark if internal order dev write block char c sizeof q char else if is network order dev putch c row dev putch c cell else dev putch c cell dev putch c row qtextstream ts_putc qchar qt_no_textcodec qstring qcstring fromunicode writeblock dounicodeheader dounicodeheader ts_putc qchar byteordermark internalorder writeblock qchar isnetworkorder bool q text stream ts isspace q char c return c is space qtextstream ts_isspace qchar isspace bool q text stream ts isdigit q char c return c is digit qtextstream ts_isdigit qchar isdigit ulong q text stream input bin ulong val 0 q char ch eat ws int dv ch digit value while dv 0 dv 1 val val 1 dv ch ts getc dv ch digit value if ch qeof ts ungetc ch return val qtextstream input_bin qchar eat_ws digitvalue ts_getc digitvalue ts_ungetc ulong q text stream input oct ulong val 0 q char ch eat ws int dv ch digit value while dv 0 dv 7 val val 3 dv ch ts getc dv ch digit value if dv 8 dv 9 while ts isdigit ch ch ts getc if ch qeof ts ungetc ch return val qtextstream input_oct qchar eat_ws digitvalue ts_getc digitvalue ts_isdigit ts_getc ts_ungetc ulong q text stream input dec ulong val 0 q char ch eat ws int dv ch digit value while ts isdigit ch val val 10 dv ch ts getc dv ch digit value if ch qeof ts ungetc ch return val qtextstream input_dec qchar eat_ws digitvalue ts_isdigit ts_getc digitvalue ts_ungetc ulong q text stream input hex ulong val 0 q char ch eat ws char c ch while isxdigit c val 4 if ts isdigit c val c 0 else val 10 tolower c a c ch ts getc if ch qeof ts ungetc ch return val qtextstream input_hex qchar eat_ws ts_isdigit ts_getc ts_ungetc double q text stream input double const int init 0 states const int sign 1 const int mantissa 2 const int dot 3 const int abscissa 4 const int exp mark 5 const int exp sign 6 const int exponent 7 const int done 8 const int input sign 1 input tokens const int input digit 2 const int input dot 3 const int input exp 4 static uchar table 8 5 none input sign input digit input dot input exp 0 sign mantissa dot 0 init 0 0 mantissa dot 0 sign done done mantissa dot exp mark mantissa 0 0 abscissa 0 0 dot done done abscissa done exp mark abscissa 0 exp sign exponent 0 0 exp mark 0 0 exponent 0 0 exp sign done done exponent done done exponent int state init parse state int input input token char buf 256 int i 0 q char c eat ws while true switch c case case input input sign break case 0 case 1 case 2 case 3 case 4 case 5 case 6 case 7 case 8 case 9 input input digit break case input input dot break case e case e input input exp break default input 0 break state table state input if state 0 state done i 250 if i 250 ignore rest of digits do c ts getc while c qeof ts isdigit c if c qeof ts ungetc c buf i 0 char end return strtod buf end buf i c c ts getc if defined cc egg return 0 0 endif qtextstream input_double expmark expsign inputsign inputdigit inputdot inputexp inputsign inputdigit inputdot inputexp expmark expmark expsign expmark expsign qchar eat_ws inputsign inputdigit inputdot inputexp ts_getc ts_isdigit ts_ungetc ts_getc _cc_egg_ q text stream q text stream write block const char p uint len if do unicode header do unicode header false if mapper latin1 ts putc q char byte order mark all qc strings and const char are defined to be in latin1 if mapper latin1 dev write block p len else if mapper internal order q char u new q char len for uint i 0 i len i u i p i dev write block char u len sizeof q char delete u else for uint i 0 i len i ts putc uchar p i return this qtextstream qtextstream writeblock dounicodeheader dounicodeheader ts_putc qchar byteordermark qcstrings writeblock internalorder qchar qchar writeblock qchar ts_putc q text stream q text stream write block const q char p uint len if mapper latin1 internal order if do unicode header do unicode header false ts putc q char byte order mark dev write block char p sizeof q char len else for uint i 0 i len i ts putc p i return this qtextstream qtextstream writeblock qchar internalorder dounicodeheader dounicodeheader ts_putc qchar byteordermark writeblock qchar ts_putc bool q file remove const q string file name if file name is empty if defined check null q warning q file remove empty or null file name endif return false return remove q file encode name file name 0 unlink more common in unix qfile qstring filename filename isempty check_null qwarning qfile qfile encodename filename bool q file open int m if is open file already open if defined check state q warning q file open file already open endif return false if fn is null no file name defined if defined check null q warning q file open no file name specified endif return false init reset params set mode m if is readable is writable if defined check range q warning q file open file access not specified endif return false bool ok true statbuf st if is raw raw file i o int oflags open rdonly if is readable is writable oflags open rdwr else if is writable oflags open wronly if flags io append append to end of file if flags io truncate oflags open creat open trunc else oflags open append open creat set flags flags io writeonly append implies write else if is writable create trunc if writable if flags io truncate oflags open creat open trunc else oflags open creat if defined has text filemode if is translated oflags open text else oflags open binary endif if defined has async filemode if is asynchronous oflags open async endif fd open q file encode name fn oflags 0666 if fd 1 open successful fstat fd st get the stat for later usage else ok false else buffered file i o qc string perm char perm2 4 bool try create false if flags io append append to end of file set flags flags io writeonly append implies write perm is readable a a else if is read write if flags io truncate perm w else perm r try create true try to create if not exists else if is readable perm r else if is writable perm w qstrcpy perm2 perm if is translated strcat perm2 t else strcat perm2 b while 1 at most twice fh fopen q file encode name fn perm2 if fh try create perm2 0 w try w instead of r try create false else break if fh fstat fileno fh st get the stat for later usage else ok false if ok set state io open on successful open the file stat was got now test what type of file we have if st st mode stat mask stat reg non seekable set type io sequential length int max io index flags io append 0 0 length else length int st st size io index flags io append 0 0 length if flags io truncate length 0 is readable try if you can read from it if you can it s a sequential device e g a file in the proc filesystem int c getch if c 1 ungetch c set type io sequential length int max else init if errno emfile no more file handles descrs set status io resourceerror else set status io openerror return ok qfile isopen check_state qwarning qfile isnull check_null qwarning qfile setmode isreadable iswritable check_range qwarning qfile israw open_rdonly isreadable iswritable open_rdwr iswritable open_wronly io_append io_truncate open_creat open_trunc open_append open_creat setflags io_writeonly iswritable io_truncate open_creat open_trunc open_creat has_text_filemode istranslated open_text open_binary has_async_filemode isasynchronous open_async qfile encodename qcstring try_create io_append setflags io_writeonly isreadable isreadwrite io_truncate try_create isreadable iswritable istranslated qfile encodename try_create try_create setstate io_open st_mode stat_mask stat_reg settype io_sequential int_max ioindex io_append st_size ioindex io_append io_truncate isreadable settype io_sequential int_max setstatus io_resourceerror setstatus io_openerror bool q file open int m file f if is open if defined check range q warning q file open file already open endif return false init set mode m io raw set state io open fh f ext f true statbuf st fstat fileno fh st io index int ftell fh if st st mode stat mask stat reg non seekable set type io sequential length int max else length int st st size if flags io truncate length 0 is readable try if you can read from it if you can it s a sequential device e g a file in the proc filesystem int c getch if c 1 ungetch c set type io sequential length int max return true qfile isopen check_range qwarning qfile setmode io_raw setstate io_open ext_f ioindex st_mode stat_mask stat_reg settype io_sequential int_max st_size io_truncate isreadable settype io_sequential int_max bool q file open int m int f if is open if defined check range q warning q file open file already open endif return false init set mode m io raw set state io open fd f ext f true statbuf st fstat fd st io index int lseek fd 0 seek cur if st st mode stat mask stat reg non seekable set type io sequential length int max else length int st st size if length 0 is readable try if you can read from it if you can it s a sequential device e g a file in the proc filesystem int c getch if c 1 ungetch c set type io sequential length int max return true qfile isopen check_range qwarning qfile setmode io_raw setstate io_open ext_f ioindex seek_cur st_mode stat_mask stat_reg settype io_sequential int_max st_size isreadable settype io_sequential int_max void q file close bool ok false if is open file is not open if fh buffered file if ext f ok fflush fh 1 flush instead of closing else ok fclose fh 1 else raw file if ext f ok true cannot close else ok close fd 1 init restore internal state if ok set status io unspecifiederror return qfile isopen ext_f ext_f setstatus io_unspecifiederror uint q file size const statbuf st if is open fstat fh fileno fh fd st else stat q file encode name fn st return st st size qfile isopen qfile encodename st_size bool q file at int pos if is open if defined check state q warning q file at file is not open endif return false bool ok if is raw raw file pos int lseek fd pos seek set ok pos 1 else buffered file ok fseek fh pos seek set 0 if ok io index pos if defined check range else q warning q file at cannot set file position d pos endif return ok qfile isopen check_state qwarning qfile israw seek_set seek_set ioindex check_range qwarning qfile int q file read block char p uint len if defined check null if p q warning q file read block null pointer error endif if defined check state if is open file not open q warning q file read block file not open return 1 if is readable reading not permitted q warning q file read block read operation not permitted return 1 endif int nread number of bytes read if is raw raw file nread read fd p len if len nread 0 nread 0 set status io readerror else buffered file nread fread p 1 len fh if uint nread len if ferror fh nread 0 set status io readerror io index nread return nread qfile readblock check_null qwarning qfile readblock check_state isopen qwarning qfile readblock isreadable qwarning qfile readblock israw setstatus io_readerror setstatus io_readerror ioindex int q file write block const char p uint len if defined check null if p 0 len 0 q warning q file write block null pointer error endif if defined check state if is open file not open q warning q file write block file not open return 1 if is writable writing not permitted q warning q file write block write operation not permitted return 1 endif int nwritten number of bytes written if is raw raw file nwritten write fd p len else buffered file nwritten fwrite p 1 len fh if nwritten int len write error if errno enospc disk is full set status io resourceerror else set status io writeerror if is raw recalc file position io index int lseek fd 0 seek cur else io index fseek fh 0 seek cur else io index nwritten if io index length update file length length io index return nwritten qfile writeblock check_null qwarning qfile writeblock check_state isopen qwarning qfile writeblock iswritable qwarning qfile writeblock israw setstatus io_resourceerror setstatus io_writeerror israw ioindex seek_cur ioindex seek_cur ioindex ioindex ioindex int q file handle const if is open return 1 else if fh return fileno fh else return fd qfile isopen bool q file remove const q string file name if file name is empty if defined check null q warning q file remove empty or null file name endif return false return unlink q file encode name file name 0 unlink more common in unix qfile qstring filename filename isempty check_null qwarning qfile qfile encodename filename bool q file open int m if is open file already open if defined check state q warning q file open file already open endif return false if fn is null no file name defined if defined check null q warning q file open no file name specified endif return false init reset params set mode m if is readable is writable if defined check range q warning q file open file access not specified endif return false bool ok true statbuf st if is raw raw file i o int oflags open rdonly if is readable is writable oflags open rdwr else if is writable oflags open wronly if flags io append append to end of file if flags io truncate oflags open creat open trunc else oflags open append open creat set flags flags io writeonly append implies write else if is writable create trunc if writable if flags io truncate oflags open creat open trunc else oflags open creat if defined has text filemode if is translated ifdef cygwin do nothing allowing the cygwin mount mode to take effect else oflags open text endif else oflags open binary endif if defined has async filemode if is asynchronous oflags open async endif fd open q file encode name fn oflags 0666 if fd 1 open successful fstat fd st get the stat for later usage else ok false else buffered file i o qc string perm char perm2 4 bool try create false if flags io append append to end of file set flags flags io writeonly append implies write perm is readable a a else if is read write if flags io truncate perm w else perm r try create true try to create if not exists else if is readable perm r else if is writable perm w qstrcpy perm2 perm if defined has text filemode if is translated ifdef cygwin do nothing allowing the cygwin mount mode to take effect else strcat perm2 t endif else strcat perm2 b endif while 1 at most twice fh fopen q file encode name fn perm2 if fh try create perm2 0 w try w instead of r try create false else break if fh fstat fileno fh st get the stat for later usage else ok false if ok set state io open on successful open the file stat was got now test what type of file we have if st st mode stat mask stat reg non seekable set type io sequential length int max io index flags io append 0 0 length else length int st st size io index flags io append 0 0 length if flags io truncate length 0 is readable try if you can read from it if you can it s a sequential device e g a file in the proc filesystem int c getch if c 1 ungetch c set type io sequential length int max else init if errno emfile no more file handles descrs set status io resourceerror else set status io openerror return ok qfile isopen check_state qwarning qfile isnull check_null qwarning qfile setmode isreadable iswritable check_range qwarning qfile israw open_rdonly isreadable iswritable open_rdwr iswritable open_wronly io_append io_truncate open_creat open_trunc open_append open_creat setflags io_writeonly iswritable io_truncate open_creat open_trunc open_creat has_text_filemode istranslated __cygwin__ open_text open_binary has_async_filemode isasynchronous open_async qfile encodename qcstring try_create io_append setflags io_writeonly isreadable isreadwrite io_truncate try_create isreadable iswritable has_text_filemode istranslated __cygwin__ qfile encodename try_create try_create setstate io_open st_mode stat_mask stat_reg settype io_sequential int_max ioindex io_append st_size ioindex io_append io_truncate isreadable settype io_sequential int_max setstatus io_resourceerror setstatus io_openerror bool q file open int m file f if is open if defined check range q warning q file open file already open endif return false init set mode m io raw set state io open fh f ext f true statbuf st fstat fileno fh st io index int ftell fh if st st mode stat mask stat reg f stdin stdin is non seekable non seekable set type io sequential length int max else length int st st size if flags io truncate length 0 is readable try if you can read from it if you can it s a sequential device e g a file in the proc filesystem int c getch if c 1 ungetch c set type io sequential length int max return true qfile isopen check_range qwarning qfile setmode io_raw setstate io_open ext_f ioindex st_mode stat_mask stat_reg settype io_sequential int_max st_size io_truncate isreadable settype io_sequential int_max bool q file open int m int f if is open if defined check range q warning q file open file already open endif return false init set mode m io raw set state io open fd f ext f true statbuf st fstat fd st io index int lseek fd 0 seek cur if st st mode stat mask stat reg f 0 stdin is not seekable non seekable set type io sequential length int max else length int st st size if length 0 is readable try if you can read from it if you can it s a sequential device e g a file in the proc filesystem int c getch if c 1 ungetch c set type io sequential length int max reset status return true qfile isopen check_range qwarning qfile setmode io_raw setstate io_open ext_f ioindex seek_cur st_mode stat_mask stat_reg settype io_sequential int_max st_size isreadable settype io_sequential int_max resetstatus void q file close bool ok false if is open file is not open if fh buffered file if ext f ok fflush fh 1 flush instead of closing else ok fclose fh 1 else raw file if ext f ok true cannot close else ok close fd 1 init restore internal state if ok set status io unspecifiederror return qfile isopen ext_f ext_f setstatus io_unspecifiederror uint q file size const statbuf st if is open fstat fh fileno fh fd st else stat q file encode name fn st return st st size qfile isopen qfile encodename st_size bool q file at int pos if is open if defined check state q warning q file at file is not open endif return false bool ok if is raw raw file pos int lseek fd pos seek set ok pos 1 else buffered file ok fseek fh pos seek set 0 if ok io index pos if defined check range else q warning q file at cannot set file position d pos endif return ok qfile isopen check_state qwarning qfile israw seek_set seek_set ioindex check_range qwarning qfile int q file read block char p uint len if defined check null if p q warning q file read block null pointer error endif if defined check state if is open file not open q warning q file read block file not open return 1 if is readable reading not permitted q warning q file read block read operation not permitted return 1 endif int nread 0 number of bytes read if ungetch buffer is empty need to add these to the returned string int l ungetch buffer length while nread l p ungetch buffer l nread 1 p nread ungetch buffer truncate l nread if nread int len if is raw raw file nread read fd p len nread if len nread 0 nread 0 set status io readerror else buffered file nread fread p 1 len nread fh if uint nread len if ferror fh nread 0 set status io readerror io index nread return nread qfile readblock check_null qwarning qfile readblock check_state isopen qwarning qfile readblock isreadable qwarning qfile readblock ungetchbuffer isempty ungetchbuffer ungetchbuffer ungetchbuffer israw setstatus io_readerror setstatus io_readerror ioindex int q file write block const char p uint len if defined check null if p 0 len 0 q warning q file write block null pointer error endif if defined check state if is open file not open q warning q file write block file not open return 1 if is writable writing not permitted q warning q file write block write operation not permitted return 1 endif int nwritten number of bytes written if is raw raw file nwritten write fd p len else buffered file nwritten fwrite p 1 len fh if nwritten int len write error if errno enospc disk is full set status io resourceerror else set status io writeerror if is raw recalc file position io index int lseek fd 0 seek cur else io index fseek fh 0 seek cur else io index nwritten if io index length update file length length io index return nwritten qfile writeblock check_null qwarning qfile writeblock check_state isopen qwarning qfile writeblock iswritable qwarning qfile writeblock israw setstatus io_resourceerror setstatus io_writeerror israw ioindex seek_cur ioindex seek_cur ioindex ioindex ioindex int q file handle const if is open return 1 else if fh return fileno fh else return fd qfile isopen q file q file init qfile qfile fn name init q file q file close qfile qfile void q file set name const q string name if is open if defined check state q warning q file set name file is open endif close fn name qfile setname qstring isopen check_state qwarning qfile setname qc string q file encode name const q string file name return encoder file name qcstring qfile encodename qstring filename filename q string q file decode name const qc string local file name return decoder local file name qstring qfile decodename qcstring localfilename localfilename void q file set encoding function encoder fn f encoder f qfile setencodingfunction encoderfn void q file set decoding function decoder fn f decoder f qfile setdecodingfunction decoderfn bool q file exists const return qt file access fn f ok qfile qt_file_access f_ok bool q file exists const q string file name return qt file access file name f ok qfile qstring filename qt_file_access filename f_ok bool q file remove close return remove fn qfile void q file flush if is open fh can only flush open buffered fflush fh file qfile isopen bool q file at end const if is open if defined check state q warning q file at end file is not open endif return false if is direct access is translated if at length return false return qio device at end qfile atend isopen check_state qwarning qfile atend isdirectaccess istranslated qiodevice atend int q file read line char p uint maxlen if maxlen 0 application bug return 0 if defined check state check ptr p if is open file not open q warning q file read line file not open return 1 if is readable reading not permitted q warning q file read line read operation not permitted return 1 endif int nread number of bytes read if is raw raw file nread qio device read line p maxlen else buffered file p fgets p maxlen fh if p nread qstrlen p io index nread else nread 1 set status io readerror return nread qfile readline check_state check_ptr isopen qwarning qfile readline isreadable qwarning qfile readline israw qiodevice readline ioindex setstatus io_readerror int q file read line q string s uint maxlen q byte array ba maxlen int l read line ba data maxlen if l 0 ba truncate l s q string ba return l qfile readline qstring qbytearray readline qstring int q file getch if defined check state if is open file not open q warning q file getch file not open return eof if is readable reading not permitted q warning q file getch read operation not permitted return eof endif int ch if ungetch buffer is empty int len ungetch buffer length ch ungetch buffer len 1 ungetch buffer truncate len 1 return ch if is raw raw file inefficient char buf 1 ch read block buf 1 1 buf 0 eof else buffered file if ch getc fh eof io index else set status io readerror return ch qfile check_state isopen qwarning qfile isreadable qwarning qfile ungetchbuffer isempty ungetchbuffer ungetchbuffer ungetchbuffer israw readblock ioindex setstatus io_readerror int q file putch int ch if defined check state if is open file not open q warning q file putch file not open return eof if is writable writing not permitted q warning q file putch write operation not permitted return eof endif if is raw raw file inefficient char buf 1 buf 0 ch ch write block buf 1 1 ch eof else buffered file if ch putc ch fh eof io index if io index length update file length length io index else set status io writeerror return ch qfile check_state isopen qwarning qfile iswritable qwarning qfile israw writeblock ioindex ioindex ioindex setstatus io_writeerror int q file ungetch int ch if defined check state if is open file not open q warning q file ungetch file not open return eof if is readable reading not permitted q warning q file ungetch read operation not permitted return eof endif if ch eof cannot unget eof return ch if is sequential access fh pipe or similar we cannot ungetch so do it manually ungetch buffer ch return ch if is raw raw file very inefficient char buf 1 at io index 1 buf 0 ch if write block buf 1 1 at io index 1 else ch eof else buffered file if ch ungetc ch fh eof io index else set status io readerror return ch qfile check_state isopen qwarning qfile isreadable qwarning qfile issequentialaccess ungetchbuffer israw ioindex writeblock ioindex ioindex setstatus io_readerror void q file init set flags io direct set status io ok fh 0 fd 0 length 0 io index 0 ext f false not an external file handle qfile setflags io_direct setstatus io_ok ioindex ext_f q string buffer q string buffer q string str s str qstringbuffer qstringbuffer qstring q string buffer q string buffer qstringbuffer qstringbuffer bool q string buffer open int m if s if defined check state q warning q string buffer open no string endif return false if is open buffer already open if defined check state q warning q string buffer open buffer already open endif return false set mode m if m io truncate truncate buffer s truncate 0 if m io append append to end of buffer io index s length sizeof q char else io index 0 set state io open set status 0 return true qstringbuffer check_state qwarning qstringbuffer isopen check_state qwarning qstringbuffer setmode io_truncate io_append ioindex qchar ioindex setstate io_open setstatus void q string buffer close if is open set flags io direct io index 0 qstringbuffer isopen setflags io_direct ioindex void q string buffer flush qstringbuffer uint q string buffer size const return s s length sizeof q char 0 qstringbuffer qchar int q string buffer at const return io index qstringbuffer ioindex bool q string buffer at int pos if defined check state if is open q warning q string buffer at buffer is not open return false endif if uint pos s length 2 if defined check range q warning q string buffer at index d out of range pos endif return false io index pos return true qstringbuffer check_state isopen qwarning qstringbuffer check_range qwarning qstringbuffer ioindex int q string buffer read block char p uint len if defined check state check ptr p if is open buffer not open q warning q string buffer read block buffer not open return 1 if is readable reading not permitted q warning q string buffer read block read operation not permitted return 1 endif if uint io index len s length sizeof q char overflow if uint io index s length sizeof q char set status io readerror return 1 else len s length 2 uint io index memcpy p const char s unicode io index len io index len return len qstringbuffer readblock check_state check_ptr isopen qwarning qstringbuffer readblock isreadable qwarning qstringbuffer readblock ioindex qchar ioindex qchar setstatus io_readerror ioindex ioindex ioindex int q string buffer write block const char p uint len if defined check null if p 0 len 0 q warning q string buffer write block null pointer error endif if defined check state if is open buffer not open q warning q string buffer write block buffer not open return 1 if is writable writing not permitted q warning q string buffer write block write operation not permitted return 1 if io index 1 q warning q string buffer write block non even index non unicode return 1 if len 1 q warning q string buffer write block non even length non unicode return 1 endif s replace io index 2 len 2 q char p len 2 io index len return len qstringbuffer writeblock check_null qwarning qstringbuffer writeblock check_state isopen qwarning qstringbuffer writeblock iswritable qwarning qstringbuffer writeblock ioindex qwarning qstringbuffer writeblock qwarning qstringbuffer writeblock ioindex qchar ioindex int q string buffer getch if defined check state if is open buffer not open q warning q string buffer getch buffer not open return 1 if is readable reading not permitted q warning q string buffer getch read operation not permitted return 1 endif if uint io index s length 2 overflow set status io readerror return 1 return char s unicode io index qstringbuffer check_state isopen qwarning qstringbuffer isreadable qwarning qstringbuffer ioindex setstatus io_readerror ioindex int q string buffer putch int ch char c ch if write block c 1 0 return 1 else return ch qstringbuffer writeblock int q string buffer ungetch int ch if defined check state if is open buffer not open q warning q string buffer ungetch buffer not open return 1 if is readable reading not permitted q warning q string buffer ungetch read operation not permitted return 1 endif if ch 1 something to do with eof if io index io index else ch 1 return ch qstringbuffer check_state isopen qwarning qstringbuffer isreadable qwarning qstringbuffer ioindex ioindex s lots of interesting data endcode then read it in with code open the file q file f file xxx f open io readonly q data stream s f qfile io_readonly qdatastream q int32 version s version if version 100 return xxx bad file too old if version 123 return xxx bad file too new if version 110 s set version 1 read the data q_int32 xxx_bad_file_too_old xxx_bad_file_too_new setversion else define check stream precond endif static int system word size 0 static bool system big endian static const int default stream version 3 3 is default in qt 2 1 2 is the qt 2 0 x format 1 is the qt 1 x format check_stream_precond systemwordsize systembigendian defaultstreamversion if system word size 0 get system features q sys info system word size system big endian dev 0 no device set owndev false systemwordsize qsysinfo systemwordsize systembigendian q sys info system word size system big endian dev d set device owndev false byteorder big endian default byte order printable false ver default stream version noswap system big endian qsysinfo systemwordsize systembigendian bigendian defaultstreamversion systembigendian code static char bindata 231 1 44 q byte array a qbytearray void q data stream set device qio device d if owndev delete dev owndev false qdatastream setdevice qiodevice if this flag is set the write functions will generate output that consists of printable characters 7 bit ascii we recommend enabling printable data only for debugging purposes it is slower and creates larger output fn int q data stream version const returns the version number of the data serialization format in qt 2 1 this number is by default 3 sa set version qdatastream setversion for qt 2 0 x compatibility use a v 2 not required for reading in qt 2 1 sa version q data stream read functions static q int32 read int ascii q data stream s register int n 0 qdatastream q_int32 read_int_ascii qdatastream reads an unsigned byte from the stream and returns a reference to the stream reads a signed byte from the stream q data stream q data stream operator q int8 i check stream precond if printable printable data i q int8 dev getch if i read octal code char buf 4 dev read block buf 3 i buf 2 0x07 buf 1 0x07 3 buf 0 0x07 6 qdatastream qdatastream q_int8 check_stream_precond q_int8 readblock reads a signed 16 bit integer from the stream and returns a reference to the stream q data stream q data stream operator q int16 i check stream precond if printable printable data i q int16 read int ascii this else if noswap no conversion needed dev read block char i sizeof q int16 else swap bytes register uchar p uchar i char b 2 dev read block b 2 p b 1 p b 0 return this qdatastream qdatastream q_int16 check_stream_precond q_int16 read_int_ascii readblock q_int16 readblock dev read block b 4 p b 3 p b 2 p b 1 p b 0 return this fn q data stream q data stream operator q uint64 i reads an unsigned 64 bit integer from the stream and returns a reference to the stream or uses the q uint32 operator if 64 bit is not available reads a signed 64 bit integer from the stream and returns a reference to readblock qdatastream qdatastream q_uint64 q_uint32 else if noswap no conversion needed dev read block char i sizeof q int64 else swap bytes register uchar p uchar i char b sizeof q int64 dev read block b sizeof q int64 if sizeof q int64 8 p b 7 p b 6 p b 5 p b 4 p b 3 p b 2 p b 1 p b 0 return this static double read double ascii q data stream s readblock q_int64 q_int64 readblock q_int64 q_int64 read_double_ascii qdatastream this is an empty method the a l parameter will be set to the length of the buffer the serialization format is an q uint32 length specifier first then the data a l bytes sa read raw bytes write bytes q data stream q data stream read bytes char s uint l check stream precond q uint32 len this len first read length spec l uint len if len 0 eof q_uint32 readrawbytes writebytes qdatastream qdatastream readbytes check_stream_precond q_uint32 the stream the buffer a s must be preallocated sa read bytes qio device read block write raw bytes q data stream q data stream read raw bytes char s uint len check stream precond if printable printable data register q int8 p q int8 s while len this p else read data char array dev read block s len readbytes qiodevice readblock writerawbytes qdatastream qdatastream readrawbytes check_stream_precond q_int8 q_int8 readblock writes a signed byte to the stream q data stream q data stream operator q int8 i check stream precond if printable i isprint i char buf 6 write octal code buf 0 buf 1 0 i 6 0x07 buf 2 0 i 3 0x07 buf 3 0 i 0x07 buf 4 0 dev write block buf 4 else dev putch i qdatastream qdatastream q_int8 check_stream_precond writeblock q data stream q data stream operator q int16 i check stream precond if printable printable data char buf 16 sprintf buf d n i dev write block buf strlen buf else if noswap no conversion needed dev write block char i sizeof q int16 else swap bytes register uchar p uchar i char b 2 b 1 p b 0 p dev write block b 2 return this fn q data stream q data stream operator q uint32 i writes an unsigned 32 bit integer to the stream and returns a reference to qdatastream qdatastream q_int16 check_stream_precond writeblock writeblock q_int16 writeblock qdatastream qdatastream q_uint32 b 2 p b 1 p b 0 p dev write block b 4 return this fn q data stream q data stream operator q uint64 i writes an unsigned 64 bit integer to the stream and returns a reference to the stream or uses the q uint32 operator if 64 bit is not available writes a signed 64 bit integer to the stream and returns a reference to the stream or calls the q int32 operator if 64 bit is not available q data stream q data stream operator q int64 i check stream precond writeblock qdatastream qdatastream q_uint64 q_uint32 q_int32 qdatastream qdatastream q_int64 check_stream_precond char b sizeof q int64 if sizeof q int64 8 b 7 p b 6 p b 5 p b 4 p b 3 p b 2 p b 1 p b 0 p dev write block b sizeof q int64 return this fn q data stream q data stream operator uint i writes an unsigned integer to the stream as a 32 bit unsigned integer q uint32 returns a reference to the stream q_int64 q_int64 writeblock q_int64 qdatastream qdatastream q_uint32 q data stream q data stream operator float f check stream precond if printable printable data char buf 32 sprintf buf g n double f dev write block buf strlen buf qdatastream qdatastream check_stream_precond writeblock return this reads a 64 bit floating point number from the stream using the standard ieee754 format returns a reference to the stream q data stream q data stream operator double f check stream precond if printable printable data f read double ascii this else if noswap no conversion needed qdatastream qdatastream check_stream_precond read_double_ascii p b 0 return this reads the 0 terminated string a s from the stream and returns a reference to the stream space for the string is allocated using c new the caller must return this writes a 64 bit floating point number to the stream using the standard else if noswap no conversion needed dev write block char f sizeof double else swap bytes register uchar p uchar f char b 8 b 7 p b 6 p b 5 p b 4 p b 3 p b 2 p writeblock q collection item q collection new item item d return d just return reference qcollection qcollection newitem void q collection delete item item d if del item if defined q deleting void undefined delete char d default operation else delete d default operation endif qcollection deleteitem del_item q_deleting_void_undefined q text stateless encoder q text stateless encoder const q text codec c codec c qtextstatelessencoder qtextstatelessencoder qtextcodec qc string q text stateless encoder from unicode const q string uc int len in out return codec from unicode uc len in out qcstring qtextstatelessencoder fromunicode qstring leninout fromunicode leninout q text stateless decoder q text stateless decoder const q text codec c codec c qtextstatelessdecoder qtextstatelessdecoder qtextcodec q string q text stateless decoder to unicode const char chars int len return codec to unicode chars len qstring qtextstatelessdecoder tounicode tounicode link q text codec mib enum mi benum endlink a mib q text codec q text codec codec for mib int mib qtextcodec mibenum mibenum qtextcodec qtextcodec codecformib setup q list iterator q text codec i all q text codec result for result i i qlistiterator qtextcodec qtextcodec return result ifdef os win32 class q windows local codec public q text codec public _os_win32_ qwindowslocalcodec qtextcodec q string to unicode const char chars int len const qc string from unicode const q string uc int len in out const const char name const qstring tounicode qcstring fromunicode qstring leninout q windows local codec q windows local codec qwindowslocalcodec qwindowslocalcodec q windows local codec q windows local codec qwindowslocalcodec qwindowslocalcodec q string q windows local codec to unicode const char chars int len const if len 1 chars optimization avoids allocation char c 2 c 0 chars c 1 0 return qt winmb2qstring c 2 if len 0 return qt winmb2qstring chars qc string s chars len 1 qstring qwindowslocalcodec tounicode qt_winmb2qstring qt_winmb2qstring qcstring return byte 0xff class q text codec fromiod class q text codec fromiod decoder public q text decoder const q text codec fromiod codec q multi byte unicode table mb public q text codec fromiod decoder const q text codec fromiod c q string to unicode const char chars int len class q text codec fromiod public q text codec friend class q text codec fromiod decoder qc string n if from unicode page row cell is 0 and from unicode page multibyte use from unicode page multibyte row cell as string char from unicode page char from unicode page multibyte char unkn only one of these is used ushort to unicode q multi byte unicode table to unicode multibyte int max bytes per char q str list aliases bool stateless const return to unicode multibyte public q text codec fromiod qio device iod from unicode page 0 to unicode multibyte 0 to unicode 0 from unicode page multibyte 0 max bytes per char 1 const int maxlen 100 char line maxlen char esc char comm bool incmap false while iod read line line maxlen 0 if 0 qstrnicmp line code set name 15 n line 15 else if 0 qstrnicmp line escape char 14 esc line 14 else if 0 qstrnicmp line comment char 15 comm line 15 else if line 0 comm 0 qstrnicmp line 1 alias 7 aliases append line 8 else if 0 qstrnicmp line charmap 7 if from unicode page from unicode page new char 256 for int i 0 i 256 i from unicode page i 0 if to unicode to unicode new ushort 256 incmap true else if 0 qstrnicmp line end charmap 11 break else if incmap char cursor line int byte unicode 1 ushort mb unicode 0 const int maxmb 8 more we ll need to improve datastructures char mb maxmb 1 int nmb 0 while cursor if cursor 0 cursor 1 u cursor 2 0 cursor 2 9 cursor 3 0 cursor 3 9 unicode strtol cursor 2 cursor 16 else if cursor esc byte get byte cursor if cursor esc if to unicode multibyte to unicode multibyte new q multi byte unicode table 256 for int i 0 i 256 i to unicode multibyte i unicode to unicode i to unicode multibyte i multibyte 0 delete to unicode to unicode 0 q multi byte unicode table mbut to unicode multibyte byte mb nmb byte while nmb maxmb cursor esc always at least once mbut unicode chained byte get byte cursor mb nmb byte if mbut multibyte mbut multibyte new q multi byte unicode table 256 mbut mbut multibyte byte mb unicode mbut unicode if nmb max bytes per char max bytes per char nmb else cursor if unicode 0 unicode 0xffff q char ch ushort unicode if from unicode page ch row from unicode page ch row new char 256 qtextcodecfromiod qtextcodecfromioddecoder qtextdecoder qtextcodecfromiod qmultibyteunicodetable qtextcodecfromioddecoder qtextcodecfromiod qstring tounicode qtextcodecfromiod qtextcodec qtextcodecfromioddecoder qcstring from_unicode_page from_unicode_page_multibyte from_unicode_page_multibyte from_unicode_page from_unicode_page_multibyte to_unicode qmultibyteunicodetable to_unicode_multibyte max_bytes_per_char qstrlist to_unicode_multibyte qtextcodecfromiod qiodevice from_unicode_page to_unicode_multibyte to_unicode from_unicode_page_multibyte max_bytes_per_char readline code_set_name escape_char comment_char from_unicode_page from_unicode_page from_unicode_page to_unicode to_unicode mb_unicode getbyte to_unicode_multibyte to_unicode_multibyte qmultibyteunicodetable to_unicode_multibyte to_unicode to_unicode_multibyte to_unicode to_unicode qmultibyteunicodetable to_unicode_multibyte getbyte qmultibyteunicodetable mb_unicode max_bytes_per_char max_bytes_per_char qchar from_unicode_page from_unicode_page if mb unicode from unicode page ch row ch cell 0 if from unicode page multibyte from unicode page multibyte new char 256 for int i 0 i 256 i from unicode page multibyte i 0 if from unicode page multibyte ch row from unicode page multibyte ch row new char 256 for int i 0 i 256 i from unicode page multibyte ch row i 0 mb nmb 0 from unicode page multibyte ch row ch cell qstrdup mb mb unicode unicode else mb_unicode from_unicode_page from_unicode_page_multibyte from_unicode_page_multibyte from_unicode_page_multibyte from_unicode_page_multibyte from_unicode_page_multibyte from_unicode_page_multibyte from_unicode_page_multibyte mb_unicode to unicode byte unicode else to unicode multibyte byte unicode unicode to_unicode to_unicode_multibyte n n strip white space unkn might be a bad choice stripwhitespace q text codec fromiod if from unicode page qtextcodecfromiod from_unicode_page delete from unicode page i if from unicode page multibyte from_unicode_page from_unicode_page_multibyte for int j 0 j 256 j if from unicode page multibyte i j delete from unicode page multibyte i j from_unicode_page_multibyte from_unicode_page_multibyte delete to unicode if to unicode multibyte delete to unicode multibyte bool ok const return from unicode page q text decoder make decoder const to_unicode to_unicode_multibyte to_unicode_multibyte from_unicode_page qtextdecoder makedecoder else return new q text codec fromiod decoder this const char name const return n int mib enum const return 0 unknown int heuristic content match const char int const return 0 int heuristic name match const char hint const int bestr q text codec heuristic name match hint qtextcodecfromioddecoder mibenum heuristiccontentmatch heuristicnamematch qtextcodec heuristicnamematch while a it current it int r simple heuristic name match a hint if r bestr bestr r return bestr q string to unicode const char chars int len const const uchar uchars const uchar chars q string result q multi byte unicode table multibyte to unicode multibyte if multibyte while len q multi byte unicode table mb multibyte uchars if mb multibyte chained multi byte multibyte mb multibyte else result q char mb unicode multibyte to unicode multibyte uchars else while len result q char to unicode uchars return result qc string from unicode const q string uc int len in out const if len in out int uc length simpleheuristicnamematch qstring tounicode qstring qmultibyteunicodetable to_unicode_multibyte qmultibyteunicodetable qchar to_unicode_multibyte qchar to_unicode qcstring fromunicode qstring leninout leninout char s 0 int l len in out int lout 0 leninout if ch q char null special cursor 0 else if from unicode page ch row from unicode page ch row ch cell cursor from unicode page ch row ch cell lout else if from unicode page multibyte from unicode page multibyte ch row s from unicode page multibyte ch row ch cell while s cursor s lout else qchar from_unicode_page from_unicode_page from_unicode_page from_unicode_page_multibyte from_unicode_page_multibyte from_unicode_page_multibyte this one is generated from the charmap file located in usr share i18n charmaps on most linux distributions the thai character set tis620 is byte by byte equivalent to iso8859 11 so we name it 8859 11 here but recognise the name tis620 too iso 8859 11 2259 thai character set mib enum taken from tis620 which is byte by byte equivalent 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0xfffd 0x0e01 0x0e02 0x0e03 0x0e04 0x0e05 0x0e06 0x0e07 0x0e08 0x0e09 0x0e0a 0x0e0b 0x0e0c 0x0e0d 0x0e0e 0x0e0f 0x0e28 0x0e29 0x0e2a 0x0e2b 0x0e2c 0x0e2d 0x0e2e 0x0e2f 0x0e30 0x0e31 0x0e32 0x0e33 0x0e34 0x0e35 0x0e36 0x0e37 0x0e38 0x0e39 0x0e3a 0xfffd 0xfffd 0xfffd 0xfffd 0x0e3f 0x0e40 0x0e41 0x0e42 0x0e43 0x0e44 0x0e45 0x0e46 0x0e47 0x0e48 0x0e49 0x0e4a 0x0e4b 0x0e4c 0x0e4d 0x0e4e 0x0e4f 0x0e50 0x0e51 0x0e52 0x0e53 0x0e54 0x0e55 0x0e56 0x0e57 0x0e58 0x0e59 0x0e5a 0x0e5b 0xfffd 0xfffd 0xfffd 0xfffd change last mib if you add more and edit unicodevalues in kernel qpsprinter cpp too static const q simple text codec reverse owner 0 static q array char reverse map 0 q simple text codec q simple text codec int i q text codec forward index i last_mib qsimpletextcodec reverseowner qarray reversemap qsimpletextcodec qsimpletextcodec qtextcodec forwardindex q simple text codec q simple text codec if reverse owner this delete reverse map reverse map 0 reverse owner 0 what happens if strlen chars len what happens if chars if len 1 q string q simple text codec to unicode const char chars int len const if len 0 return q string null int clen qstrlen chars len qmin len clen note nul ends string q string r r set unicode 0 len q char uc q char r unicode const cast const unsigned char c const unsigned char chars for int i 0 i len i if c i 127 uc i unicodevalues forward index values c i 128 else uc i c i return r qc string q simple text codec from unicode const q string uc int len const if reverse owner this int m 0 int i 0 while i 128 if unicodevalues forward index values i m unicodevalues forward index values i 0xfffd m unicodevalues forward index values i i qsimpletextcodec qsimpletextcodec reverseowner reversemap reversemap reverseowner qstring qsimpletextcodec tounicode qstring qstring setunicode qchar qchar const_cast forwardindex qcstring qsimpletextcodec fromunicode qstring reverseowner forwardindex forwardindex forwardindex if m int reverse map size reverse map resize m for i 0 i 128 i m i reversemap reversemap for i 128 i 256 i int u unicodevalues forward index values i 128 if u m forwardindex return r const char q simple text codec name const return unicodevalues forward index cs int q simple text codec mib enum const return unicodevalues forward index mib int q simple text codec heuristic name match const char hint const if hint 0 k help people with messy fonts if qc string hint koi8 1 return q text codec heuristic name match koi8 r 1 qsimpletextcodec forwardindex qsimpletextcodec mibenum forwardindex qsimpletextcodec heuristicnamematch qcstring qtextcodec heuristicnamematch reverse owner this if len 0 len int uc length len uc length qc string r len 1 int i len int u const q char ucp uc unicode char rp r data char rmp reverse map data int rmsize int reverse map size while i u ucp unicode rp u 128 u u rmsize rmp u ucp reverseowner qcstring qchar reversemap reversemap r i const return r 1 return r class q latin1 codec public q text codec public q latin1 codec q latin1 codec qlatin1codec qtextcodec qlatin1codec qlatin1codec const char name const int mib enum const int heuristic content match const char chars int len const int heuristic name match const char hint const private int forward index q latin1 codec q latin1 codec mibenum heuristiccontentmatch heuristicnamematch forwardindex qlatin1codec qlatin1codec q latin1 codec q latin1 codec qlatin1codec qlatin1codec what happens if strlen chars len what happens if chars if len 1 q string q latin1 codec to unicode const char chars int len const qstring qlatin1codec tounicode qc string q latin1 codec from unicode const q string uc int len const if len 0 len int uc length len uc length qc string r len 1 int i 0 const q char ch uc unicode while i len r i ch row ch cell i ch r len 0 return r qcstring qlatin1codec fromunicode qstring qcstring qchar return q string from latin1 chars len qstring fromlatin1 q string list q string list from str list const q str list ascii q string list res const char s for q str list iterator it ascii s it current it res s return res qstringlist qstringlist fromstrlist qstrlist qstringlist qstrlistiterator void q string list sort q heap sort this qstringlist qheapsort q string list q string list split const q string sep const q string str bool allow empty entries q string list lst int j 0 int i str find sep j while i 1 if str mid j i j length 0 lst str mid j i j else if allow empty entries lst q string null j i sep length i str find sep j int l str length 1 if str mid j l j 1 length 0 lst str mid j l j 1 else if allow empty entries lst q string null return lst qstringlist qstringlist qstring qstring allowemptyentries qstringlist allowemptyentries qstring allowemptyentries qstring q string list q string list split const q char sep const q string str bool allow empty entries return split q string sep str allow empty entries qstringlist qstringlist qchar qstring allowemptyentries qstring allowemptyentries q string list q string list split const q reg exp sep const q string str bool allow empty entries q string list lst int j 0 int len 0 int i sep match str j len while i 1 if str mid j i j length 0 lst str mid j i j else if allow empty entries lst q string null j i len i sep match str j len int l str length 1 if str mid j l j 1 length 0 lst str mid j l j 1 else if allow empty entries lst q string null return lst qstringlist qstringlist qregexp qstring allowemptyentries qstringlist allowemptyentries qstring allowemptyentries qstring q string q string list join const q string sep const q string res bool alredy false for q string list const iterator it begin it end it if alredy res sep alredy true res it return res qstring qstringlist qstring qstring qstringlist constiterator q string list q string list grep const q string str bool cs const q string list res for q string list const iterator it begin it end it if it contains str cs res it return res qstringlist qstringlist qstring qstringlist qstringlist constiterator q string list q string list grep const q reg exp expr const q string list res for q string list const iterator it begin it end it if it contains expr res it return res qstringlist qstringlist qregexp qstringlist qstringlist constiterator q collection item qg dict look string const q string key q collection item d int op q string bucket n int index hash key string key vlen if op op find find if cases for n q string bucket vec index n n q string bucket n get next if key n get key return n get data item found else q string k key lower for n q string bucket vec index n n q string bucket n get next if k n get key lower return n get data item found return 0 not found if op op replace replace if vec index 0 maybe something there remove string key op insert or op replace n new q string bucket key new item d vec index check ptr n if defined check null if n get data 0 q warning q dict cannot insert null item endif vec index n num items return n get data qcollection qgdict look_string qstring qcollection qstringbucket hashkeystring op_find qstringbucket qstringbucket getnext getkey getdata qstring qstringbucket qstringbucket getnext getkey getdata op_replace remove_string op_insert op_replace qstringbucket newitem check_ptr check_null getdata qwarning qdict numitems getdata q collection item qg dict look ascii const char key q collection item d int op q ascii bucket n int index hash key ascii key vlen if op op find find if cases for n q ascii bucket vec index n n q ascii bucket n get next if qstrcmp n get key key 0 return n get data item found else for n q ascii bucket vec index n n q ascii bucket n get next if qstricmp n get key key 0 return n get data item found return 0 not found if op op replace replace if vec index 0 maybe something there remove ascii key op insert or op replace n new q ascii bucket copyk qstrdup key key new item d vec index check ptr n if defined check null if n get data 0 q warning q ascii dict cannot insert null item endif vec index n num items return n get data qcollection qgdict look_ascii qcollection qasciibucket hashkeyascii op_find qasciibucket qasciibucket getnext getkey getdata qasciibucket qasciibucket getnext getkey getdata op_replace remove_ascii op_insert op_replace qasciibucket newitem check_ptr check_null getdata qwarning qasciidict numitems getdata q collection item qg dict look int long key q collection item d int op q int bucket n int index int ulong key vlen simple hash if op op find find for n q int bucket vec index n n q int bucket n get next if n get key key return n get data item found return 0 not found if op op replace replace if vec index 0 maybe something there remove int key op insert or op replace n new q int bucket key new item d vec index check ptr n if defined check null if n get data 0 q warning q int dict cannot insert null item endif vec index n num items return n get data qcollection qgdict look_int qcollection qintbucket op_find qintbucket qintbucket getnext getkey getdata op_replace remove_int op_insert op_replace qintbucket newitem check_ptr check_null getdata qwarning qintdict numitems getdata q collection item qg dict look ptr void key q collection item d int op q ptr bucket n int index int ulong key vlen simple hash if op op find find for n q ptr bucket vec index n n q ptr bucket n get next if n get key key return n get data item found return 0 not found if op op replace replace if vec index 0 maybe something there remove ptr key op insert or op replace n new q ptr bucket key new item d vec index check ptr n if defined check null if n get data 0 q warning q ptr dict cannot insert null item endif vec index n num items return n get data qcollection qgdict look_ptr qcollection qptrbucket op_find qptrbucket qptrbucket getnext getkey getdata op_replace remove_ptr op_insert op_replace qptrbucket newitem check_ptr check_null getdata qwarning qptrdict numitems getdata q data stream qg dict read q data stream s uint num s num read number of items clear clear dict while num read all items item d switch keytype case string key q string k s k read s d look string k d op insert break case ascii key char k s k read s d look ascii k d op insert if copyk delete k break case int key q uint32 k s k read s d look int k d op insert break case ptr key q uint32 k s k read s d cannot insert 0 this renders the thing useless since all pointers are written as 0 but hey serializing pointers can it be done at all ever if k look ptr void k d op insert break return s qdatastream qgdict qdatastream stringkey qstring look_string op_insert asciikey look_ascii op_insert intkey q_uint32 look_int op_insert ptrkey q_uint32 look_ptr op_insert q data stream qg dict write q data stream s const s count write number of items uint i 0 while i size q base bucket n vec i while n write all buckets switch keytype case string key s q string bucket n get key break case ascii key s q ascii bucket n get key break case int key s q uint32 q int bucket n get key break case ptr key s q uint32 0 cannot serialize a pointer break write s n get data write data n n get next i return s qdatastream qgdict qdatastream qbasebucket stringkey qstringbucket getkey asciikey qasciibucket getkey intkey q_uint32 qintbucket getkey ptrkey q_uint32 getdata getnext qg dict qg dict uint len key type kt bool case sensitive bool copy keys init len kt case sensitive copy keys qgdict qgdict keytype casesensitive copykeys casesensitive copykeys q collection dict init dict vlen key type dict keytype dict cases dict copyk qg dict iterator it dict while it get copy from other dict switch keytype case string key look string it get key string it get op insert break case ascii key look ascii it get key ascii it get op insert break case int key look int it get key int it get op insert break case ptr key look ptr it get key ptr it get op insert break it qcollection keytype qgdictiterator stringkey look_string getkeystring op_insert asciikey look_ascii getkeyascii op_insert intkey look_int getkeyint op_insert ptrkey look_ptr getkeyptr op_insert qg dict qg dict clear delete everything delete vec if iterators no iterators for this dict return qg dict iterator i iterators first while i notify all iterators that i dict 0 this dict is deleted i iterators next delete iterators qgdict qgdict qgdictiterator qg dict qg dict operator const qg dict dict clear qg dict iterator it dict while it get copy from other dict switch keytype case string key look string it get key string it get op insert break case ascii key look ascii it get key ascii it get op insert break case int key look int it get key int it get op insert break case ptr key look ptr it get key ptr it get op insert break it return this qgdict qgdict qgdict qgdictiterator stringkey look_string getkeystring op_insert asciikey look_ascii getkeyascii op_insert intkey look_int getkeyint op_insert ptrkey look_ptr getkeyptr op_insert bool qg dict remove string const q string key q collection item item q string bucket n unlink string key item if n delete item n get data delete n return true else return false qgdict remove_string qstring qcollection qstringbucket unlink_string deleteitem getdata bool qg dict remove ascii const char key q collection item item q ascii bucket n unlink ascii key item if n if copyk delete char n get key delete item n get data delete n return n 0 qgdict remove_ascii qcollection qasciibucket unlink_ascii getkey deleteitem getdata bool qg dict remove int long key q collection item item q int bucket n unlink int key item if n delete item n get data delete n return n 0 qgdict remove_int qcollection qintbucket unlink_int deleteitem getdata bool qg dict remove ptr void key q collection item item q ptr bucket n unlink ptr key item if n delete item n get data delete n return n 0 qgdict remove_ptr qcollection qptrbucket unlink_ptr deleteitem getdata q collection item qg dict take string const q string key q string bucket n unlink string key item d if n d n get data delete n else d 0 return d qcollection qgdict take_string qstring qstringbucket unlink_string getdata q collection item qg dict take ascii const char key q ascii bucket n unlink ascii key item d if n if copyk delete char n get key d n get data delete n else d 0 return d qcollection qgdict take_ascii qasciibucket unlink_ascii getkey getdata q collection item qg dict take int long key q int bucket n unlink int key item d if n d n get data delete n else d 0 return d qcollection qgdict take_int qintbucket unlink_int getdata q collection item qg dict take ptr void key q ptr bucket n unlink ptr key item d if n d n get data delete n else d 0 return d qcollection qgdict take_ptr qptrbucket unlink_ptr getdata void qg dict clear if num items return num items 0 disable remove function for uint j 0 j vlen j destroy hash table if vec j switch keytype case string key q string bucket n q string bucket vec j while n q string bucket next q string bucket n get next delete item n get data delete n n next break case ascii key q ascii bucket n q ascii bucket vec j while n q ascii bucket next q ascii bucket n get next if copyk delete char n get key delete item n get data delete n n next break case int key q int bucket n q int bucket vec j while n q int bucket next q int bucket n get next delete item n get data delete n n next break case ptr key q ptr bucket n q ptr bucket vec j while n q ptr bucket next q ptr bucket n get next delete item n get data delete n n next break vec j 0 detach list of buckets if iterators iterators count invalidate all iterators qg dict iterator i iterators first while i i cur node 0 i iterators next qgdict numitems numitems stringkey qstringbucket qstringbucket qstringbucket qstringbucket getnext deleteitem getdata asciikey qasciibucket qasciibucket qasciibucket qasciibucket getnext getkey deleteitem getdata intkey qintbucket qintbucket qintbucket qintbucket getnext deleteitem getdata ptrkey qptrbucket qptrbucket qptrbucket qptrbucket getnext deleteitem getdata qgdictiterator curnode void qg dict resize uint newsize save old information q base bucket old vec vec uint old vlen vlen bool old copyk copyk vec new q base bucket vlen newsize check ptr vec memset char vec 0 vlen sizeof q base bucket num items 0 copyk false reinsert every item from vec deleting vec as we go for uint index 0 index old vlen index switch keytype case string key q string bucket n q string bucket old vec index while n look string n get key n get data op insert q string bucket t q string bucket n get next delete n n t break case ascii key q ascii bucket n q ascii bucket old vec index while n look ascii n get key n get data op insert q ascii bucket t q ascii bucket n get next delete n n t break case int key q int bucket n q int bucket old vec index while n look int n get key n get data op insert q int bucket t q int bucket n get next delete n n t break case ptr key q ptr bucket n q ptr bucket old vec index while n look ptr n get key n get data op insert q ptr bucket t q ptr bucket n get next delete n n t break delete old vec restore state copyk old copyk invalidate all iterators since order is lost if iterators iterators count qg dict iterator i iterators first while i i to first i iterators next qgdict qbasebucket old_vec old_vlen old_copyk qbasebucket check_ptr qbasebucket numitems old_vlen stringkey qstringbucket qstringbucket old_vec look_string getkey getdata op_insert qstringbucket qstringbucket getnext asciikey qasciibucket qasciibucket old_vec look_ascii getkey getdata op_insert qasciibucket qasciibucket getnext intkey qintbucket qintbucket old_vec look_int getkey getdata op_insert qintbucket qintbucket getnext ptrkey qptrbucket qptrbucket old_vec look_ptr getkey getdata op_insert qptrbucket qptrbucket getnext old_vec old_copyk qgdictiterator tofirst int qg dict hash key string const q string key if defined check null if key is null q warning qg dict hash string key invalid null key endif int i register uint h 0 uint g int len key length const q char p key unicode if cases case sensitive for i 0 i len i h h 4 p i cell if g h 0xf0000000 h g 24 h g else case insensitive for i 0 i len i h h 4 p i lower cell if g h 0xf0000000 h g 24 h g int index h if index 0 adjust index to table size index index return index qgdict hashkeystring qstring check_null isnull qwarning qgdict hashstringkey qchar int qg dict hash key ascii const char key if defined check null if key 0 q warning qg dict hash ascii key invalid null key return 0 endif register const char k key register uint h 0 uint g if cases case sensitive while k h h 4 k if g h 0xf0000000 h g 24 h g else case insensitive while k h h 4 tolower k if g h 0xf0000000 h g 24 h g k int index h if index 0 adjust index to table size index index return index qgdict hashkeyascii check_null qwarning qgdict hashasciikey void qg dict statistics const if defined debug q string line line fill 60 double real ideal q debug line ascii q debug dictionary statistics if count 0 q debug empty q debug line ascii return real 0 0 ideal float count 2 0 size count 2 0 size 1 uint i 0 while i size q base bucket n vec i int b 0 while n count number of buckets b n n get next real real double b double b 1 0 2 0 char buf 80 pbuf if b 78 b 78 pbuf buf while b pbuf pbuf 0 q debug buf i q debug array size d size q debug items d count q debug real dist g real q debug rand dist g ideal q debug real rand g real ideal q debug line ascii endif debug qgdict qstring qdebug qdebug qdebug qdebug qbasebucket getnext qdebug qdebug qdebug qdebug qdebug qdebug qdebug q data stream qg dict read q data stream s q collection item item item 0 return s qdatastream qgdict qdatastream qcollection q data stream qg dict write q data stream s q collection item const return s qdatastream qgdict qdatastream qcollection void qg dict unlink common int index q base bucket node q base bucket prev if iterators iterators count update iterators qg dict iterator i iterators first while i invalidate all iterators if i cur node node referring to pending node i operator i iterators next if prev unlink node prev set next node get next else vec index node get next num items qgdict unlink_common qbasebucket qbasebucket qgdictiterator curnode setnext getnext getnext numitems q string bucket qg dict unlink string const q string key q collection item d if num items 0 nothing in dictionary return 0 q string bucket n q string bucket prev 0 int index hash key string key vlen if cases for n q string bucket vec index n n q string bucket n get next bool found key n get key if found d found n get data d if found unlink common index n prev return n prev n else q string k key lower for n q string bucket vec index n n q string bucket n get next bool found k n get key lower if found d found n get data d if found unlink common index n prev return n prev n return 0 qstringbucket qgdict unlink_string qstring qcollection numitems qstringbucket qstringbucket hashkeystring qstringbucket qstringbucket getnext getkey getdata unlink_common qstring qstringbucket qstringbucket getnext getkey getdata unlink_common q ascii bucket qg dict unlink ascii const char key q collection item d if num items 0 nothing in dictionary return 0 q ascii bucket n q ascii bucket prev 0 int index hash key ascii key vlen for n q ascii bucket vec index n n q ascii bucket n get next bool found cases qstrcmp n get key key qstricmp n get key key 0 if found d found n get data d if found unlink common index n prev return n prev n return 0 qasciibucket qgdict unlink_ascii qcollection numitems qasciibucket qasciibucket hashkeyascii qasciibucket qasciibucket getnext getkey getkey getdata unlink_common q int bucket qg dict unlink int long key q collection item d if num items 0 nothing in dictionary return 0 q int bucket n q int bucket prev 0 int index int ulong key vlen for n q int bucket vec index n n q int bucket n get next bool found n get key key if found d found n get data d if found unlink common index n prev return n prev n return 0 qintbucket qgdict unlink_int qcollection numitems qintbucket qintbucket qintbucket qintbucket getnext getkey getdata unlink_common q ptr bucket qg dict unlink ptr void key q collection item d if num items 0 nothing in dictionary return 0 q ptr bucket n q ptr bucket prev 0 int index int ulong key vlen for n q ptr bucket vec index n n q ptr bucket n get next bool found n get key key if found d found n get data d if found unlink common index n prev return n prev n return 0 qptrbucket qgdict unlink_ptr qcollection numitems qptrbucket qptrbucket qptrbucket qptrbucket getnext getkey getdata unlink_common void qg dict init uint len key type kt bool case sensitive bool copy keys vec new q base bucket vlen len allocate hash table check ptr vec memset char vec 0 vlen sizeof q base bucket num items 0 iterators 0 the case sensitive and copy key options don t make sense for all dict types switch keytype uint kt case string key cases case sensitive copyk false break case ascii key cases case sensitive copyk copy keys break default cases false copyk false break qgdict keytype casesensitive copykeys qbasebucket check_ptr qbasebucket numitems casesensitive copykey stringkey casesensitive asciikey casesensitive copykeys qc list qc list if defined debug assert count 0 endif qclist qclist void qc list insert q cache item ci q cache item item first while item item skip priority ci priority item skip priority item next if item q list q cache item insert at ci else append ci if defined debug assert ci node 0 endif ci node current node qclist qcacheitem qcacheitem skippriority skippriority qlist qcacheitem currentnode inline void qc list insert int i q cache item ci q list q cache item insert i ci if defined debug assert ci node 0 endif ci node current node qclist qcacheitem qlist qcacheitem currentnode void qc list take q cache item ci if ci if defined debug assert ci node 0 endif take node ci node ci node 0 qclist qcacheitem takenode inline void qc list reference q cache item ci if defined debug assert ci 0 ci node 0 endif ci skip priority ci priority relink node ci node relink as first item qclist qcacheitem skippriority relinknode qg cache iterator qg cache iterator const qg cache c it new qc list it c lru list if defined debug assert it 0 endif qgcacheiterator qgcacheiterator qgcache qclistit lrulist qg cache iterator qg cache iterator const qg cache iterator ci it new qc list it ci it if defined debug assert it 0 endif qgcacheiterator qgcacheiterator qgcacheiterator qclistit qg cache iterator qg cache iterator delete it qgcacheiterator qgcacheiterator qg cache iterator qg cache iterator operator const qg cache iterator ci it ci it return this qgcacheiterator qgcacheiterator qgcacheiterator uint qg cache iterator count const return it count qgcacheiterator bool qg cache iterator at first const return it at first qgcacheiterator atfirst atfirst bool qg cache iterator at last const return it at last qgcacheiterator atlast atlast q collection item qg cache iterator to first q cache item item it to first return item item data 0 qcollection qgcacheiterator tofirst qcacheitem tofirst q collection item qg cache iterator to last q cache item item it to last return item item data 0 qcollection qgcacheiterator tolast qcacheitem tolast q collection item qg cache iterator get const q cache item item it current return item item data 0 qcollection qgcacheiterator qcacheitem q string qg cache iterator get key string const q cache item item it current return item q string item key q string null qstring qgcacheiterator getkeystring qcacheitem qstring qstring const char qg cache iterator get key ascii const q cache item item it current return item const char item key 0 qgcacheiterator getkeyascii qcacheitem long qg cache iterator get key int const q cache item item it current return item long item key 0 qgcacheiterator getkeyint qcacheitem q collection item qg cache iterator operator q cache item item it operator return item item data 0 qcollection qgcacheiterator qcacheitem q collection item qg cache iterator operator q cache item item it operator return item item data 0 qcollection qgcacheiterator qcacheitem q collection item qg cache iterator operator uint jump q cache item item it operator jump return item item data 0 qcollection qgcacheiterator qcacheitem q collection item qg cache iterator operator q cache item item it operator return item item data 0 qcollection qgcacheiterator qcacheitem q collection item qg cache iterator operator uint jump q cache item item it operator jump return item item data 0 qcollection qgcacheiterator qcacheitem bool copy keys keytype kt lru list new qc list check ptr lru list lru list set auto delete true copyk keytype ascii key copy keys dict new qc dict size kt case sensitive false check ptr dict m cost max cost t cost 0 if defined debug lru list inserts 0 lru list insert costs 0 lru list insert misses 0 lru list finds 0 lru list hits 0 lru list hit costs 0 lru list dumps 0 lru list dump costs 0 endif copykeys lrulist qclist check_ptr lrulist lrulist setautodelete asciikey copykeys qcdict casesensitive check_ptr mcost maxcost tcost lrulist lrulist insertcosts lrulist insertmisses lrulist lrulist lrulist hitcosts lrulist lrulist dumpcosts q collection if defined check null q fatal qg cache qg cache qg cache cannot copy a cache endif qcollection check_null qfatal qgcache qgcache qgcache qg cache qg cache clear delete everything first delete dict delete lru list qgcache qgcache lrulist qg cache qg cache operator const qg cache if defined check null q fatal qg cache operator cannot copy a cache endif return this satisfy the compiler qgcache qgcache qgcache check_null qfatal qgcache void qg cache set max cost int max cost if max cost t cost if make room for t cost max cost remove excess cost return m cost max cost qgcache setmaxcost maxcost maxcost tcost makeroomfor tcost maxcost mcost maxcost void qg cache clear q cache item ci while ci lru list first switch keytype case string key dict remove string ci delete q string ci key break case ascii key dict remove ascii ci if copyk delete char ci key break case int key dict remove int ci break case ptr key unused break delete item ci data delete data lru list remove first remove from list t cost 0 qgcache qcacheitem lrulist stringkey remove_string qstring asciikey remove_ascii intkey remove_int ptrkey deleteitem lrulist removefirst tcost int cost int priority if t cost cost m cost if make room for t cost cost m cost priority if defined debug lru list insert misses endif return false if defined debug assert keytype string key lru list inserts lru list insert costs cost endif if priority 32768 priority 32768 else if priority 32767 priority 32677 q cache item ci new q cache item new q string key new item data cost short priority check ptr ci lru list insert 0 ci dict insert string key ci t cost cost return true tcost mcost makeroomfor tcost mcost lrulist insertmisses stringkey lrulist lrulist insertcosts qcacheitem qcacheitem qstring newitem check_ptr lrulist insert_string tcost int cost int priority if t cost cost m cost if make room for t cost cost m cost priority if defined debug lru list insert misses endif return false if defined debug assert keytype string key lru list inserts lru list insert costs cost endif if keytype ascii key copyk key qstrdup key if priority 32768 priority 32768 else if priority 32767 priority 32677 q cache item ci new q cache item void key new item data cost short priority check ptr ci lru list insert 0 ci if keytype ascii key dict insert ascii key ci else dict insert int long key ci t cost cost return true tcost mcost makeroomfor tcost mcost lrulist insertmisses stringkey lrulist lrulist insertcosts asciikey qcacheitem qcacheitem newitem check_ptr lrulist asciikey insert_ascii insert_int tcost bool qg cache remove string const q string key item d take string key if d delete item d return d 0 qgcache remove_string qstring take_string deleteitem bool qg cache remove other const char key item d take other key if d delete item d return d 0 qgcache remove_other take_other deleteitem q collection item qg cache take string const q string key q cache item ci dict take string key take from dict item d if ci d ci data t cost ci cost lru list take ci take from list delete q string ci key delete ci else d 0 return d qcollection qgcache take_string qstring qcacheitem take_string tcost lrulist qstring q collection item qg cache take other const char key q cache item ci if keytype ascii key ci dict take ascii key else ci dict take int long key item d if ci d ci data t cost ci cost lru list take ci take from list if copyk delete char ci key delete ci else d 0 return d qcollection qgcache take_other qcacheitem asciikey take_ascii take_int tcost lrulist q collection item qg cache find string const q string key bool ref const q cache item ci dict find string key if defined debug lru list finds endif if ci if defined debug lru list hits lru list hit costs ci cost endif if ref lru list reference ci return ci data return 0 qcollection qgcache find_string qstring qcacheitem find_string lrulist lrulist lrulist hitcosts lrulist q collection item qg cache find other const char key bool ref const q cache item ci keytype ascii key dict find ascii key dict find int long key if defined debug lru list finds endif if ci if defined debug lru list hits lru list hit costs ci cost endif if ref lru list reference ci return ci data return 0 qcollection qgcache find_other qcacheitem asciikey find_ascii find_int lrulist lrulist lrulist hitcosts lrulist void qg cache statistics const if defined debug q string line line fill 80 q debug line ascii q debug cache statistics q debug cache contains d item s with a total cost of d count count 1 s t cost q debug maximum cost is d cache is d full m cost 200 t cost m cost m cost 2 q debug find has been called d time s lru list finds lru list finds 1 s q debug d of these were hits items found had a total cost of d lru list hits lru list hit costs q debug d item s s been inserted with a total cost of d lru list inserts lru list inserts 1 s lru list inserts 1 have has lru list insert costs q debug d item s s too large or had too low priority to be inserted lru list insert misses lru list insert misses 1 s lru list insert misses 1 were was q debug d item s s been thrown away with a total cost of d lru list dumps lru list dumps 1 s lru list dumps 1 have has lru list dump costs q debug statistics from internal dictionary class dict statistics q debug line ascii endif qgcache qstring qdebug qdebug qdebug tcost qdebug mcost tcost mcost mcost qdebug lrulist lrulist qdebug lrulist lrulist hitcosts qdebug lrulist lrulist lrulist lrulist insertcosts qdebug lrulist insertmisses lrulist insertmisses lrulist insertmisses qdebug lrulist lrulist lrulist lrulist dumpcosts qdebug qdebug bool qg cache make room for int cost int priority if cost m cost cannot make room for more return false than maximum cost if priority 1 priority 32767 register q cache item ci lru list last int cnt cost 0 int dumps 0 number of items to dump while cnt cost cost ci ci skip priority priority cnt cost ci cost ci lru list prev dumps if cnt cost cost can enough cost be dumped return false no if defined debug assert dumps 0 endif while dumps ci lru list last if defined debug lru list dumps lru list dump costs ci cost endif switch keytype case string key dict remove string ci delete q string ci key break case ascii key dict remove ascii ci if copyk delete char ci key break case int key dict remove int ci break case ptr key unused break delete item ci data delete data lru list remove last remove from list t cost cnt cost return true qgcache makeroomfor mcost qcacheitem lrulist cntcost cntcost skippriority cntcost lrulist cntcost lrulist lrulist lrulist dumpcosts stringkey remove_string qstring asciikey remove_ascii intkey remove_int ptrkey deleteitem lrulist removelast tcost cntcost q date time q date time const q date date d date qdatetime qdatetime qdate q date time q date time const q date date const q time time d date t time qdatetime qdatetime qdate qtime void q date time settime t uint secs since1 jan1970utc time t tmp time t secs since1 jan1970utc tm tm localtime tmp if tm tm gmtime tmp if tm d jd q date greg2jul 1970 1 1 t ds 0 return d jd q date greg2jul tm tm year 1900 tm tm mon 1 tm tm mday t ds msecs per hour tm tm hour msecs per min tm tm min 1000 tm tm sec qdatetime settime_t secssince1jan1970utc time_t time_t secssince1jan1970utc qdate qdate tm_year tm_mon tm_mday msecs_per_hour tm_hour msecs_per_min tm_min tm_sec q string q date time to string const q string buf d day name d day of week buf buf d month name d month buf buf q string set num d day buf buf t to string buf buf q string set num d year return buf qstring qdatetime tostring qstring dayname dayofweek monthname qstring setnum tostring qstring setnum q date time q date time add days int ndays const return q date time d add days ndays t qdatetime qdatetime adddays qdatetime adddays q date time q date time add secs int nsecs const uint dd d jd int tt t ds int sign 1 if nsecs 0 nsecs nsecs sign 1 if nsecs int secs per day dd sign nsecs secs per day nsecs secs per day tt sign nsecs 1000 if tt 0 tt msecs per day tt 1 dd tt msecs per day tt tt msecs per day tt msecs per day tt 1 else if tt int msecs per day dd tt msecs per day tt tt msecs per day q date time ret ret t ds tt ret d jd dd return ret qdatetime qdatetime addsecs secs_per_day secs_per_day secs_per_day msecs_per_day msecs_per_day msecs_per_day msecs_per_day msecs_per_day msecs_per_day msecs_per_day qdatetime int q date time days to const q date time dt const return d days to dt d qdatetime daysto qdatetime daysto int q date time secs to const q date time dt const return t secs to dt t d days to dt d secs per day qdatetime secsto qdatetime secsto daysto secs_per_day bool q date time operator const q date time dt const return t dt t d dt d qdatetime qdatetime bool q date time operator const q date time dt const return t dt t d dt d qdatetime qdatetime bool q date time operator const q date time dt const if d dt d return true return d dt d t dt t false qdatetime qdatetime bool q date time operator const q date time dt const if d dt d return true return d dt d t dt t false qdatetime qdatetime bool q date time operator const q date time dt const if d dt d return true return d dt d t dt t false qdatetime qdatetime bool q date time operator const q date time dt const if d dt d return true return d dt d t dt t false qdatetime qdatetime q date time q date time current date time q date cd q date current date q time ct if q time current time ct too close to midnight cd q date current date yes time for some midnight voodoo fetch date again return q date time cd ct qdatetime qdatetime currentdatetime qdate qdate currentdate qtime qtime currenttime qdate currentdate qdatetime q date q date int y int m int d jd 0 setymd y m d qdate qdate bool q date is valid const return jd first day qdate isvalid first_day int q date year const int y m d jul2greg jd y m d return y qdate int q date month const int y m d jul2greg jd y m d return m qdate int q date day const int y m d jul2greg jd y m d return d qdate int q date day of week const return jd 1 7 6 7 1 qdate dayofweek int q date day of year const return jd greg2jul year 1 1 1 qdate dayofyear int q date days in month const int y m d jul2greg jd y m d if m 2 leap year y return 29 else return month days m qdate daysinmonth leapyear monthdays int q date days in year const int y m d jul2greg jd y m d return leap year y 366 365 qdate daysinyear leapyear q string q date month name int month const if defined check range if month 1 month 12 q warning q date month name parameter out ouf range month 1 endif remove the from latin1 during localization return q string from latin1 month names month 1 qstring qdate monthname check_range qwarning qdate monthname fromlatin1 qstring fromlatin1 monthnames q string q date day name int weekday const if defined check range if weekday 1 weekday 7 q warning q date day name parameter out of range weekday 1 endif remove the from latin1 during localization return q string from latin1 weekday names weekday 1 qstring qdate dayname check_range qwarning qdate dayname fromlatin1 qstring fromlatin1 weekdaynames q string q date to string const int y m d jul2greg jd y m d q string buf day name day of week buf buf month name m q string t t sprintf d d d y buf t return buf qstring qdate tostring qstring dayname dayofweek monthname qstring bool q date setymd int y int m int d if is valid y m d if defined check range q warning q date setymd invalid date 04d 02d 02d y m d endif return false jd greg2jul y m d if defined debug assert year y 99 y 1900 y month m day d endif return true qdate isvalid check_range qwarning qdate q date q date add days int ndays const q date d d jd jd ndays return d qdate qdate adddays qdate int q date days to const q date d const return d jd jd qdate daysto qdate q date q date current date if defined os win32 systemtime t get local time t q date d d jd greg2jul t w year t w month t w day return d else time t ltime time ltime tm t localtime ltime q date d d jd greg2jul t tm year 1900 t tm mon 1 t tm mday return d endif qdate qdate currentdate _os_win32_ getlocaltime qdate wyear wmonth wday time_t qdate tm_year tm_mon tm_mday bool q date is valid int y int m int d if y 0 y 99 y 1900 else if y first year y first year m 9 m 9 d 14 return false return d 0 m 0 m 12 d month days m d 29 m 2 leap year y qdate isvalid first_year first_year monthdays leapyear bool q date leap year int y return y 4 0 y 100 0 y 400 0 qdate leapyear uint q date greg2jul int y int m int d uint c ya if y 99 y 1900 if m 2 m 3 else m 9 y c y note sym c 6 0 bug c 100 ya y 100 c return 1721119 d 146097 c 4 1461 ya 4 153 m 2 5 qdate void q date jul2greg uint jd int y int m int d uint x uint j jd 1721119 y j 4 1 146097 j j 4 146097 y 1 x j 4 j x 4 3 1461 y 100 y j x x 4 3 1461 j x x 4 4 m 5 x 3 153 x 5 x 3 153 m d x 5 5 if m 10 m 3 else m 9 y qdate q time q time int h int m int s int ms sethms h m s ms qtime qtime bool q time is valid const return ds msecs per day qtime isvalid msecs_per_day int q time hour const return ds msecs per hour qtime msecs_per_hour int q time minute const return ds msecs per hour msecs per min qtime msecs_per_hour msecs_per_min int q time second const return ds 1000 secs per min qtime secs_per_min int q time msec const return ds 1000 qtime q string q time to string const q string buf buf sprintf 2d 2d 2d hour minute second return buf qstring qtime tostring qstring bool q time sethms int h int m int s int ms if is valid h m s ms if defined check range q warning q time sethms invalid time 02d 02d 02d 03d h m s ms endif ds msecs per day make this invalid return false ds h secs per hour m secs per min s 1000 ms return true qtime isvalid check_range qwarning qtime msecs_per_day secs_per_hour secs_per_min q time q time add secs int nsecs const return addm secs nsecs 1000 qtime qtime addsecs addmsecs int q time secs to const q time t const return int t ds int ds 1000 qtime secsto qtime q time q time addm secs int ms const q time t if ms 0 not well defined for ve but is int negdays msecs per day ms msecs per day t ds int ds ms negdays msecs per day msecs per day else t ds int ds ms msecs per day return t qtime qtime addmsecs qtime msecs_per_day msecs_per_day msecs_per_day msecs_per_day msecs_per_day int q time msecs to const q time t const return int t ds int ds qtime msecsto qtime q time q time current time q time ct current time ct return ct qtime qtime currenttime qtime currenttime bool q time is valid int h int m int s int ms return uint h 24 uint m 60 uint s 60 uint ms 1000 qtime isvalid void q time start this current time qtime currenttime int q time restart q time t current time int n msecs to t if n 0 passed midnight n 86400 1000 this t return n qtime qtime currenttime msecsto int q time elapsed int n msecs to current time if n 0 passed midnight n 86400 1000 return n qtime msecsto currenttime bool q time current time q time ct if ct if defined check null q warning q time current time q time null pointer not allowed endif return false if defined os win32 systemtime t get local time t ct ds msecs per hour t w hour msecs per min t w minute 1000 t w second t w milliseconds return t w hour 0 t w minute 0 elif defined os os2 datetime t dos get date time t ct ds msecs per hour t hours msecs per min t minutes 1000 t seconds 10 t hundredths return t hours 0 t minutes 0 elif defined os msdos dostime t t dos gettime t ct ds msecs per hour t hour msecs per min t minute t second 1000 t hsecond 10 return t hour 0 t minute 0 elif defined os unix struct timeval tv gettimeofday tv 0 time t ltime tv tv sec tm t localtime ltime ct ds uint msecs per hour t tm hour msecs per min t tm min 1000 t tm sec tv tv usec 1000 return t tm hour 0 t tm min 0 else time t ltime no millisecond resolution time ltime tm t localtime ltime ct ds msecs per hour t tm hour msecs per min t tm min 1000 t tm sec return t tm hour 0 t tm min 0 endif qtime currenttime qtime check_null qwarning qtime currenttime qtime _os_win32_ getlocaltime msecs_per_hour whour msecs_per_min wminute wsecond wmilliseconds whour wminute _os_os2_ dosgetdatetime msecs_per_hour msecs_per_min _os_msdos_ _dostime_t _dos_gettime msecs_per_hour msecs_per_min _os_unix_ time_t tv_sec msecs_per_hour tm_hour msecs_per_min tm_min tm_sec tv_usec tm_hour tm_min time_t msecs_per_hour tm_hour msecs_per_min tm_min tm_sec tm_hour tm_min section type map m map 37 m map set auto delete true m map insert user defined new int i section user defined m map insert public type new int i section pub types m map insert public func new int i section pub funcs m map insert public attrib new int i section pub attribs m map insert public slot new int i section pub slots m map insert signal new int i section signals m map insert dcop func new int i section dcop funcs m map insert property new int i section properties m map insert public static func new int i section pub stat funcs m map insert public static attrib new int i section pub stat attribs m map insert protected type new int i section pro types m map insert protected func new int i section pro funcs m map insert protected attrib new int i section pro attribs m map insert protected slot new int i section pro slots m map insert protected static func new int i section pro stat funcs m map insert protected static attrib new int i section pro stat attribs m map insert package type new int i section pac types m map insert package func new int i section pac funcs m map insert package attrib new int i section pac attribs m map insert package static func new int i section pac stat funcs m map insert package static attrib new int i section pac stat attribs m map insert private type new int i section pri types m map insert private func new int i section pri funcs m map insert private attrib new int i section pri attribs m map insert private slot new int i section pri slots m map insert private static func new int i section pri stat funcs m map insert private static attrib new int i section pri stat attribs m map insert friend new int i section friend m map insert related new int i section related m map insert define new int i section defines m map insert prototype new int i section prototypes m map insert typedef new int i section typedefs m map insert enum new int i section enums m map insert func new int i section functions m map insert var new int i section variables sectiontypemap m_map m_map setautodelete m_map isection userdefined m_map isection pubtypes m_map isection pubfuncs m_map isection pubattribs m_map isection pubslots m_map isection m_map isection dcopfuncs m_map isection m_map isection pubstatfuncs m_map isection pubstatattribs m_map isection protypes m_map isection profuncs m_map isection proattribs m_map isection proslots m_map isection prostatfuncs m_map isection prostatattribs m_map isection pactypes m_map isection pacfuncs m_map isection pacattribs m_map isection pacstatfuncs m_map isection pacstatattribs m_map isection pritypes m_map isection prifuncs m_map isection priattribs m_map isection prislots m_map isection pristatfuncs m_map isection pristatattribs m_map isection m_map isection m_map isection m_map isection m_map isection m_map isection m_map isection m_map isection i section section kind map const q string s int val m map find s if val 0 debug 1 warning s is an invalid section type n s data return i section invalid else return i section section kind val isection sectionkind qstring m_map isection isection sectionkind member type map m map set auto delete true m map insert define new int i member define m map insert property new int i member property m map insert variable new int i member variable m map insert typedef new int i member typedef m map insert enum new int i member enum m map insert function new int i member function m map insert signal new int i member signal m map insert prototype new int i member prototype m map insert friend new int i member friend m map insert dcop new int i member dcop m map insert slot new int i member slot m map insert enumvalue new int i member enum value membertypemap m_map setautodelete m_map imember m_map imember m_map imember m_map imember m_map imember m_map imember m_map imember m_map imember m_map imember m_map imember m_map imember m_map imember enumvalue i member member kind map const q string s int val m map find s if val 0 debug 1 warning s is an invalid member type n s data return i member invalid else return i member member kind val imember memberkind qstring m_map imember imember memberkind bool warning const q xml parse exception return false qxmlparseexception bool error const q xml parse exception return false qxmlparseexception bool fatal error const q xml parse exception exception debug 1 fatal error at line d column d s n exception line number exception column number exception message data return false fatalerror qxmlparseexception linenumber columnnumber virtual void to first q list iterator compound entry to first tofirst qlistiterator compoundentry tofirst virtual void to last q list iterator compound entry to last tolast qlistiterator compoundentry tolast virtual void to next q list iterator compound entry operator tonext qlistiterator compoundentry virtual void to prev q list iterator compound entry operator toprev qlistiterator compoundentry virtual i compound current const compound entry ch q list iterator compound entry current return ch m mainhandler compound by id ch id 0 icompound compoundentry qlistiterator compoundentry m_mainhandler compoundbyid edge relation mapper m map insert public inheritance i child node public inheritance m map insert protected inheritance i child node protected inheritance m map insert private inheritance i child node private inheritance m map insert usage i child node usage m map insert template instance i child node template instance edgerelationmapper m_map ichildnode publicinheritance m_map ichildnode protectedinheritance m_map ichildnode privateinheritance m_map ichildnode m_map ichildnode templateinstance i child node node relation string to node relation const q string nr str return m map nr str ichildnode noderelation stringtonoderelation qstring nrstr m_map nrstr type name mapper m map insert see simple sect handler see m map insert return simple sect handler return m map insert author simple sect handler author m map insert version simple sect handler version m map insert since simple sect handler since m map insert date simple sect handler date m map insert bug simple sect handler bug m map insert note simple sect handler note m map insert warning simple sect handler warning m map insert par simple sect handler par m map insert deprecated simple sect handler deprecated m map insert pre simple sect handler pre m map insert post simple sect handler post m map insert invariant simple sect handler invar m map insert remark simple sect handler remark m map insert attention simple sect handler attention m map insert todo simple sect handler todo m map insert test simple sect handler test m map insert rcs simple sect handler rcs m map insert enumvalues simple sect handler enum values m map insert examples simple sect handler examples typenamemapper m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler m_map simplesecthandler enumvalues m_map simplesecthandler simple sect handler types string to type const q string type str return m map type str simplesecthandler stringtotype qstring typestr m_map typestr highlight mapper m map insert comment highlight handler comment m map insert keyword highlight handler keyword m map insert keywordtype highlight handler keyword type m map insert keywordflow highlight handler keyword flow m map insert charliteral highlight handler char literal m map insert stringliteral highlight handler string literal m map insert preprocessor highlight handler preprocessor highlightmapper m_map highlighthandler m_map highlighthandler m_map highlighthandler keywordtype m_map highlighthandler keywordflow m_map highlighthandler charliteral m_map highlighthandler stringliteral m_map highlighthandler