#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdarg.h>
#include <stdlib.h>
#include <assert.h>
#include "windef.h"
#include "winbase.h"
#include "wine/debug.h"
#include "editor.h"
#include "rtf.h"
Go to the source code of this file.
|
| WINE_DEFAULT_DEBUG_CHANNEL (richedit) |
|
static int | _RTFGetChar (RTF_Info *) |
|
static void | _RTFGetToken (RTF_Info *) |
|
static void | _RTFGetToken2 (RTF_Info *) |
|
static int | GetChar (RTF_Info *) |
|
static void | ReadFontTbl (RTF_Info *) |
|
static void | ReadColorTbl (RTF_Info *) |
|
static void | ReadStyleSheet (RTF_Info *) |
|
static void | ReadInfoGroup (RTF_Info *) |
|
static void | ReadPictGroup (RTF_Info *) |
|
static void | ReadObjGroup (RTF_Info *) |
|
static void | Lookup (RTF_Info *, char *) |
|
static int | Hash (const char *) |
|
static void | CharAttr (RTF_Info *info) |
|
static void | CharSet (RTF_Info *info) |
|
static void | DocAttr (RTF_Info *info) |
|
static void | RTFFlushCPOutputBuffer (RTF_Info *info) |
|
static void | RTFPutCodePageChar (RTF_Info *info, int c) |
|
static char * | RTFStrSave (const char *s) |
|
void | RTFSetEditStream (RTF_Info *info, ME_InStream *stream) |
|
static void | RTFDestroyAttrs (RTF_Info *info) |
|
void | RTFDestroy (RTF_Info *info) |
|
static void | RTFSetClassCallback (RTF_Info *info, int class, RTFFuncPtr callback) |
|
static RTFFuncPtr | RTFGetClassCallback (const RTF_Info *info, int class) |
|
void | RTFInit (RTF_Info *info) |
|
void | RTFSetDestinationCallback (RTF_Info *info, int dest, RTFFuncPtr callback) |
|
static RTFFuncPtr | RTFGetDestinationCallback (const RTF_Info *info, int dest) |
|
void | RTFRead (RTF_Info *info) |
|
void | RTFRouteToken (RTF_Info *info) |
|
void | RTFSkipGroup (RTF_Info *info) |
|
void | RTFReadGroup (RTF_Info *info) |
|
void | RTFSetReadHook (RTF_Info *info, RTFFuncPtr f) |
|
static RTFFuncPtr | RTFGetReadHook (const RTF_Info *info) |
|
int | RTFGetToken (RTF_Info *info) |
|
static void | RTFUngetToken (RTF_Info *info) |
|
int | RTFCharSetToCodePage (RTF_Info *info, int charset) |
|
RTFFont * | RTFGetFont (const RTF_Info *info, int num) |
|
RTFColor * | RTFGetColor (const RTF_Info *info, int num) |
|
void | LookupInit (void) |
|
void | LookupCleanup (void) |
|
int | RTFCheckCM (const RTF_Info *info, int class, int major) |
|
int | RTFCheckCMM (const RTF_Info *info, int class, int major, int minor) |
|
int | RTFCheckMM (const RTF_Info *info, int major, int minor) |
|
int | RTFCharToHex (char c) |
|
static void | TextClass (RTF_Info *info) |
|
static void | ControlClass (RTF_Info *info) |
|
static void | DefFont (RTF_Info *info) |
|
static void | Destination (RTF_Info *info) |
|
static void | SpecialChar (RTF_Info *info) |
|
static void | RTFPutUnicodeChar (RTF_Info *info, int c) |
|
void | WriterInit (RTF_Info *info) |
|
int | BeginFile (RTF_Info *info) |
|
static void | RTFFlushUnicodeOutputBuffer (RTF_Info *info) |
|
static void | RTFPutUnicodeString (RTF_Info *info, const WCHAR *string, int length) |
|
void | RTFFlushOutputBuffer (RTF_Info *info) |
|
◆ RTFHashTableEntry
◆ RTFKey
◆ _RTFGetChar()
Definition at line 95 of file reader.c.
96{
97 int ch;
99
101 {
103
104 if (
stream->editstream->dwError)
106
109 }
112 return ' ';
113 return ch;
114}
void ME_StreamInFill(ME_InStream *stream)
Referenced by GetChar().
◆ _RTFGetToken()
Definition at line 454 of file reader.c.
455{
457 {
461 info->rtfTextBuf[
info->rtfTextLen = 0] =
'\0';
464 else
466 return;
467 }
468
469
470
471 if (
info->pushedClass >= 0)
472 {
479 info->pushedClass = -1;
480 return;
481 }
482
483
484
485
486
487
489}
static void _RTFGetToken2(RTF_Info *)
static int GetChar(RTF_Info *)
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
Referenced by RTFGetToken().
◆ _RTFGetToken2()
Definition at line 554 of file reader.c.
555{
558
559
560
563 info->rtfTextBuf[
info->rtfTextLen = 0] =
'\0';
564
565
566
568 {
569 c =
info->pushedChar;
570 info->rtfTextBuf[
info->rtfTextLen++] =
c;
571 info->rtfTextBuf[
info->rtfTextLen] =
'\0';
573 }
575 {
577 return;
578 }
579
581 {
584 return;
585 }
587 {
590 return;
591 }
593 {
594
595
596
597
598
600 {
604 }
605 else
606 {
609 }
610 return;
611 }
613 {
614
615 return;
616 }
618 {
619
620
621
622
623
624
626 {
627 int c2;
628
631 {
634 return;
635 }
636
638 info->stream->editstream->dwError = -14;
639 return;
640 }
641
642
643
644 if (
c ==
':' ||
c ==
'{' ||
c ==
'}' ||
c ==
'\\')
645 {
648 return;
649 }
650
651
653 return;
654 }
655
657 {
659 break;
660 }
661
662
663
664
665
666
667
668
669
671 info->rtfTextBuf[
info->rtfTextLen-1] =
'\0';
674 info->rtfTextBuf[
info->rtfTextLen-1] =
c;
675
676
677
678
679
680
681
684 {
687 }
689 {
692 {
693 info->rtfParam =
info->rtfParam * 10 +
c -
'0';
695 break;
696 }
698 }
699
700
701
702
703
704
706 {
708 info->pushedChar =
c;
709 info->rtfTextBuf[--
info->rtfTextLen] =
'\0';
710 }
711}
static void Lookup(RTF_Info *, char *)
Referenced by _RTFGetToken().
◆ BeginFile()
Definition at line 2335 of file reader.c.
2336{
2337
2338
2341
2342 return (1);
2343}
static const WCHAR ControlClass[]
static void RTFSetClassCallback(RTF_Info *info, int class, RTFFuncPtr callback)
static void TextClass(RTF_Info *info)
Referenced by ME_StreamIn().
◆ CharAttr()
Definition at line 2392 of file reader.c.
2393{
2395
2396 switch (
info->rtfMinor)
2397 {
2401 {
2403 {
2405 info->codePage =
font->rtfFCodePage;
2406 }
2407 TRACE(
"font %d codepage %d\n",
info->rtfParam,
info->codePage);
2408 }
2409 else
2410 ERR(
"unknown font %d\n",
info->rtfParam);
2411 break;
2413 info->unicodeLength =
info->rtfParam;
2414 break;
2415 }
2416}
RTFFont * RTFGetFont(const RTF_Info *info, int num)
void RTFFlushOutputBuffer(RTF_Info *info)
Referenced by ControlClass().
◆ CharSet()
◆ ControlClass()
Definition at line 2357 of file reader.c.
2358{
2359 switch (
info->rtfMajor)
2360 {
2364 break;
2367 break;
2370 break;
2373 break;
2376 break;
2379 break;
2382 break;
2386 break;
2387 }
2388}
void ME_RTFTblAttrHook(RTF_Info *info)
void ME_RTFCharAttrHook(RTF_Info *info)
void ME_RTFSpecialCharHook(RTF_Info *info)
void ME_RTFParAttrHook(RTF_Info *info)
static void CharAttr(RTF_Info *info)
static void SpecialChar(RTF_Info *info)
static void CharSet(RTF_Info *info)
static void DocAttr(RTF_Info *info)
static void DefFont(RTF_Info *info)
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
◆ DefFont()
◆ Destination()
Definition at line 2449 of file reader.c.
2450{
2453}
static RTFFuncPtr RTFGetDestinationCallback(const RTF_Info *info, int dest)
void RTFSkipGroup(RTF_Info *info)
◆ DocAttr()
Definition at line 2465 of file reader.c.
2466{
2467 TRACE(
"minor %d, param %d\n",
info->rtfMinor,
info->rtfParam);
2468
2469 switch (
info->rtfMinor)
2470 {
2473 break;
2476 break;
2477 }
2478}
Referenced by ControlClass().
◆ GetChar()
Definition at line 725 of file reader.c.
726{
729
731 {
732 info->rtfTextBuf[
info->rtfTextLen++] =
c;
733 info->rtfTextBuf[
info->rtfTextLen] =
'\0';
734 }
737 oldBumpLine =
info->bumpLine;
742 {
744 if (
info->prevChar ==
'\r')
746 }
748 if (oldBumpLine)
749 {
751 info->rtfLinePos = 1;
752 }
755}
static int _RTFGetChar(RTF_Info *)
Referenced by _RTFGetToken(), and _RTFGetToken2().
◆ Hash()
Definition at line 2257 of file reader.c.
2258{
2261
2262 while ((
c = *
s++) !=
'\0')
2265}
Referenced by _IRQL_requires_(), BasepCheckWebBladeHashes(), BlImgLoadBootApplication(), BlImgLoadPEImageEx(), CmpComputeHashKey(), DcSetupFrameImperfectFiltering(), ExpAddTagForBigPages(), ExpFindAndRemoveTagBigPages(), ExpInsertPoolTracker(), ExpRemovePoolTracker(), ExpSeedHotTags(), FxVerifierLock::GetThreadTableEntry(), ImgpLoadPEImage(), KeRosCaptureUserStackBackTrace(), Lookup(), LookupInit(), MiInsertInSystemSpace(), MiRemoveFromSystemSpace(), MmCommitSessionMappedView(), NdrFullPointerFree(), NdrFullPointerInsertRefId(), NdrFullPointerQueryPointer(), NtQueryDirectoryObject(), ObLogSecurityDescriptor(), ObpHash(), FxVerifierLock::ReleaseOrReplaceThreadTableEntry(), RtlCaptureStackBackTrace(), RtlpGetCheckSum(), RtlpHashAtomName(), RtlRunDecodeUnicodeString(), RtlRunEncodeUnicodeString(), RxFcbTableLookupFcb(), RxTableComputeHashValue(), RxTableComputePathHashValue(), RxTableLookupName(), TestStackWalk4(), and vfatGrabFCBFromTable().
◆ Lookup()
Definition at line 2228 of file reader.c.
2229{
2234
2239 {
2242 {
2246 return;
2247 }
2248 }
2250}
int strcmp(const char *String1, const char *String2)
static RTFHashTableEntry rtfHashTable[ARRAY_SIZE(rtfKey) *2]
static int Hash(const char *)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Referenced by _RTFGetToken2(), ApphelpCacheLookupEntry(), ApphelpCacheUpdateEntry(), BasepShimCacheRemoveEntry(), BasepShimCacheSearch(), GetProtoPatternMatch(), and RtlLookupElementGenericTableAvl().
◆ LookupCleanup()
Definition at line 2210 of file reader.c.
2211{
2213
2215 {
2219 }
2220}
static BOOL heap_free(void *mem)
Referenced by DllMain().
◆ LookupInit()
Definition at line 2191 of file reader.c.
2192{
2194
2197 {
2199
2204 else
2207 }
2208}
static void * heap_alloc(size_t len)
static void * heap_realloc(void *mem, size_t len)
GLuint GLuint GLsizei count
Referenced by DllMain().
◆ ReadColorTbl()
Definition at line 965 of file reader.c.
966{
968 int cnum = 0;
969 int group_level = 1;
970
971 for (;;)
972 {
975 break;
977 {
978 group_level--;
979 if (!group_level)
980 break;
981 continue;
982 }
984 {
985 group_level++;
986 continue;
987 }
988
991 ERR (
"cannot allocate color entry\n");
992 break;
993 }
994 cp->rtfCNum = cnum++;
995 cp->rtfNextColor =
info->colorList;
998 cp->rtfCRed =
cp->rtfCGreen =
cp->rtfCBlue = -1;
999 else {
1000 cp->rtfCRed =
cp->rtfCGreen =
cp->rtfCBlue = 0;
1001 do {
1002 switch (
info->rtfMinor)
1003 {
1004 case rtfRed:
cp->rtfCRed =
info->rtfParam & 0xFF;
break;
1007 }
1010 }
1012 break;
1014 ERR (
"malformed entry\n");
1015 }
1017}
int RTFCheckCM(const RTF_Info *info, int class, int major)
int RTFGetToken(RTF_Info *info)
void RTFRouteToken(RTF_Info *info)
Referenced by RTFInit().
◆ ReadFontTbl()
Definition at line 786 of file reader.c.
787{
790 int old = -1;
791
792 for (;;)
793 {
796 break;
798 break;
799 if (old < 0)
800 {
802 old = 1;
804 old = 0;
805 else
806 ERR (
"cannot determine format\n");
807 }
808 if (old == 0)
809 {
811 ERR (
"missing \"{\"\n");
814 break;
815 }
818 ERR (
"cannot allocate font entry\n");
819 break;
820 }
821
824
833
837 {
839 {
840 switch (
info->rtfMajor)
841 {
842 default:
843
844 WARN (
"unknown token \"%s\"\n",
846 break;
849 break;
851 switch (
info->rtfMinor)
852 {
853 default:
854 break;
857 break;
858 }
859 break;
861 switch (
info->rtfMinor)
862 {
863 default:
864 break;
869 break;
872 break;
875 break;
879 break;
880 }
881 break;
882 }
883 }
885 {
887 }
889 {
893 {
894 *bp++ =
info->rtfMajor;
896 }
897
898
900 {
902 }
903 *bp = '\0';
906 ERR (
"cannot allocate font name\n");
907
908
909 continue;
910 }
911 else
912 {
913
914 WARN (
"unknown token \"%s\"\n",
info->rtfTextBuf);
915 }
918 break;
919 }
921 break;
922 if (old == 0)
923 {
926 ERR (
"missing \"}\"\n");
928 break;
929 }
930
931
933 {
936 TRACE(
"default font codepage %d\n",
info->codePage);
937 }
938 }
939 if (!fp || (fp->
rtfFNum == -1))
940 ERR(
"missing font number\n");
941
942
943
945
946
953}
int RTFCharSetToCodePage(RTF_Info *info, int charset)
static void RTFUngetToken(RTF_Info *info)
static char * RTFStrSave(const char *s)
int RTFCheckCMM(const RTF_Info *info, int class, int major, int minor)
GLenum GLuint GLenum GLsizei const GLchar * buf
Referenced by RTFInit().
◆ ReadInfoGroup()
◆ ReadObjGroup()
◆ ReadPictGroup()
◆ ReadStyleSheet()
Definition at line 1025 of file reader.c.
1026{
1030 int real_style;
1031
1032 for (;;)
1033 {
1036 break;
1038 break;
1041 ERR (
"cannot allocate stylesheet entry\n");
1042 break;
1043 }
1047 sp->rtfSAdditive = 0;
1049 sp->rtfSNextPar = -1;
1050 sp->rtfSSEList = sepLast =
NULL;
1051 sp->rtfNextStyle =
info->styleList;
1052 sp->rtfExpanding = 0;
1055 ERR (
"missing \"{\"\n");
1057 for (;;)
1058 {
1062 break;
1064 {
1067 ERR(
"skipping optional destination\n");
1072 break;
1073 }
1075 {
1076 sp->rtfSNum =
info->rtfParam;
1078 continue;
1079 }
1081 {
1082 sp->rtfSNum =
info->rtfParam;
1084 continue;
1085 }
1087 {
1088 sp->rtfSNum =
info->rtfParam;
1090 continue;
1091 }
1093 {
1094 sp->rtfSBasedOn =
info->rtfParam;
1095 continue;
1096 }
1098 {
1099 sp->rtfSAdditive = 1;
1100 continue;
1101 }
1103 {
1104 sp->rtfSNextPar =
info->rtfParam;
1105 continue;
1106 }
1109 {
1110 ERR (
"cannot allocate style element\n");
1111 break;
1112 }
1119 ERR (
"cannot allocate style element text\n");
1120 if (sepLast ==
NULL)
1121 sp->rtfSSEList = sep;
1122 else
1125 sepLast = sep;
1126 }
1128 {
1129
1130
1131
1132
1133 ERR(
"skipping begin\n");
1135 continue;
1136 }
1138 {
1141 {
1142 if (
info->rtfMajor ==
';')
1143 {
1144
1146 break;
1147 }
1148 *bp++ =
info->rtfMajor;
1150 }
1151 *bp = '\0';
1153 if (
sp->rtfSName ==
NULL)
1154 ERR (
"cannot allocate style name\n");
1155 }
1156 else
1157 {
1158
1159 WARN (
"unknown token \"%s\"\n",
info->rtfTextBuf);
1160 }
1161 }
1162 if (real_style) {
1165 ERR (
"missing \"}\"\n");
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176 if (
sp->rtfSName ==
NULL)
1177 ERR (
"missing style name\n");
1178 if (
sp->rtfSNum < 0)
1179 {
1182 ERR (
"missing style number\n");
1184 }
1185 if (
sp->rtfSNextPar == -1)
1186 sp->rtfSNextPar =
sp->rtfSNum;
1187 }
1188
1189 }
1191}
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
int RTFCheckMM(const RTF_Info *info, int major, int minor)
#define rtfNormalStyleNum
Referenced by RTFInit().
◆ RTFCharSetToCodePage()
Definition at line 493 of file reader.c.
494{
496 {
498 return 1252;
506 return 932;
508 return 949;
510 return 1361;
512 return 936;
514 return 950;
516 return 1253;
518 return 1254;
520 return 1258;
522 return 1255;
524 return 1256;
526 return 1257;
528 return 1251;
530 return 874;
532 return 1250;
535 default:
536 {
539
540
541
544 else
546 }
547 }
548 return 0;
549}
#define CHINESEBIG5_CHARSET
#define VIETNAMESE_CHARSET
BOOL WINAPI TranslateCharsetInfo(_Inout_ PDWORD, _Out_ LPCHARSETINFO, _In_ DWORD)
#define EASTEUROPE_CHARSET
Referenced by ME_StreamOutRTFCharProps(), and ReadFontTbl().
◆ RTFCharToHex()
◆ RTFCheckCM()
◆ RTFCheckCMM()
◆ RTFCheckMM()
◆ RTFDestroy()
Definition at line 161 of file reader.c.
162{
163 if (
info->rtfTextBuf)
164 {
167 }
170 while (
info->tableDef)
171 {
175 }
176}
static void RTFDestroyAttrs(RTF_Info *info)
Referenced by ME_StreamIn().
◆ RTFDestroyAttrs()
Definition at line 122 of file reader.c.
123{
128
129 while (
info->fontList)
130 {
131 fp =
info->fontList->rtfNextFont;
135 }
136 while (
info->colorList)
137 {
138 cp =
info->colorList->rtfNextColor;
141 }
142 while (
info->styleList)
143 {
144 sp =
info->styleList->rtfNextStyle;
145 eltList =
info->styleList->rtfSSEList;
146 while (eltList)
147 {
151 eltList = ep;
152 }
156 }
157}
Referenced by RTFDestroy(), and RTFInit().
◆ RTFFlushCPOutputBuffer()
◆ RTFFlushOutputBuffer()
◆ RTFFlushUnicodeOutputBuffer()
◆ RTFGetClassCallback()
◆ RTFGetColor()
◆ RTFGetDestinationCallback()
◆ RTFGetFont()
◆ RTFGetReadHook()
◆ RTFGetToken()
Definition at line 406 of file reader.c.
407{
409
410
413 }
414
415 for (;;)
416 {
421
422
424 && (
info->rtfMajor ==
'\r' ||
info->rtfMajor ==
'\n' ||
info->rtfMajor ==
'\0')))
425 break;
426 }
427 return (
info->rtfClass);
428}
static void _RTFGetToken(RTF_Info *)
static RTFFuncPtr RTFGetReadHook(const RTF_Info *info)
void(* RTFFuncPtr)(RTF_Info *)
Referenced by ME_RTFReadObjectGroup(), ME_RTFReadParnumGroup(), ME_RTFReadPictGroup(), ME_RTFReadShpPictGroup(), read_hex_data(), ReadColorTbl(), ReadFontTbl(), ReadStyleSheet(), RTFRead(), RTFSkipGroup(), and SpecialChar().
◆ RTFInit()
Definition at line 212 of file reader.c.
213{
215
217 {
221 ERR (
"Cannot allocate text buffers.\n");
222 return;
223 }
224 info->rtfTextBuf[0] =
info->pushedTextBuf[0] =
'\0';
225 }
226
231
232
239
240
242
243
244
246
247 info->ansiCodePage = 1252;
248 info->unicodeLength = 1;
249 info->codePage =
info->ansiCodePage;
251
253 info->pushedClass = -1;
255
256 info->rtfLineNum = 0;
257 info->rtfLinePos = 0;
260
261 info->dwCPOutputCount = 0;
262 if (!
info->cpOutputBuffer)
263 {
264 info->dwMaxCPOutputCount = 0x1000;
266 }
267
269 info->nestingLevel = 0;
271 info->borderType = 0;
272
274 info->fmt.cbSize =
sizeof(
info->fmt);
275}
static void ReadInfoGroup(RTF_Info *)
static void ReadFontTbl(RTF_Info *)
static void ReadColorTbl(RTF_Info *)
static void ReadPictGroup(RTF_Info *)
static void ReadStyleSheet(RTF_Info *)
void RTFSetReadHook(RTF_Info *info, RTFFuncPtr f)
static void ReadObjGroup(RTF_Info *)
void RTFSetDestinationCallback(RTF_Info *info, int dest, RTFFuncPtr callback)
Referenced by ME_StreamIn().
◆ RTFPutCodePageChar()
Definition at line 2644 of file reader.c.
2645{
2646
2647
2648 if (
info->dwCPOutputCount >=
info->dwMaxCPOutputCount)
2649 {
2650 info->dwMaxCPOutputCount *= 2;
2652 }
2653 info->cpOutputBuffer[
info->dwCPOutputCount++] =
c;
2654}
Referenced by TextClass().
◆ RTFPutUnicodeChar()
◆ RTFPutUnicodeString()
Definition at line 2593 of file reader.c.
2594{
2595 if (
info->dwCPOutputCount)
2598 {
2600
2602 info->dwOutputCount += fit;
2604 string += fit;
2607 }
2608}
#define memmove(s1, s2, n)
Referenced by RTFFlushCPOutputBuffer().
◆ RTFRead()
◆ RTFReadGroup()
◆ RTFRouteToken()
Definition at line 321 of file reader.c.
322{
324
326 {
327 ERR(
"Unknown class %d: %s (reader malfunction)\n",
329 }
331 {
332
335 {
337 return;
338 }
339 }
340
344}
static RTFFuncPtr RTFGetClassCallback(const RTF_Info *info, int class)
Referenced by ME_RTFReadObjectGroup(), ME_RTFReadParnumGroup(), ME_RTFReadPictGroup(), ME_RTFReadShpPictGroup(), ReadColorTbl(), ReadFontTbl(), ReadInfoGroup(), ReadObjGroup(), ReadPictGroup(), ReadStyleSheet(), RTFRead(), and SpecialChar().
◆ RTFSetClassCallback()
◆ RTFSetDestinationCallback()
◆ RTFSetEditStream()
◆ RTFSetReadHook()
◆ RTFSkipGroup()
◆ RTFStrSave()
◆ RTFUngetToken()
◆ SpecialChar()
Definition at line 2481 of file reader.c.
2482{
2483 switch (
info->rtfMinor)
2484 {
2486
2487
2491 else
2493 break;
2495 {
2497
2499
2500
2501 for (
i = 0;
i <
info->unicodeLength;
i++)
2502 {
2505 {
2506 ERR(
"The token behind \\u is not text, but (%d,%d,%d)\n",
2509 break;
2510 }
2511 }
2512 break;
2513 }
2517 break;
2524 info->fmt.cbSize =
sizeof(
info->fmt);
2527 break;
2530 break;
2533 break;
2536 break;
2539 break;
2542 break;
2545 break;
2548 break;
2551 break;
2554 break;
2557 break;
2560 break;
2563 break;
2566 break;
2569 break;
2572 break;
2575 break;
2576 }
2577}
void ME_InsertEndRowFromCursor(ME_TextEditor *editor, int nCursor)
static void RTFPutUnicodeChar(RTF_Info *info, int c)
BOOL ME_SetSelectionParaFormat(ME_TextEditor *editor, const PARAFORMAT2 *pFmt) DECLSPEC_HIDDEN
#define rtfNoWidthNonJoiner
Referenced by ControlClass().
◆ TextClass()
Definition at line 2350 of file reader.c.
2351{
2353}
static void RTFPutCodePageChar(RTF_Info *info, int c)
Referenced by BeginFile().
◆ WINE_DEFAULT_DEBUG_CHANNEL()
WINE_DEFAULT_DEBUG_CHANNEL |
( |
richedit |
| ) |
|
◆ WriterInit()
◆ rtfHashTable
◆ rtfKey