#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) |
|
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 78 of file reader.c.
79{
80 int ch;
82
84 {
86
87 if (
stream->editstream->dwError)
89
92 }
95 return ' ';
96 return ch;
97}
void ME_StreamInFill(ME_InStream *stream)
Referenced by GetChar().
◆ _RTFGetToken()
Definition at line 437 of file reader.c.
438{
440 {
444 info->rtfTextBuf[
info->rtfTextLen = 0] =
'\0';
447 else
449 return;
450 }
451
452
453
454 if (
info->pushedClass >= 0)
455 {
462 info->pushedClass = -1;
463 return;
464 }
465
466
467
468
469
470
472}
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 537 of file reader.c.
538{
541
542
543
546 info->rtfTextBuf[
info->rtfTextLen = 0] =
'\0';
547
548
549
551 {
552 c =
info->pushedChar;
553 info->rtfTextBuf[
info->rtfTextLen++] =
c;
554 info->rtfTextBuf[
info->rtfTextLen] =
'\0';
556 }
558 {
560 return;
561 }
562
564 {
567 return;
568 }
570 {
573 return;
574 }
576 {
577
578
579
580
581
583 {
587 }
588 else
589 {
592 }
593 return;
594 }
596 {
597
598 return;
599 }
601 {
602
603
604
605
606
607
609 {
610 int c2;
611
614 {
617 return;
618 }
619
621 info->stream->editstream->dwError = -14;
622 return;
623 }
624
625
626
627 if (
c ==
':' ||
c ==
'{' ||
c ==
'}' ||
c ==
'\\')
628 {
631 return;
632 }
633
634
636 return;
637 }
638
640 {
642 break;
643 }
644
645
646
647
648
649
650
651
652
654 info->rtfTextBuf[
info->rtfTextLen-1] =
'\0';
657 info->rtfTextBuf[
info->rtfTextLen-1] =
c;
658
659
660
661
662
663
664
667 {
670 }
672 {
675 {
676 info->rtfParam =
info->rtfParam * 10 +
c -
'0';
678 break;
679 }
681 }
682
683
684
685
686
687
689 {
691 info->pushedChar =
c;
692 info->rtfTextBuf[--
info->rtfTextLen] =
'\0';
693 }
694}
static void Lookup(RTF_Info *, char *)
Referenced by _RTFGetToken().
◆ BeginFile()
Definition at line 2315 of file reader.c.
2316{
2317
2318
2321
2322 return (1);
2323}
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 2372 of file reader.c.
2373{
2375
2376 switch (
info->rtfMinor)
2377 {
2381 {
2383 {
2385 info->codePage =
font->rtfFCodePage;
2386 }
2387 TRACE(
"font %d codepage %d\n",
info->rtfParam,
info->codePage);
2388 }
2389 else
2390 ERR(
"unknown font %d\n",
info->rtfParam);
2391 break;
2393 info->unicodeLength =
info->rtfParam;
2394 break;
2395 }
2396}
RTFFont * RTFGetFont(const RTF_Info *info, int num)
void RTFFlushOutputBuffer(RTF_Info *info)
Referenced by ControlClass().
◆ CharSet()
◆ ControlClass()
Definition at line 2337 of file reader.c.
2338{
2339 switch (
info->rtfMajor)
2340 {
2344 break;
2347 break;
2350 break;
2353 break;
2356 break;
2359 break;
2362 break;
2366 break;
2367 }
2368}
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 2429 of file reader.c.
2430{
2433}
static RTFFuncPtr RTFGetDestinationCallback(const RTF_Info *info, int dest)
void RTFSkipGroup(RTF_Info *info)
◆ DocAttr()
Definition at line 2445 of file reader.c.
2446{
2447 TRACE(
"minor %d, param %d\n",
info->rtfMinor,
info->rtfParam);
2448
2449 switch (
info->rtfMinor)
2450 {
2453 break;
2456 break;
2457 }
2458}
Referenced by ControlClass().
◆ GetChar()
Definition at line 708 of file reader.c.
709{
712
714 {
715 info->rtfTextBuf[
info->rtfTextLen++] =
c;
716 info->rtfTextBuf[
info->rtfTextLen] =
'\0';
717 }
720 oldBumpLine =
info->bumpLine;
725 {
727 if (
info->prevChar ==
'\r')
729 }
731 if (oldBumpLine)
732 {
734 info->rtfLinePos = 1;
735 }
738}
static int _RTFGetChar(RTF_Info *)
Referenced by _RTFGetToken(), and _RTFGetToken2().
◆ Hash()
Definition at line 2237 of file reader.c.
2238{
2241
2242 while ((
c = *
s++) !=
'\0')
2245}
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 2208 of file reader.c.
2209{
2214
2219 {
2222 {
2226 return;
2227 }
2228 }
2230}
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()
◆ LookupInit()
Definition at line 2174 of file reader.c.
2175{
2177
2180 {
2182
2187 }
2188}
GLuint GLuint GLsizei count
Referenced by DllMain().
◆ ReadColorTbl()
Definition at line 948 of file reader.c.
949{
951 int cnum = 0;
952 int group_level = 1;
953
954 for (;;)
955 {
958 break;
960 {
961 group_level--;
962 if (!group_level)
963 break;
964 continue;
965 }
967 {
968 group_level++;
969 continue;
970 }
971
974 ERR (
"cannot allocate color entry\n");
975 break;
976 }
977 cp->rtfCNum = cnum++;
978 cp->rtfNextColor =
info->colorList;
981 cp->rtfCRed =
cp->rtfCGreen =
cp->rtfCBlue = -1;
982 else {
983 cp->rtfCRed =
cp->rtfCGreen =
cp->rtfCBlue = 0;
984 do {
985 switch (
info->rtfMinor)
986 {
987 case rtfRed:
cp->rtfCRed =
info->rtfParam & 0xFF;
break;
990 }
993 }
995 break;
997 ERR (
"malformed entry\n");
998 }
1000}
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 769 of file reader.c.
770{
773 int old = -1;
774
775 for (;;)
776 {
779 break;
781 break;
782 if (old < 0)
783 {
785 old = 1;
787 old = 0;
788 else
789 ERR (
"cannot determine format\n");
790 }
791 if (old == 0)
792 {
794 ERR (
"missing \"{\"\n");
797 break;
798 }
799 fp =
malloc (
sizeof(*fp));
801 ERR (
"cannot allocate font entry\n");
802 break;
803 }
804
807
816
820 {
822 {
823 switch (
info->rtfMajor)
824 {
825 default:
826
827 WARN (
"unknown token \"%s\"\n",
829 break;
832 break;
834 switch (
info->rtfMinor)
835 {
836 default:
837 break;
840 break;
841 }
842 break;
844 switch (
info->rtfMinor)
845 {
846 default:
847 break;
852 break;
855 break;
858 break;
862 break;
863 }
864 break;
865 }
866 }
868 {
870 }
872 {
876 {
877 *bp++ =
info->rtfMajor;
879 }
880
881
883 {
885 }
886 *bp = '\0';
889 ERR (
"cannot allocate font name\n");
890
891
892 continue;
893 }
894 else
895 {
896
897 WARN (
"unknown token \"%s\"\n",
info->rtfTextBuf);
898 }
901 break;
902 }
904 break;
905 if (old == 0)
906 {
909 ERR (
"missing \"}\"\n");
911 break;
912 }
913
914
916 {
919 TRACE(
"default font codepage %d\n",
info->codePage);
920 }
921 }
922 if (!fp || (fp->
rtfFNum == -1))
923 ERR(
"missing font number\n");
924
925
926
928
929
936}
int RTFCharSetToCodePage(RTF_Info *info, int charset)
static void RTFUngetToken(RTF_Info *info)
int RTFCheckCMM(const RTF_Info *info, int class, int major, int minor)
GLenum GLuint GLenum GLsizei const GLchar * buf
_Check_return_ _CRTIMP char *__cdecl strdup(_In_opt_z_ const char *_Src)
Referenced by RTFInit().
◆ ReadInfoGroup()
◆ ReadObjGroup()
◆ ReadPictGroup()
◆ ReadStyleSheet()
Definition at line 1008 of file reader.c.
1009{
1013 int real_style;
1014
1015 for (;;)
1016 {
1019 break;
1021 break;
1024 ERR (
"cannot allocate stylesheet entry\n");
1025 break;
1026 }
1030 sp->rtfSAdditive = 0;
1032 sp->rtfSNextPar = -1;
1033 sp->rtfSSEList = sepLast =
NULL;
1034 sp->rtfNextStyle =
info->styleList;
1035 sp->rtfExpanding = 0;
1038 ERR (
"missing \"{\"\n");
1040 for (;;)
1041 {
1045 break;
1047 {
1050 ERR(
"skipping optional destination\n");
1055 break;
1056 }
1058 {
1059 sp->rtfSNum =
info->rtfParam;
1061 continue;
1062 }
1064 {
1065 sp->rtfSNum =
info->rtfParam;
1067 continue;
1068 }
1070 {
1071 sp->rtfSNum =
info->rtfParam;
1073 continue;
1074 }
1076 {
1077 sp->rtfSBasedOn =
info->rtfParam;
1078 continue;
1079 }
1081 {
1082 sp->rtfSAdditive = 1;
1083 continue;
1084 }
1086 {
1087 sp->rtfSNextPar =
info->rtfParam;
1088 continue;
1089 }
1090 sep =
malloc (
sizeof(*sep));
1092 {
1093 ERR (
"cannot allocate style element\n");
1094 break;
1095 }
1102 ERR (
"cannot allocate style element text\n");
1103 if (sepLast ==
NULL)
1104 sp->rtfSSEList = sep;
1105 else
1108 sepLast = sep;
1109 }
1111 {
1112
1113
1114
1115
1116 ERR(
"skipping begin\n");
1118 continue;
1119 }
1121 {
1124 {
1125 if (
info->rtfMajor ==
';')
1126 {
1127
1129 break;
1130 }
1131 *bp++ =
info->rtfMajor;
1133 }
1134 *bp = '\0';
1136 if (
sp->rtfSName ==
NULL)
1137 ERR (
"cannot allocate style name\n");
1138 }
1139 else
1140 {
1141
1142 WARN (
"unknown token \"%s\"\n",
info->rtfTextBuf);
1143 }
1144 }
1145 if (real_style) {
1148 ERR (
"missing \"}\"\n");
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159 if (
sp->rtfSName ==
NULL)
1160 ERR (
"missing style name\n");
1161 if (
sp->rtfSNum < 0)
1162 {
1165 ERR (
"missing style number\n");
1167 }
1168 if (
sp->rtfSNextPar == -1)
1169 sp->rtfSNextPar =
sp->rtfSNum;
1170 }
1171
1172 }
1174}
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 476 of file reader.c.
477{
479 {
481 return 1252;
489 return 932;
491 return 949;
493 return 1361;
495 return 936;
497 return 950;
499 return 1253;
501 return 1254;
503 return 1258;
505 return 1255;
507 return 1256;
509 return 1257;
511 return 1251;
513 return 874;
515 return 1250;
518 default:
519 {
522
523
524
527 else
529 }
530 }
531 return 0;
532}
#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 144 of file reader.c.
145{
146 if (
info->rtfTextBuf)
147 {
150 }
153 while (
info->tableDef)
154 {
158 }
159}
static void RTFDestroyAttrs(RTF_Info *info)
Referenced by ME_StreamIn().
◆ RTFDestroyAttrs()
Definition at line 105 of file reader.c.
106{
111
112 while (
info->fontList)
113 {
114 fp =
info->fontList->rtfNextFont;
118 }
119 while (
info->colorList)
120 {
121 cp =
info->colorList->rtfNextColor;
124 }
125 while (
info->styleList)
126 {
127 sp =
info->styleList->rtfNextStyle;
128 eltList =
info->styleList->rtfSSEList;
129 while (eltList)
130 {
134 eltList = ep;
135 }
139 }
140}
Referenced by RTFDestroy(), and RTFInit().
◆ RTFFlushCPOutputBuffer()
◆ RTFFlushOutputBuffer()
◆ RTFFlushUnicodeOutputBuffer()
◆ RTFGetClassCallback()
◆ RTFGetColor()
◆ RTFGetDestinationCallback()
◆ RTFGetFont()
◆ RTFGetReadHook()
◆ RTFGetToken()
Definition at line 389 of file reader.c.
390{
392
393
396 }
397
398 for (;;)
399 {
404
405
407 && (
info->rtfMajor ==
'\r' ||
info->rtfMajor ==
'\n' ||
info->rtfMajor ==
'\0')))
408 break;
409 }
410 return (
info->rtfClass);
411}
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 195 of file reader.c.
196{
198
200 {
204 ERR (
"Cannot allocate text buffers.\n");
205 return;
206 }
207 info->rtfTextBuf[0] =
info->pushedTextBuf[0] =
'\0';
208 }
209
214
215
222
223
225
226
227
229
230 info->ansiCodePage = 1252;
231 info->unicodeLength = 1;
232 info->codePage =
info->ansiCodePage;
234
236 info->pushedClass = -1;
238
239 info->rtfLineNum = 0;
240 info->rtfLinePos = 0;
243
244 info->dwCPOutputCount = 0;
245 if (!
info->cpOutputBuffer)
246 {
247 info->dwMaxCPOutputCount = 0x1000;
249 }
250
252 info->nestingLevel = 0;
254 info->borderType = 0;
255
257 info->fmt.cbSize =
sizeof(
info->fmt);
258}
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 2624 of file reader.c.
2625{
2626
2627
2628 if (
info->dwCPOutputCount >=
info->dwMaxCPOutputCount)
2629 {
2630 info->dwMaxCPOutputCount *= 2;
2632 }
2633 info->cpOutputBuffer[
info->dwCPOutputCount++] =
c;
2634}
Referenced by TextClass().
◆ RTFPutUnicodeChar()
◆ RTFPutUnicodeString()
Definition at line 2573 of file reader.c.
2574{
2575 if (
info->dwCPOutputCount)
2578 {
2580
2582 info->dwOutputCount += fit;
2584 string += fit;
2587 }
2588}
#define memmove(s1, s2, n)
Referenced by RTFFlushCPOutputBuffer().
◆ RTFRead()
◆ RTFReadGroup()
◆ RTFRouteToken()
Definition at line 304 of file reader.c.
305{
307
309 {
310 ERR(
"Unknown class %d: %s (reader malfunction)\n",
312 }
314 {
315
318 {
320 return;
321 }
322 }
323
327}
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()
◆ RTFUngetToken()
◆ SpecialChar()
Definition at line 2461 of file reader.c.
2462{
2463 switch (
info->rtfMinor)
2464 {
2466
2467
2471 else
2473 break;
2475 {
2477
2479
2480
2481 for (
i = 0;
i <
info->unicodeLength;
i++)
2482 {
2485 {
2486 ERR(
"The token behind \\u is not text, but (%d,%d,%d)\n",
2489 break;
2490 }
2491 }
2492 break;
2493 }
2497 break;
2504 info->fmt.cbSize =
sizeof(
info->fmt);
2507 break;
2510 break;
2513 break;
2516 break;
2519 break;
2522 break;
2525 break;
2528 break;
2531 break;
2534 break;
2537 break;
2540 break;
2543 break;
2546 break;
2549 break;
2552 break;
2555 break;
2556 }
2557}
void ME_InsertEndRowFromCursor(ME_TextEditor *editor, int nCursor)
static void RTFPutUnicodeChar(RTF_Info *info, int c)
BOOL editor_set_selection_para_fmt(ME_TextEditor *editor, const PARAFORMAT2 *fmt)
#define rtfNoWidthNonJoiner
Referenced by ControlClass().
◆ TextClass()
Definition at line 2330 of file reader.c.
2331{
2333}
static void RTFPutCodePageChar(RTF_Info *info, int c)
Referenced by BeginFile().
◆ WINE_DEFAULT_DEBUG_CHANNEL()
WINE_DEFAULT_DEBUG_CHANNEL |
( |
richedit |
| ) |
|
◆ WriterInit()
◆ rtfHashTable
◆ rtfKey