Re: Ann : CCard Parser (vCard/vCal)
"Simson L. Garfinkel" <[email protected]> Wed, 5 Feb 2003 09:11:04 -0500
| Newsgroups | gmane.ietf.vcard |
|---|---|
| Message-ID | <[email protected]> |
On Wednesday, February 5, 2003, at 08:07 AM, J. David Boyd wrote: > > I thought the '//' use of comments is C++, not C. > > Some C compilers might accept them okay, but they aren't ANSI C, are > they? I believe that they are now. > > I only mention this because I have used these (by mistake) on code > that we > have compiled on SCO, HP-UX, AIX, and Solaris, and the only compiler > that > accepted them in a C file was the SCO compiler (written by Microsoft). > > Dave > > ----- Original Message ----- > From: <[email protected]> > To: "vCard" <[email protected]> > Sent: Tuesday, February 04, 2003 7:18 PM > Subject: Re: Ann : CCard Parser (vCard/vCal) > > >> >>> Are you sure it's in C? Looks an awful lot like C++. >> >> >> >> The parser is C, the test program I posted which uses it is C++. If > compiled >> into a dynamic library then most other languages should be able to >> use it >> as well. Also I designed it for portability, its ANSI C. >> >> >> >>> From the header file (cardparser.h) >> >> >> >> /* >> >> Licensing : All code is under the Mozilla Public License 1.1 (MPL >> 1.1) as >> specified in >> >> license.txt >> >> */ >> >> >> >> #ifndef CARD_PARSER_H >> >> #define CARD_PARSER_H >> >> >> >> #ifdef __cplusplus >> >> extern "C" >> >> { >> >> #endif >> >> >> >> typedef char CARD_Char; >> >> typedef void *CARD_Parser; >> >> >> >> // setup & parsing >> >> CARD_Parser CARD_ParserCreate(CARD_Char *encoding); >> >> void CARD_ParserFree(CARD_Parser p); >> >> int CARD_Parse(CARD_Parser p, const char *s, int len, int isFinal); >> >> >> >> // user data >> >> void CARD_SetUserData(CARD_Parser p, void *userData); >> >> void *CARD_GetUserData(CARD_Parser p); >> >> >> >> // handlers >> >> typedef void (*CARD_PropHandler)(void *userData, const CARD_Char > *propname, >> const CARD_Char **params); >> >> typedef void (*CARD_DataHandler)(void *userData, const CARD_Char >> *data, > int >> len); >> >> >> >> // Set Handlers >> >> void CARD_SetPropHandler(CARD_Parser p, CARD_PropHandler cardProp); >> >> void CARD_SetDataHandler(CARD_Parser p, CARD_DataHandler cardData); >> >> >> >> #ifdef __cplusplus >> >> } >> >> #endif >> >> >> >> >> >> #endif