|
|
1.1 root 1:
2: // rtf2ascii.h
3:
4: #import <string.h>
5: #import <streams/streams.h>
6:
7: #define RTF_HEADER "{\\rtf0\\ansi"
8: #define RTF_HEADER_LEN 11
9:
10:
11: // A predicate to quickly check a region of possibly-rich memory (starting
12: // at rtfText and going for length len) to see if it is convertible by the
13: // following routines.
14:
15: static inline int isRTFText(const char * rtfText, int len)
16: {
17: return (rtfText
18: && (len > RTF_HEADER_LEN)
19: && !strncmp(rtfText, RTF_HEADER, RTF_HEADER_LEN));
20: }
21:
22:
23: // A memory-buffer-based conversion that reads one buffer pointed to by
24: // rtfTextPtr and converts, for length rtfTextLen, RTF to ASCII. A pointer
25: // to a newly allocated buffer of memory is returned (caller owns this
26: // memory). Additionally, asciiTextLen is set to the length of the
27: // null-terminated ascii character buffer.
28:
29: extern const char * rtfToAscii( const char *rtfTextPtr,
30: int rtfTextLen,
31: int * asciiTextLen );
32:
33:
34: // A streams-based converter which takes an NXStream and either returns back
35: // a new memory stream that has been converted to straight ASCII (the caller
36: // should free this with NXCloseMemory()).
37:
38: extern NXStream * rtfToAsciiStream(NXStream * possiblyRichStream);
39:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.