Re: Ann : CCard Parser (vCard/vCal)
"J. David Boyd" <[email protected]> Wed, 5 Feb 2003 08:07:32 -0500
| Newsgroups | gmane.ietf.vcard |
|---|---|
| Message-ID | <001a01c2cd17$8bbee2c0$6600a8c0@quantex2> |
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 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