📄 hacking
字号:
License:========iksemel is developed and released under GNU Lesser General Public License.A copy of the license can be found in the file COPYING. You should read itbefore sending patches to the iksemel, since it is implicitly assumed thatyour patches are also submitted under the LGPL license.Roadmap:========Main goal of the iksemel is removing complexity from programs using thelibrary and the library itself. This is the reason why only a subset of XMLis supported. Some things like UTF16, entity definitons, DTDs will be eventuallyimplemented when we found ways to implement them without addingtoo much complexity to the iksemel code. Somewhat external standarts(XPath, XQuery, XSLT, vs) will probably not make it into the iksemel.* validationI think easiest way to add this feature is writing another parser based on thesax parser which parses a dtd (either from sax parser's markup callback whichneeds to be implemented or from an external source via iks_vsax_set_dtd() call)and checks the arguments of sax callbacks. Using it via dom or stream parserscan require some clever tricks. there are also xml schemas. they are easy to parse(it is xml anyway) but can be hard to apply.* utf16There are two sides of this. Improving parser to accept utf16 can be relativelyeasy. But on the client side things can get confusing. What will be the defaultcharacter set used by iks_new(), iks_insert_cdata() and similar functions? andhow they will allow other charsets to be used. Supporting more than utf8 andutf16 is more difficult. Hopefully there is no immediate need for this. Jabberuses only utf8 and you can use iconv if you are using another charset in yourapplication. Btw, there is also byte order issue which is silly. Inventor of BOMcrap must be killed.* jabber rosterRoster handling generally depends on the UI system used. But I think a genericroster handler which parses roster result, pushes, presence changes andallows application to access and display this data can be useful. Challengehere is making it UI independent and extensible by the application.File Layout:============doc/* iksemel.texi Documentation in texinfo format.include/* common.h Internal header for some common definitions.* iksemel.h Library API* finetune.h Default memory allocation sizes.src/* ikstack.c Memory management functions.* utility.c Small string utility functions.* iks.c XML tree management.* sax.c SAX parser.* dom.c DOM parser.* stream.c Stream parser.* sha.c SHA1 hash functions.* jabber.c Jabber utilities.* filter.c Packet filter for Jabber.test/(self test programs)tools/(varius utility programs)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -