1void ctwscriptedit :: FormattextRange (int NStart, int NEND)
2{
3 IF (nStart> = NEND)
4 return;
5
6 m_binforcedchange = true;
Seduce
8 Charrange Croldsel;
9
10 getsel (croldsel);
11 lockwindowupdate ();
12 Hidesee (TRUE, FALSE);
13
14 tchar * pBuffer = null;
15 try {
16 setsel (NStart, Nend);
17 pbuffer = new tchar [NEND - NSTART 1];
18 long Nlen = getselText (PBUFFER);
19
20 assert (Nlen <= NEND - NSTART);
twenty one
22 pBuffer [NLEN] = 0;
twenty three
24 Tchar * PStart, * PPTR;
25 pstart = pptr = pBuffer;
26
27 tchar * psymbolstart = null;
28 Symbolcolor IC;
29
30 While (* pptr! = 0) {
31 tchar ch = * pptr;
32
33 if (ch == m_CHComment && (m_chcomment2 == 0 || PPTR [1] == m_CHComment2)) {
34 psymbolstart = pptr;
35 DO {
36 CH = * ( PPTR);
37} while (ch! = 0 && ch! = '/ R');
38 IC = m_ICComment;
39} Else IF (Isstring Quote (CH)) {// Process Strings
40 psymbolstart = pptr;
41 tchar ch1 = CH;
42 DO {
43 CH = * ( PPTR);
44} while (ch! = 0 && ch! = Ch1 && ch! = '/ R');
45 IF (CH == CH1) PPTR ;
46 IC = m_ICString;
Else IF (_ISTDIGIT (CH)) {// Process Numbers
48 psymbolstart = pptr;
49_TCSTOD (PsymbolStart, & PPTR);
50 IC = m_ICnumber;
Else IF (_ITALPHA (CH) || CH == '_') {// process keywords
52 psymbolstart = pptr;
53 DO {
54 CH = * ( PPTR);
55} while (_ITALNUM (CH) || CH == '_');
56 * pptr = 0;
57 int npos = iskeyword (psymbolstart);
58 IF (npos> = 0) {
59 ChangeCase (NStart PsymbolStart - PBuffer, NStart PPTR - PBuffer,
60 m_StrKeywords.mid (NPOS 1, PPTR - PsymbolStart);
61 IF (_tcsicmp (m_strcomment, psymbolstart) == 0) {
62 * pptr = CH;
63 * psymbolstart = m_CHComment;
64 IF (psymbolstart [1]! = 0 && m_chcomment2! = 0)
65 psymbolstart [1] = m_CHComment2;
66 pptr = psymbolstart;
67 psymbolstart = null;
68 Continue;
69}
70 IC = m_ickeyword;
Else {
72 npos = isconstant (psymbolstart);
73 IF (Npos> = 0) {
74 Changecase (NStart PsymbolStart - PBuffer, NStart PPTR - PBuffer,
75 m_STRCONSTANTS.MID (NPOS 1, PPTR - PsymbolStart);
76 IC = m_ICCONSTANT;
77} else {
78 psymbolstart = null;
79}
80}
81 * pptr = CH;
82} else {
83 PPTR ;
84}
85
86 IF (psymbolstart! = Null) {
87 Assert (psymbolstart 88 SETFORMATRANGE (NStart Pstart - PBuffer, NStart PsymbolStart - PBuffer, False, RGB (0, 0, 0)); 89 SETFORMATRANGE (NStart PsymbolStart - PBuffer, NStart PPTR - PBuffer, Ic.bold, Ic.Clrcolor); 90 pstart = pptr; 91 psymbolstart = 0; ELSE IF (* pptr == 0) 93 SETFORMATRANGE (NStart PStart - PBuffer, NStart PPTR - PBuffer, False, RGB (0, 0, 0)); 94} 95 96} catch (...) {} 97 98 delete [] PBuffer; 99 100 setsel (croldsel); 101 Hidesee (False, False); 102 UNLOCKWINDOWUPDATE (); 103 104 m_binforcedchange = false; 105}