• R/O
  • SSH

wp2latex: Commit

WP2LaTeX sources.


Commit MetaInfo

Revisionfadb556dc9cbd7c4d80658ed3c8d0529b2ad58c2 (tree)
Zeit2022-05-25 04:48:45
AutorFojtik
CommiterFojtik

Log Message

3.107

Ändern Zusammenfassung

Diff

diff -r 228af17617b5 -r fadb556dc9cb trunk/instaler/WP2LaTeX.iss
--- a/trunk/instaler/WP2LaTeX.iss Mon May 23 08:03:26 2022 +0200
+++ b/trunk/instaler/WP2LaTeX.iss Tue May 24 21:48:45 2022 +0200
@@ -1,7 +1,7 @@
11 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
22
33 #define MyAppName "WP2LaTeX"
4-#define MyAppVersion "3.106"
4+#define MyAppVersion "3.107"
55 #define MyAppPublisher "F&T Soft"
66 #define MyAppURL "http://www.penguin.cz/~fojtik/wp2latex/"
77
diff -r 228af17617b5 -r fadb556dc9cb trunk/msvc/wp2latex.vcproj
--- a/trunk/msvc/wp2latex.vcproj Mon May 23 08:03:26 2022 +0200
+++ b/trunk/msvc/wp2latex.vcproj Tue May 24 21:48:45 2022 +0200
@@ -4531,7 +4531,7 @@
45314531 <Tool
45324532 Name="VCCustomBuildTool"
45334533 Description="ASM64"
4534- CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)"
4534+ CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)&#x0D;&#x0A;"
45354535 Outputs="$(OutDir)\$(InputName).obj"
45364536 />
45374537 </FileConfiguration>
@@ -4549,7 +4549,7 @@
45494549 <Tool
45504550 Name="VCCustomBuildTool"
45514551 Description="ASM64"
4552- CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)"
4552+ CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)&#x0D;&#x0A;"
45534553 Outputs="$(OutDir)\$(InputName).obj"
45544554 />
45554555 </FileConfiguration>
@@ -4567,7 +4567,7 @@
45674567 <Tool
45684568 Name="VCCustomBuildTool"
45694569 Description="ASM64"
4570- CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)"
4570+ CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)&#x0D;&#x0A;"
45714571 Outputs="$(OutDir)\$(InputName).obj"
45724572 />
45734573 </FileConfiguration>
@@ -4585,7 +4585,7 @@
45854585 <Tool
45864586 Name="VCCustomBuildTool"
45874587 Description="ASM64"
4588- CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)"
4588+ CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)&#x0D;&#x0A;"
45894589 Outputs="$(OutDir)\$(InputName).obj"
45904590 />
45914591 </FileConfiguration>
@@ -4603,7 +4603,7 @@
46034603 <Tool
46044604 Name="VCCustomBuildTool"
46054605 Description="ASM64"
4606- CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)"
4606+ CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)&#x0D;&#x0A;"
46074607 Outputs="$(OutDir)\$(InputName).obj"
46084608 />
46094609 </FileConfiguration>
@@ -4621,7 +4621,7 @@
46214621 <Tool
46224622 Name="VCCustomBuildTool"
46234623 Description="ASM64"
4624- CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)"
4624+ CommandLine="ml64.exe /c /nologo /Fo&quot;$(OutDir)\$(InputName).obj&quot; /W3 /Zi /errorReport:prompt $(InputPath)&#x0D;&#x0A;"
46254625 Outputs="$(OutDir)\$(InputName).obj"
46264626 />
46274627 </FileConfiguration>
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/cp_lib/cpbldr.cc
--- a/trunk/sources.cc/cp_lib/cpbldr.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/cp_lib/cpbldr.cc Tue May 24 21:48:45 2022 +0200
@@ -4,6 +4,7 @@
44 * modul: cpbldr.cc *
55 * description: The executable for generating codetables will be generated *
66 * after compiling this module. *
7+ * licency: GPL *
78 ******************************************************************************/
89 #include "cplib.cc"
910
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/images/hack_compile.bat
--- a/trunk/sources.cc/images/hack_compile.bat Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/images/hack_compile.bat Tue May 24 21:48:45 2022 +0200
@@ -1,1 +1,2 @@
1-"D:\Program Files\Borland\CBuilder4\Bin\tasm32.exe" /ml raster_BCC.asm
\ No newline at end of file
1+"D:\Program Files\Borland\CBuilder4\Bin\tasm32.exe" /ml raster_BCC.asm
2+"D:\Program Files\Borland\CBuilder4\Bin\tasm32.exe" /ml img_tool_BCC.asm
\ No newline at end of file
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/images/img_tool_BCC.asm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trunk/sources.cc/images/img_tool_BCC.asm Tue May 24 21:48:45 2022 +0200
@@ -0,0 +1,699 @@
1+.486 ;Target processor. Use instructions for Pentium class machines
2+.MODEL FLAT, C ;Use the flat memory model. Use C calling conventions
3+
4+.CODE ;Indicates the start of a code segment.
5+
6+
7+LOCALS @@
8+
9+
10+;void RGB_BGR(unsigned char *Data, unsigned PixelCount)
11+ public RGB_BGR
12+RGB_BGR proc \
13+ uses esi, \
14+ Data:ptr byte, \
15+ PixelCount:DWORD
16+
17+ mov ecx,[PixelCount] ; cx=amount of pixels
18+ jecxz @@ToEnd ; array has zero size
19+
20+ mov esi,[Data] ; Load data ptr.
21+
22+@@LoopPix:mov al,[esi]
23+ mov ah,[esi+2]
24+ mov [esi],ah
25+ mov [esi+2],al
26+ add esi,3
27+ loop @@LoopPix
28+
29+@@ToEnd:
30+ ret ; _cdecl return
31+
32+RGB_BGR endp
33+
34+
35+
36+;void RGB_BGR2(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
37+ public RGB_BGR2
38+RGB_BGR2 proc \
39+ uses esi edi, \
40+ OutData:ptr byte, \
41+ InData:ptr byte, \
42+ PixelCount:DWORD
43+
44+ mov ecx,[PixelCount] ; cx=amount of pixels
45+
46+ mov esi,[InData] ;
47+ mov edi,[OutData] ;
48+
49+ sub ecx,4
50+ jl @@LoopSimple
51+
52+ ; Processing of 4px block with size 3xDWORD
53+@@LoopPix4:lodsd ; EAX = R2 B1 G1 R1
54+ bswap eax ; EAX = R1 G1 B1 R2
55+
56+ mov edx,[esi] ; EDX = G3 R3 B2 G2
57+ add esi,4
58+
59+ xchg al,dh ; EAX = R1 G1 B1 B2, EDX=G3 R3 R2 G2
60+ ror eax,8 ; EAX = B2 R1 G1 B1
61+ stosd ; B2 R1 G1 B1 shipped out
62+
63+ lodsd ; EAX = B4 G4 R4 B3
64+ bswap eax ; EAX = B3 R4 G4 B4
65+ rol eax,8 ; EAX = R4 G4 B4 B3
66+
67+ ror edx,8 ; EDX = G2 G3 R3 R2
68+ xchg dh,al ; B3 <-> R3 , EAX=R4 G4 B4 R3
69+ rol edx,8 ; EDX = G3 B3 R2 G2
70+
71+ mov [edi],edx ; G3 B3 R2 G2 shipped out
72+ add edi,4
73+
74+ stosd ; R4 G4 B4 R3 shipped out
75+ ;mov [edi],eax ; (STOSD is slow on AMD, replaced, seems that Intel works reversed)
76+ ;add edi,4
77+
78+ sub ecx,4
79+ jae @@LoopPix4
80+
81+ ; Simple loop for 0,1,2,3 pixels (works also for more px)
82+@@LoopSimple:
83+ add ecx,4 ; ecx was -4, correct counter
84+ jecxz @@ToEnd ; array has zero size
85+@@LoopPix:lodsw
86+ mov [edi+2],al
87+ mov [edi+1],ah
88+ lodsb
89+ mov [edi],al
90+ add edi,3
91+ dec ecx
92+ jz @@ToEnd
93+
94+ lodsb
95+ mov [edi+2],al
96+ lodsw
97+ mov [edi+1],al
98+ mov [edi],ah
99+ add edi,3
100+
101+ loop @@LoopPix
102+@@ToEnd: ret
103+
104+RGB_BGR2 endp
105+
106+
107+;void RGB32_BGR24(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
108+ public RGB32_BGR24
109+RGB32_BGR24 proc \
110+ uses esi edi ebx, \
111+ OutData:ptr byte, \
112+ InData:ptr byte, \
113+ PixelCount:DWORD
114+
115+ mov ecx,[PixelCount] ; ecx=amount of pixels
116+
117+ mov esi,[InData] ; source data
118+ mov edi,[OutData] ; destination data
119+
120+ sub ecx,4
121+ jl @@LoopSimple ; array size < 4
122+
123+@@LoopPx4:mov ebx,[esi] ; EBX = ?? B1 G1 R1
124+ add esi,4
125+ bswap ebx ; EBX = R1 G1 B1 ??
126+
127+; lodsd ; EAX = ?? B2 G2 R2
128+ mov eax,[esi]
129+ add esi,4
130+ bswap eax ; EAX = R2 G2 B2 ??
131+
132+ mov bl,ah ; BL = B2
133+ ror ebx,8 ; EBX = B2 R1 G1 B1
134+ mov [edi],ebx ; shipout B2 R1 G1 B1
135+ add edi,4
136+
137+ mov ebx,[esi] ; EBX = ?? B3 G3 R3
138+ add esi,4
139+ mov dl,bl ; DL = R3
140+
141+ mov ah,bh ; EAX = R2 G2 G3 ??
142+ bswap ebx ; EBX = R3 G3 B3 ??
143+ mov al,bh ; EAX = R2 G2 G3 B3
144+ ror eax,16 ; EAX = G3 B3 R2 G2
145+ stosd ; shipout G3 B3 R2 G2
146+
147+ lodsd ; EAX = ?? B4 G4 R4
148+ bswap eax ; EAX = R4 G4 B4 ??
149+ mov al,dl ; EAX = R4 G4 B4 R3
150+
151+ stosd ; shipout R4 G4 B4 R3
152+
153+ sub ecx,4
154+ jae @@LoopPx4
155+
156+@@LoopSimple:
157+ add ecx,4
158+ jz @@ToEnd ; remaining size = 0
159+
160+@@LoopPix:lodsd
161+ mov [edi+2],al
162+ mov [edi+1],ah
163+ shr eax,8
164+ mov [edi],ah
165+ add edi,3
166+ loop @@LoopPix
167+
168+@@ToEnd:
169+ ret ; _cdecl return
170+
171+RGB32_BGR24 endp
172+
173+
174+
175+;void RGB_Gray24(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
176+ public RGB_Gray24simple
177+RGB_Gray24simple proc \
178+ uses esi edi ebx, \
179+ OutData:ptr byte, \
180+ InData:ptr byte, \
181+ PixelCount:DWORD
182+
183+ mov ecx,[PixelCount] ; cx=amount of pixels
184+ cmp ecx,1
185+ jle @@ToEnd ; array has zero size
186+
187+ mov esi,[InData] ;
188+ mov edi,[OutData] ;
189+
190+ mov bh,0
191+@@LoopPix:mov ah,0
192+ mov al,[esi]
193+ mov bl,[esi+1]
194+ add ax,bx
195+ mov bl,[esi+2]
196+ add ax,bx
197+ mov bl,3
198+ div bl
199+ stosb
200+ stosb
201+ stosb
202+ add esi,3
203+ loop @@LoopPix
204+
205+@@ToEnd:
206+ ret ; _cdecl return
207+
208+RGB_Gray24simple endp
209+
210+
211+
212+;void BGR_Gray24(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
213+ public BGR_Gray24
214+BGR_Gray24 proc \
215+ uses esi edi ebx, \
216+ OutData:ptr byte, \
217+ InData:ptr byte, \
218+ PixelCount:DWORD
219+
220+ mov ecx,[PixelCount] ; cx=amount of pixels
221+ cmp ecx,1
222+ jle @@ToEnd ; array has zero size
223+
224+ mov esi,[InData] ;
225+ mov edi,[OutData] ;
226+
227+@@LoopPix:mov eax,0
228+ lodsb
229+ mov edx,4731
230+ mul edx
231+ mov ebx,eax
232+
233+ mov eax,0
234+ lodsb
235+ mov edx,46871
236+ mul edx
237+ add ebx,eax
238+
239+ mov eax,0
240+ lodsb
241+ mov edx,13932
242+ mul edx
243+ add eax,ebx
244+
245+ shr eax,16
246+ stosb
247+ stosb
248+ stosb
249+ loop @@LoopPix
250+
251+@@ToEnd:
252+ ret ; _cdecl return
253+
254+BGR_Gray24 endp
255+
256+
257+
258+;void BGR32_Gray24(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
259+ public BGR32_Gray24
260+BGR32_Gray24 proc \
261+ uses esi edi ebx, \
262+ OutData:ptr byte, \
263+ InData:ptr byte, \
264+ PixelCount:DWORD
265+
266+ mov ecx,[PixelCount] ; cx=amount of pixels
267+ cmp ecx,1
268+ jle @@ToEnd ; array has zero size
269+
270+ mov esi,[InData] ;
271+ mov edi,[OutData] ;
272+
273+@@LoopPix:mov eax,0
274+ lodsb
275+ mov edx,4731
276+ mul edx
277+ mov ebx,eax
278+
279+ mov eax,0
280+ lodsb
281+ mov edx,46871
282+ mul edx
283+ add ebx,eax
284+
285+ mov eax,0
286+ lodsb
287+ mov edx,13932
288+ mul edx
289+ add eax,ebx
290+
291+ shr eax,16
292+ stosb
293+ stosb
294+ stosb
295+ inc esi
296+ loop @@LoopPix
297+
298+@@ToEnd:
299+ ret ; _cdecl return
300+
301+BGR32_Gray24 endp
302+
303+
304+;void RGB32_Gray(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
305+ public RGB32_Gray
306+RGB32_Gray proc \
307+ uses esi edi ebx, \
308+ OutData:ptr byte, \
309+ InData:ptr byte, \
310+ PixelCount:DWORD
311+
312+ mov ecx,[PixelCount] ; cx=amount of pixels
313+ cmp ecx,1
314+ jle @@ToEnd ; array has zero size
315+
316+ mov esi,[InData] ;
317+ mov edi,[OutData] ;
318+
319+ mov bh,0
320+@@LoopPix:mov ah,0
321+ mov al,[esi]
322+ mov bl,[esi+1]
323+ add ax,bx
324+ mov bl,[esi+2]
325+ add ax,bx
326+ mov bl,3
327+ div bl
328+ stosb
329+ add esi,4
330+ loop @@LoopPix
331+
332+@@ToEnd:
333+ ret ; _cdecl return
334+
335+RGB32_Gray endp
336+
337+
338+;void RGB_Gray(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
339+ public RGB_Gray
340+RGB_Gray proc \
341+ uses esi edi ebx, \
342+ OutData:ptr byte, \
343+ InData:ptr byte, \
344+ PixelCount:DWORD
345+
346+ mov ecx,[PixelCount] ; cx=amount of pixels
347+ cmp ecx,1
348+ jle @@ToEnd ; array has zero size
349+
350+ mov esi,[InData] ;
351+ mov edi,[OutData] ;
352+
353+ mov bh,0
354+@@LoopPix:mov ah,0
355+ mov al,[esi]
356+ mov bl,[esi+1]
357+ add ax,bx
358+ mov bl,[esi+2]
359+ add ax,bx
360+ mov bl,3
361+ div bl
362+ stosb
363+ add esi,3
364+ loop @@LoopPix
365+
366+@@ToEnd:
367+ ret ; _cdecl return
368+
369+RGB_Gray endp
370+
371+
372+;void NotR(char *R, unsigned DataSize) //R1:=not(R1)
373+ public NotR
374+NotR proc \
375+ uses edi, \
376+ R:ptr byte, \
377+ DataSize:DWORD
378+
379+ mov ecx,[DataSize] ; cx=amount of pixels/bytes
380+ mov edi,[R] ; Row byte data
381+
382+ sub ecx,4
383+ jl @@LoopPx1
384+
385+@@LoopPx4:mov eax,[edi] ; Invert DWORDs
386+ not eax
387+ mov [edi],eax
388+ add edi,4
389+
390+ sub ecx,4
391+ jge @@LoopPx4
392+
393+@@LoopPx1:add ecx,4
394+ jz @@ToEnd
395+
396+@@LoopPix:mov al,[edi] ; Invert BYTEs
397+ not al
398+ mov [edi],al
399+ inc edi
400+ loop @@LoopPix
401+@@ToEnd:
402+ ret ; _cdecl return
403+
404+NotR endp
405+
406+
407+
408+;void YUV_RGB(unsigned char *OutData, const unsigned char *y, const unsigned char *u, const unsigned char *v, unsigned PixelCount)
409+ public YUV_RGB
410+YUV_RGB proc \
411+ uses edi esi ebx, \
412+ OutData: ptr BYTE, \
413+ y: ptr BYTE, \
414+ u: ptr BYTE, \
415+ v: ptr BYTE, \
416+ PixelCount: DWORD
417+
418+ mov edi,[OutData]
419+ mov esi,[y]
420+ mov ebx,[u]
421+ mov ecx,[PixelCount]
422+ push ebp
423+ mov ebp,[v]
424+
425+ sub ecx,2
426+ jb @@Exit
427+
428+@@LoopPx:xor edx,edx
429+ mov dh,[esi] ; 255*Y
430+
431+ xor eax,eax
432+ mov al,[ebp] ; V
433+ sub eax,128
434+ imul eax,291 ; 291*V
435+ add eax,edx
436+
437+ js @@SmallR1
438+ test eax,0FFFF0000h
439+ jnz @@BigR1
440+ mov [edi],ah ; B1
441+ jmp @@LoopX1R
442+@@BigR1: mov byte ptr [edi],255
443+ jmp @@LoopX1R
444+@@SmallR1:mov byte ptr [edi],0
445+@@LoopX1R:add edi,2 ; Shift to B
446+
447+ xor eax,eax
448+ mov al,[ebx] ; U
449+ sub eax,128
450+ imul eax,521 ; 291*V
451+ add eax,edx
452+
453+ js @@SmallB1
454+ test eax,0FFFF0000h
455+ jnz @@BigB1
456+ mov [edi],ah ; B1
457+ jmp @@LoopX1B
458+@@BigB1: mov byte ptr [edi],255
459+ jmp @@LoopX1B
460+@@SmallB1:mov byte ptr [edi],0
461+@@LoopX1B:dec edi ; Shift back to G1
462+
463+ ;EDX = 255*Y
464+ xor eax,eax
465+ mov al,[ebp] ; V
466+ sub eax,128
467+ imul eax,148
468+ sub edx,eax
469+
470+ xor eax,eax
471+ mov al,[ebx] ; U
472+ sub eax,128
473+ imul eax,102 ; 102*U
474+ sub edx,eax ; 255*Y - 102*U - 148*V
475+
476+ js @@SmallG1
477+ test edx,0FFFF0000h
478+ jnz @@BigG1
479+ mov [edi],dh ; R1
480+ jmp @@LoopX1G
481+@@BigG1: mov byte ptr [edi],255
482+ jmp @@LoopX1G
483+@@SmallG1:mov byte ptr [edi],0
484+@@LoopX1G:add edi,2 ; Shift to R2
485+
486+ inc esi
487+
488+ ; 2nd pixel
489+ xor edx,edx
490+ mov dh,[esi] ; 255*Y
491+
492+ xor eax,eax
493+ mov al,[ebp] ; V
494+ sub eax,128
495+ imul eax,291 ; 291*V
496+ add eax,edx
497+
498+ js @@SmallR2
499+ test eax,0FFFF0000h
500+ jnz @@BigR2
501+ mov [edi],ah ; B2
502+ jmp @@LoopX2R
503+@@BigR2: mov byte ptr [edi],255
504+ jmp @@LoopX2R
505+@@SmallR2:mov byte ptr [edi],0
506+@@LoopX2R:add edi,2 ; Shift to B2
507+
508+ xor eax,eax
509+ mov al,[ebx] ; U
510+ sub eax,128
511+ imul eax,521 ; 291*V
512+ add eax,edx
513+
514+ js @@SmallB2
515+ test eax,0FFFF0000h
516+ jnz @@BigB2
517+ mov [edi],ah ; B1
518+ jmp @@LoopX2B
519+@@BigB2: mov byte ptr [edi],255
520+ jmp @@LoopX2B
521+@@SmallB2:mov byte ptr [edi],0
522+@@LoopX2B:dec edi ; Shift back to G
523+
524+ ;EDX = 255*Y
525+ xor eax,eax
526+ mov al,[ebp] ; V
527+ sub eax,128
528+ imul eax,148
529+ sub edx,eax
530+
531+ xor eax,eax
532+ mov al,[ebx] ; U
533+ sub eax,128
534+ imul eax,102 ; 102*U
535+ sub edx,eax ; 255*Y - 102*U - 148*V
536+
537+ js @@SmallG2
538+ test edx,0FFFF0000h
539+ jnz @@BigG2
540+ mov [edi],dh ; R1
541+ jmp @@LoopX2G
542+@@BigG2: mov byte ptr [edi],255
543+ jmp @@LoopX2G
544+@@SmallG2:mov byte ptr [edi],0
545+@@LoopX2G:add edi,2 ; Shift to R3
546+
547+ inc ebx ; inc U every 2nd pixel
548+ inc ebp ; inc V every 2nd pixel
549+
550+ inc esi ; inc Y every pixel
551+ sub ecx,2
552+ jae @@LoopPx
553+
554+@@Exit:
555+ pop ebp
556+ ret
557+YUV_RGB endp
558+
559+
560+
561+;void YUYV_RGB(unsigned char *OutData, const unsigned char *yuyv, unsigned PixelCount);
562+ public YUYV_RGB
563+YUYV_RGB proc \
564+ uses edi esi ebx, \
565+ OutData: ptr BYTE, \
566+ yuyv: ptr BYTE, \
567+ PixelCount: DWORD
568+
569+ mov edi,[OutData]
570+ mov esi,[yuyv]
571+ mov ecx,[PixelCount]
572+ push ebp
573+
574+ sub ecx,2
575+ jb @@Exit
576+
577+@@LoopPx:mov ebx,[esi]
578+
579+ xor edx,edx
580+ mov dh,bl ; 255*Y
581+
582+ mov eax,ebx
583+ rol eax,8
584+ and eax,0FFh ; V
585+ sub eax,128
586+ mov ebp,eax ; store V to EBP
587+ imul eax,291 ; 291*V
588+ add eax,edx
589+
590+ js @@SmallR1
591+ test eax,0FFFF0000h
592+ jnz @@BigR1
593+ mov [edi],ah ; B1
594+ jmp @@LoopX1R
595+@@BigR1:mov byte ptr [edi],255
596+ jmp @@LoopX1R
597+@@SmallR1:mov byte ptr [edi],0
598+@@LoopX1R:add edi,2 ; Shift to B
599+
600+ xor eax,eax
601+ mov al,bh ; U
602+ sub eax,128
603+ imul eax,521 ; 291*U
604+ add eax,edx
605+
606+ js @@SmallB1
607+ test eax,0FFFF0000h
608+ jnz @@BigB1
609+ mov [edi],ah ; B1
610+ jmp @@LoopX1B
611+@@BigB1:mov byte ptr [edi],255
612+ jmp @@LoopX1B
613+@@SmallB1:mov byte ptr [edi],0
614+@@LoopX1B:dec edi ; Shift back to G1
615+
616+ ;EDX = 255*Y
617+
618+ imul eax,ebp,148 ; V normalised *148
619+ sub edx,eax
620+
621+ xor eax,eax
622+ mov al,bh ; U
623+ sub eax,128
624+ imul eax,102 ; 102*U
625+ sub edx,eax ; 255*Y - 102*U - 148*V
626+
627+ js @@SmallG1
628+ test edx,0FFFF0000h
629+ jnz @@BigG1
630+ mov [edi],dh ; R1
631+ jmp @@LoopX1G
632+@@BigG1: mov byte ptr [edi],255
633+ jmp @@LoopX1G
634+@@SmallG1:mov byte ptr [edi],0
635+@@LoopX1G:add edi,2 ; Shift to R2
636+
637+ ; 2nd pixel
638+ mov edx,ebx
639+ ror edx,8
640+ and edx,0FF00h ; 255*Y2
641+
642+ imul eax,ebp,291 ; 291*V
643+ add eax,edx
644+
645+ js @@SmallR2
646+ test eax,0FFFF0000h
647+ jnz @@BigR2
648+ mov [edi],ah ; R2
649+ jmp @@LoopX2R
650+@@BigR2: mov byte ptr [edi],255
651+ jmp @@LoopX2R
652+@@SmallR2:mov byte ptr [edi],0
653+@@LoopX2R:add edi,2 ; Shift to B2
654+
655+ mov bl,bh ; U
656+ and ebx,0FFh
657+ sub ebx,128
658+ imul eax,ebx,521 ; 521*U
659+ add eax,edx
660+
661+ js @@SmallB2
662+ test eax,0FFFF0000h
663+ jnz @@BigB2
664+ mov [edi],ah ; B2
665+ jmp @@LoopX2B
666+@@BigB2: mov byte ptr [edi],255
667+ jmp @@LoopX2B
668+@@SmallB2:mov byte ptr [edi],0
669+@@LoopX2B:dec edi ; Shift back to G
670+
671+ ;EDX = 255*Y
672+ imul eax,ebp,148 ; V normalised * 148
673+ sub edx,eax
674+
675+ imul eax,ebx,102 ; 102*U normalised
676+ sub edx,eax ; 255*Y - 102*U - 148*V
677+
678+ js @@SmallG2
679+ test edx,0FFFF0000h
680+ jnz @@BigG2
681+ mov [edi],dh ; G2
682+ jmp @@LoopX2G
683+@@BigG2:mov byte ptr [edi],255
684+ jmp @@LoopX2G
685+@@SmallG2:mov byte ptr [edi],0
686+@@LoopX2G:add edi,2 ; Shift to R3
687+
688+
689+ add esi,4 ; inc Y per 2 pixels
690+ sub ecx,2
691+ jae @@LoopPx
692+
693+@@Exit:
694+ pop ebp
695+ ret
696+YUYV_RGB endp
697+
698+
699+ end
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/images/img_tool_MSVC.asm
--- a/trunk/sources.cc/images/img_tool_MSVC.asm Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/images/img_tool_MSVC.asm Tue May 24 21:48:45 2022 +0200
@@ -104,7 +104,7 @@
104104 ;void RGB32_BGR24(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
105105 public RGB32_BGR24
106106 RGB32_BGR24 proc \
107- uses esi edi ebx \
107+ uses esi edi ebx, \
108108 OutData:ptr byte, \
109109 InData:ptr byte, \
110110 PixelCount:DWORD
@@ -172,7 +172,7 @@
172172 ;void RGB_Gray24(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
173173 public RGB_Gray24simple
174174 RGB_Gray24simple proc \
175- uses esi edi ebx \
175+ uses esi edi ebx, \
176176 OutData:ptr byte, \
177177 InData:ptr byte, \
178178 PixelCount:DWORD
@@ -209,7 +209,7 @@
209209 ;void BGR_Gray24(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
210210 public BGR_Gray24
211211 BGR_Gray24 proc \
212- uses esi edi ebx \
212+ uses esi edi ebx, \
213213 OutData:ptr byte, \
214214 InData:ptr byte, \
215215 PixelCount:DWORD
@@ -255,7 +255,7 @@
255255 ;void BGR32_Gray24(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
256256 public BGR32_Gray24
257257 BGR32_Gray24 proc \
258- uses esi edi ebx \
258+ uses esi edi ebx, \
259259 OutData:ptr byte, \
260260 InData:ptr byte, \
261261 PixelCount:DWORD
@@ -301,7 +301,7 @@
301301 ;void RGB32_Gray(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
302302 public RGB32_Gray
303303 RGB32_Gray proc \
304- uses esi edi ebx \
304+ uses esi edi ebx, \
305305 OutData:ptr byte, \
306306 InData:ptr byte, \
307307 PixelCount:DWORD
@@ -335,7 +335,7 @@
335335 ;void RGB_Gray(unsigned char *OutData, const unsigned char *InData, unsigned PixelCount)
336336 public RGB_Gray
337337 RGB_Gray proc \
338- uses esi edi ebx \
338+ uses esi edi ebx, \
339339 OutData:ptr byte, \
340340 InData:ptr byte, \
341341 PixelCount:DWORD
@@ -405,11 +405,11 @@
405405 ;void YUV_RGB(unsigned char *OutData, const unsigned char *y, const unsigned char *u, const unsigned char *v, unsigned PixelCount)
406406 public YUV_RGB
407407 YUV_RGB proc \
408- uses edi esi ebx\
409- OutData: ptr BYTE,\
410- y: ptr BYTE,\
411- u: ptr BYTE,\
412- v: ptr BYTE,\
408+ uses edi esi ebx, \
409+ OutData: ptr BYTE, \
410+ y: ptr BYTE, \
411+ u: ptr BYTE, \
412+ v: ptr BYTE, \
413413 PixelCount: DWORD
414414
415415 mov edi,[OutData]
@@ -420,7 +420,7 @@
420420 mov ebp,[v]
421421
422422 sub ecx,2
423- jb exit
423+ jb Exit
424424
425425 LoopPx: xor edx,edx
426426 mov dh,[esi] ; 255*Y
@@ -558,9 +558,9 @@
558558 ;void YUYV_RGB(unsigned char *OutData, const unsigned char *yuyv, unsigned PixelCount);
559559 public YUYV_RGB
560560 YUYV_RGB proc \
561- uses edi esi ebx\
562- OutData: ptr BYTE,\
563- yuyv: ptr BYTE,\
561+ uses edi esi ebx, \
562+ OutData: ptr BYTE, \
563+ yuyv: ptr BYTE, \
564564 PixelCount: DWORD
565565
566566 mov edi,[OutData]
@@ -569,7 +569,7 @@
569569 push ebp
570570
571571 sub ecx,2
572- jb exit
572+ jb Exit
573573
574574 LoopPx: mov ebx,[esi]
575575
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/images/ras_img.cc
--- a/trunk/sources.cc/images/ras_img.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/images/ras_img.cc Tue May 24 21:48:45 2022 +0200
@@ -5439,7 +5439,6 @@
54395439 goto FINISH; //not a text data
54405440 }
54415441 x=0;
5442- i=0;
54435442 do {
54445443 x++;
54455444 if(!isdigit(ch) && ch!=0) ch=0;
@@ -6183,11 +6182,13 @@
61836182 case 0x0A32: strcpy(ObjType,"!ExtTextOut"); break;
61846183
61856184 case 0x0B23: strcpy(ObjType,"!StretchBlt"); break;
6186-
6187- case 0x0B41: strcpy(ObjType,"!DibStretchBlt"); break;
6188-
6189- case 0x0d33: strcpy(ObjType,"!SetDibToDev"); break;
61906185 */
6186+ case 0x0B41: WMF_DIBSTRETCHBLT(Img, f, WmfRec->ParamFilePos);
6187+ //strcpy(ObjType,"!DibStretchBlt");
6188+ break;
6189+
6190+// case 0x0d33: strcpy(ObjType,"!SetDibToDev"); break;
6191+
61916192 case 0x0F43: WMF_STRETCHDIB(Img, f, WmfRec->ParamFilePos);
61926193 // strcpy(ObjType,"StretchDIBits");
61936194 break;
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1.cc
--- a/trunk/sources.cc/pass1.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1.cc Tue May 24 21:48:45 2022 +0200
@@ -611,16 +611,16 @@
611611
612612 if(LineNumbering)
613613 {
614- if(LineNo>=0)
614+ if(LineNo>=STYLE_NOTUSED)
615615 {
616- LineNo = 1;
616+ LineNo = STYLE_USED;
617617 AttrOn(cq->attr,Line_Num);
618618 }
619619 }
620620 else
621621 AttrOff(cq,Line_Num);
622622
623-sprintf(cq->ObjType,"%sLine Num:%s", (LineNo>=0)?"":"!", (LineNumbering&1)?"On":"Off");
623+sprintf(cq->ObjType,"%sLine Num:%s", (LineNo>=STYLE_NOTUSED)?"":"!", (LineNumbering&1)?"On":"Off");
624624 }
625625
626626
@@ -835,7 +835,7 @@
835835 fprintf(cq->log,"\n#Center() ");fflush(cq->log);
836836 #endif
837837
838- if(cq->char_on_line == -10) /* first line of minipages */
838+ if(cq->char_on_line == FIRST_CHAR_MINIPAGE) /* first line of minipages */
839839 { /* a new line have to be creared */
840840 fputs("%\n", cq->strip);
841841 cq->line_term = 's'; /* Soft return */
@@ -845,7 +845,7 @@
845845
846846 cq->nomore_valid_tabs = false;
847847 Make_tableentry_attr(cq);
848- cq->char_on_line = false;
848+ cq->char_on_line = NO_CHAR;
849849 }
850850
851851 if (cq->envir == ' ') /* environment = center */
@@ -1368,15 +1368,15 @@
13681368 if((WPx==3 || WPx==1) && (b&0xFC)==0)
13691369 b=JustWP3_2WP5[b&0x3];
13701370
1371- if(cq->char_on_line == -10) //first line after minipages
1372- {
1373- putc('%', cq->strip);
1374- cq->char_on_line=true;
1375- }
1371+ if(cq->char_on_line == FIRST_CHAR_MINIPAGE) //first line after minipages
1372+ {
1373+ putc('%', cq->strip);
1374+ cq->char_on_line = CHAR_PRESENT;
1375+ }
13761376 if(cq->char_on_line==CHAR_PRESENT) //!!!!!!!!! ////
1377- {
1378- NewLine(cq);
1379- }
1377+ {
1378+ NewLine(cq);
1379+ }
13801380 cq->latex_tabpos = 0;
13811381 OldEnvir = cq->envir;
13821382 cq->envir = ' ';
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1602.cc
--- a/trunk/sources.cc/pass1602.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1602.cc Tue May 24 21:48:45 2022 +0200
@@ -108,7 +108,7 @@
108108 recursion++;
109109
110110 line_term = 's'; //Soft return
111- if(char_on_line == -20) /* Left one empty line for new enviroment */
111+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) /* Left one empty line for new enviroment */
112112 {
113113 fputc('%', table);
114114 fputc('%', strip);
@@ -136,7 +136,7 @@
136136 flag = HeaderText;
137137 envir = ' ';
138138 ActualPos = ftell(wpd);
139- char_on_line = -10;
139+ char_on_line = FIRST_CHAR_MINIPAGE;
140140 while(*Header_Text!=0)
141141 {
142142 by=*Header_Text++;
@@ -160,7 +160,7 @@
160160 attr = OldAttr; // Restore backuped attributes
161161 flag = OldFlag;
162162 envir = OldEnvir;
163- char_on_line = -10; // stronger false;
163+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
164164 recursion--;
165165
166166 strcpy(ObjType,(He_Fo & 3)<=1?"Header":"Footer");
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1_3.cc
--- a/trunk/sources.cc/pass1_3.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1_3.cc Tue May 24 21:48:45 2022 +0200
@@ -638,7 +638,7 @@
638638 strcpy(ObjType, BoxNames[BoxType]);
639639 UnknownEquType:
640640 recursion--;
641- if(envir=='^') char_on_line = -10; // stronger false;
641+ if(envir=='^') char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
642642 flag = OldFlag;
643643 envir = OldEnvir;
644644 attr = OldAttr;
@@ -848,7 +848,7 @@
848848 end_of_code -= 4; //stop before this object ends
849849
850850 line_term = 's'; //Soft return
851- if(char_on_line == -20) /* Left one enpty line for new enviroment */
851+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
852852 {
853853 fputc('%', table);
854854 fputc('%', strip);
@@ -889,7 +889,7 @@
889889 flag = HeaderText;
890890 envir = ' ';
891891 ActualPos = ftell(wpd);
892- char_on_line = -10;
892+ char_on_line = FIRST_CHAR_MINIPAGE;
893893 while (ActualPos < end_of_code)
894894 {
895895 fread(&by, 1, 1, wpd);
@@ -912,7 +912,7 @@
912912 attr=OldAttr; /* Restore attributes backed up */
913913 flag = OldFlag;
914914 envir = OldEnvir;
915- char_on_line = -10; // stronger false;
915+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
916916 recursion--;
917917
918918 ExitHeaderFooter:
@@ -1011,7 +1011,7 @@
10111011 OldEnvir= envir;
10121012 recursion++;
10131013
1014- if(char_on_line == -20) /* Left one enpty line for new enviroment */
1014+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
10151015 {
10161016 fputc('%', table);fputc('%', strip);
10171017 NewLine(this);
@@ -1092,9 +1092,9 @@
10921092
10931093 by=fgetc(wpd);
10941094 }
1095- if(char_on_line <= -10) /* Left one empty line for ending enviroment */
1095+ if(char_on_line <= FIRST_CHAR_MINIPAGE) // Left one empty line for ending enviroment.
10961096 {
1097- fputc('%', table);fputc('%', strip);
1097+ fputc('%', table); fputc('%', strip);
10981098 NewLine(this);
10991099 }
11001100
@@ -1108,14 +1108,14 @@
11081108 break;
11091109 }
11101110
1111- envir='^'; //Ignore enviroments after table
1111+ envir = '^'; //Ignore enviroments after table
11121112 fputc('%', table);
11131113 NewLine(this);
1114- char_on_line = -10; // stronger false;
1114+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
11151115
11161116 recursion--;
1117- flag=OldFlag;
1118- envir=OldEnvir;
1117+ flag = OldFlag;
1118+ envir = OldEnvir;
11191119
11201120 strcpy(ObjType, "Table Start");
11211121 }
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1_4.cc
--- a/trunk/sources.cc/pass1_4.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1_4.cc Tue May 24 21:48:45 2022 +0200
@@ -324,7 +324,7 @@
324324 recursion++;
325325
326326 line_term = 's'; //Soft return
327- if(char_on_line == -20) /* Left one enpty line for new enviroment */
327+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
328328 {
329329 fputc('%', table);
330330 fputc('%', strip);
@@ -345,7 +345,7 @@
345345 ActualPos = PosX;
346346 envir = ' ';
347347 flag = HeaderText;
348- char_on_line = -10;
348+ char_on_line = FIRST_CHAR_MINIPAGE;
349349 while (!feof(wpd))
350350 {
351351 fread(&by, 1, 1, wpd);
@@ -372,7 +372,7 @@
372372 attr = OldAttr;
373373 flag = OldFlag;
374374 envir= OldEnvir;
375- char_on_line = -10;
375+ char_on_line = FIRST_CHAR_MINIPAGE;
376376
377377 EndHeaderFooter:
378378 LogLevel=SaveLLevel;
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1_5.cc
--- a/trunk/sources.cc/pass1_5.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1_5.cc Tue May 24 21:48:45 2022 +0200
@@ -690,7 +690,7 @@
690690 if(Box.Width<=1 && err != NULL)
691691 fprintf(err, _("\nWarning: The width of the Box is %f, are you sure?"),Box.Width);
692692
693- if(char_on_line == -20) /* Left one empty line for new enviroment */
693+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one empty line for new enviroment.
694694 {
695695 fputc('%', table);
696696 fputc('%', strip);
@@ -706,7 +706,7 @@
706706 envir='!'; //Ignore enviroments Before
707707 NewLine(this);
708708
709- char_on_line = -10;
709+ char_on_line = FIRST_CHAR_MINIPAGE;
710710 envir = ' ';
711711 while(ActualPos < end_of_code)
712712 {
@@ -771,7 +771,7 @@
771771 strcpy(ObjType, BoxNames[BoxType]);
772772 UnknownEquType:
773773 recursion--;
774- if(envir=='^') char_on_line = -10; // stronger false;
774+ if(envir=='^') char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
775775 flag = OldFlag;
776776 envir = OldEnvir;
777777 attr = OldAttr;
@@ -1236,7 +1236,7 @@
12361236 end_of_code -= 4;
12371237
12381238 line_term = 's'; //Soft return
1239- if(char_on_line == -20) /* Left one enpty line for new enviroment */
1239+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
12401240 {
12411241 fputc('%', table);
12421242 fputc('%', strip);
@@ -1275,7 +1275,7 @@
12751275 flag = HeaderText;
12761276 envir = ' ';
12771277 ActualPos = ftell(wpd);
1278- char_on_line = -10;
1278+ char_on_line = FIRST_CHAR_MINIPAGE;
12791279 while(ActualPos < end_of_code)
12801280 {
12811281 fread(&by, 1, 1, wpd);
@@ -1298,7 +1298,7 @@
12981298 attr=OldAttr; /* Restore backuped attributes */
12991299 flag = OldFlag;
13001300 envir = OldEnvir;
1301- char_on_line = -10; // stronger false;
1301+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
13021302 recursion--;
13031303
13041304 ExitHeaderFooter:
@@ -1523,7 +1523,7 @@
15231523 OldEnvir= envir;
15241524 recursion++;
15251525
1526- if(char_on_line == -20) /* Left one enpty line for new enviroment */
1526+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
15271527 {
15281528 fputc('%', table);fputc('%', strip);
15291529 NewLine(this);
@@ -1604,7 +1604,7 @@
16041604 }
16051605 Close_All_Attr(attr,strip);
16061606
1607- if(char_on_line <= -10) /* Left one empty line for ending enviroment */
1607+ if(char_on_line <= FIRST_CHAR_MINIPAGE) // Left one empty line for ending enviroment.
16081608 {
16091609 fputc('%', table);fputc('%', strip);
16101610 NewLine(this);
@@ -1623,7 +1623,7 @@
16231623 envir='^'; //Ignore enviroments after table
16241624 fputc('%', table);
16251625 NewLine(this);
1626- char_on_line = -10; // stronger false;
1626+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
16271627
16281628 recursion--;
16291629 flag = OldFlag;
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1_6.cc
--- a/trunk/sources.cc/pass1_6.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1_6.cc Tue May 24 21:48:45 2022 +0200
@@ -836,7 +836,7 @@
836836 end_of_code = Res.ResourceFilePos+BlockOffset+BlockSize;
837837
838838
839- if(char_on_line == -20) /* Left one enpty line for new enviroment */
839+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
840840 {
841841 fputc('%', table);
842842 fputc('%', strip);
@@ -852,9 +852,9 @@
852852 envir='!'; //Ignore enviroments Before
853853 NewLine(this);
854854
855- char_on_line = -10;
856- envir=' ';
857- ActualPos=ftell(wpd);
855+ char_on_line = FIRST_CHAR_MINIPAGE;
856+ envir = ' ';
857+ ActualPos = ftell(wpd);
858858 recursion++;
859859 while (ActualPos < end_of_code)
860860 {
@@ -1090,12 +1090,12 @@
10901090
10911091 attr = OldAttr; //Return saved attributes before placing a formula
10921092
1093- if(char_on_line == -20) /* Left one enpty line for new enviroment */
1093+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
10941094 {
10951095 fputc('%', table);
10961096 fputc('%', strip);
10971097 NewLine(this);
1098- char_on_line = true;
1098+ char_on_line = CHAR_PRESENT;
10991099 }
11001100 if(char_on_line==CHAR_PRESENT) /* make new line for leader of minipage */
11011101 {
@@ -1125,7 +1125,7 @@
11251125 LEqEmpty:
11261126 attr = OldAttr;
11271127 AttrsRestored:
1128- if(envir=='^') char_on_line = -10; // stronger false;
1128+ if(envir=='^') char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
11291129 flag = OldFlag;
11301130 envir = OldEnvir;
11311131
@@ -1680,7 +1680,7 @@
16801680 }
16811681
16821682 line_term = 's'; //Soft return
1683- if(char_on_line == -20) /* Left one enpty line for new enviroment */
1683+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
16841684 {
16851685 fputc('%', table);
16861686 fputc('%', strip);
@@ -1705,7 +1705,7 @@
17051705 flag = HeaderText;
17061706 envir = ' ';
17071707 ActualPos = ftell(wpd);
1708- char_on_line = -10;
1708+ char_on_line = FIRST_CHAR_MINIPAGE;
17091709 while (ActualPos < end_of_code)
17101710 {
17111711 fread(&by, 1, 1, wpd);
@@ -1722,13 +1722,13 @@
17221722 putc('}', strip);
17231723
17241724 line_term = 's'; //Soft return
1725- envir='^'; //Ignore enviroments after header/footer
1725+ envir = '^'; //Ignore enviroments after header/footer
17261726 NewLine(this);
17271727
1728- attr=OldAttr; /* Restore backuped attributes */
1728+ attr = OldAttr; // Restore backuped attributes
17291729 flag = OldFlag;
17301730 envir = OldEnvir;
1731- char_on_line = -10; // stronger false;
1731+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
17321732 recursion--;
17331733
17341734 BadResource:
@@ -2534,7 +2534,7 @@
25342534 line_term = 's'; /* Soft return */
25352535 recursion++;
25362536
2537- if(char_on_line == -20) /* Left one enpty line for new enviroment */
2537+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
25382538 {
25392539 fputc('%', table);fputc('%', strip);
25402540 NewLine(this);
@@ -2610,7 +2610,7 @@
26102610
26112611 this->by = fgetc(wpd);
26122612 }
2613- if(char_on_line <= -10) /* Left one empty line for ending enviroment */
2613+ if(char_on_line <= FIRST_CHAR_MINIPAGE) // Left one empty line for ending enviroment.
26142614 {
26152615 fputc('%', table);fputc('%', strip);
26162616 NewLine(this);
@@ -2629,7 +2629,7 @@
26292629 envir = '^'; //Ignore enviroments after table
26302630 fputc('%', table);
26312631 NewLine(this);
2632- char_on_line = -10; // stronger false;
2632+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
26332633
26342634 recursion--;
26352635
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1abi.cc
--- a/trunk/sources.cc/pass1abi.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1abi.cc Tue May 24 21:48:45 2022 +0200
@@ -487,7 +487,7 @@
487487 if(FieldCount>0)
488488 {
489489 line_term = 's'; /* Soft return */
490- if(char_on_line == -20) /* Left one enpty line for new enviroment */
490+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) /* Left one enpty line for new enviroment */
491491 {
492492 fputc('%', table); fputc('%', strip);
493493 NewLine(this);
@@ -560,7 +560,7 @@
560560 }
561561
562562 FinishTable:
563- if(char_on_line <= -10) /* Left one enpty line for ending enviroment */
563+ if(char_on_line <= FIRST_CHAR_MINIPAGE) /* Left one enpty line for ending enviroment */
564564 {
565565 fputc('%', table);fputc('%', strip);
566566 NewLine(this);
@@ -568,7 +568,7 @@
568568 envir = '^'; //Ignore enviroments after table
569569 fputc('%', table);
570570 NewLine(this);
571- char_on_line = -10; // stronger false;
571+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
572572
573573 recursion--;
574574
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1dcb.cc
--- a/trunk/sources.cc/pass1dcb.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1dcb.cc Tue May 24 21:48:45 2022 +0200
@@ -53,7 +53,7 @@
5353 cq->recursion++;
5454
5555 cq->line_term = 's'; /* Soft return */
56- if(cq->char_on_line == -20) /* Left one enpty line for new enviroment */
56+ if(cq->char_on_line == LEAVE_ONE_EMPTY_LINE) /* Left one enpty line for new enviroment */
5757 {
5858 fputc('%', cq->table);fputc('%', cq->strip);
5959 NewLine(cq);
@@ -99,7 +99,7 @@
9999
100100 fprintf(cq->strip, "\\end{itemize}");
101101 if(OldEnvir=='B') fprintf(cq->strip, "}");
102- if(cq->char_on_line <= -10) /* Left one enpty line for ending enviroment */
102+ if(cq->char_on_line <= FIRST_CHAR_MINIPAGE) // Left one enpty line for ending enviroment.
103103 {
104104 fputc('%', cq->table);fputc('%', cq->strip);
105105 NewLine(cq);
@@ -107,13 +107,13 @@
107107 cq->envir='^'; //Ignore enviroments after table
108108 fputc('%', cq->table);
109109 NewLine(cq);
110- cq->char_on_line = -10; // stronger false;
110+ cq->char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
111111
112112 cq->recursion--;
113113
114- cq->flag=OldFlag;
115- cq->envir=OldEnvir;
116-cq->TAG="ITEMIZE";
114+ cq->flag = OldFlag;
115+ cq->envir = OldEnvir;
116+ cq->TAG = "ITEMIZE";
117117 strcpy(cq->ObjType, "Itemize Start");
118118 }
119119
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1htm.cc
--- a/trunk/sources.cc/pass1htm.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1htm.cc Tue May 24 21:48:45 2022 +0200
@@ -367,7 +367,7 @@
367367 recursion++;
368368
369369 line_term = 's'; /* Soft return */
370- if(char_on_line == -20) /* Left one enpty line for new enviroment */
370+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment
371371 {
372372 fputc('%', table);fputc('%', strip);
373373 NewLine(this);
@@ -413,21 +413,21 @@
413413
414414 fprintf(strip, "\\end{itemize}");
415415 if(OldEnvir=='B') fprintf(strip, "}");
416- if(char_on_line <= -10) /* Left one enpty line for ending enviroment */
416+ if(char_on_line <= FIRST_CHAR_MINIPAGE) // Left one enpty line for ending enviroment.
417417 {
418418 fputc('%', table);fputc('%', strip);
419419 NewLine(this);
420420 }
421- envir='^'; //Ignore enviroments after table
421+ envir = '^'; //Ignore enviroments after table
422422 fputc('%', table);
423423 NewLine(this);
424424 char_on_line = -10; // stronger false;
425425
426426 recursion--;
427427
428- flag=OldFlag;
429- envir=OldEnvir;
430-TAG="ITEMIZE";
428+ flag = OldFlag;
429+ envir = OldEnvir;
430+ TAG = "ITEMIZE";
431431 strcpy(ObjType, "Itemize Start");
432432 }
433433
@@ -550,7 +550,7 @@
550550 if(FieldCount>0)
551551 {
552552 line_term = 's'; /* Soft return */
553- if(char_on_line == -20) /* Left one enpty line for new enviroment */
553+ if(char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
554554 {
555555 fputc('%', table);fputc('%', strip);
556556 NewLine(this);
@@ -596,7 +596,7 @@
596596
597597 ReadXMLTag();
598598 }
599- if(char_on_line <= -10) /* Left one enpty line for ending enviroment */
599+ if(char_on_line <= FIRST_CHAR_MINIPAGE) // Left one enpty line for ending enviroment.
600600 {
601601 fputc('%', table);fputc('%', strip);
602602 NewLine(this);
@@ -604,13 +604,13 @@
604604 envir='^'; //Ignore enviroments after table
605605 fputc('%', table);
606606 NewLine(this);
607- char_on_line = -10; // stronger false;
607+ char_on_line = FIRST_CHAR_MINIPAGE; // stronger false;
608608
609609 recursion--;
610610
611611 flag = OldFlag;
612612 envir = OldEnvir;
613-TAG="TABLE";
613+ TAG = "TABLE";
614614 strcpy(ObjType, "Table Start");
615615 }
616616
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1ole.cc
--- a/trunk/sources.cc/pass1ole.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1ole.cc Tue May 24 21:48:45 2022 +0200
@@ -55,7 +55,7 @@
5555
5656 if(Verbosing >= 1) printf(_("Opening OLE archive:\n"));
5757
58- OleFS = (COLEFS *)malloc (sizeof(COLEFS)); //Mount OLE filesystem
58+ OleFS = (COLEFS *)malloc(sizeof(COLEFS)); //Mount OLE filesystem
5959 if(OleFS==NULL) {RunError(0x204);return -1;}
6060
6161 memset(OleFS,0,sizeof(COLEFS));
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/pass1rtf.cc
--- a/trunk/sources.cc/pass1rtf.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/pass1rtf.cc Tue May 24 21:48:45 2022 +0200
@@ -1156,7 +1156,7 @@
11561156 cq->recursion++;
11571157
11581158 cq->line_term = 's'; //Soft return
1159- if(cq->char_on_line == -20) /* Left one enpty line for new enviroment */
1159+ if(cq->char_on_line == LEAVE_ONE_EMPTY_LINE) // Left one enpty line for new enviroment.
11601160 {
11611161 fputc('%', cq->strip);
11621162 NewLine(cq);
@@ -1174,7 +1174,7 @@
11741174
11751175 cq->envir = ' ';
11761176 cq->flag = HeaderText;
1177- cq->char_on_line = -10;
1177+ cq->char_on_line = FIRST_CHAR_MINIPAGE;
11781178 while (!feof(cq->wpd) && CurlyBaraceStack > 0)
11791179 {
11801180 cq->subby=RTFLoadKeyword(cq);
@@ -1224,7 +1224,7 @@
12241224 cq->attr = OldAttr;
12251225 cq->flag = OldFlag;
12261226 cq->envir= OldEnvir;
1227- cq->char_on_line = -10;
1227+ cq->char_on_line = FIRST_CHAR_MINIPAGE;
12281228
12291229 strcpy(cq->ObjType, ((HFtype & 3) <= 1)?"Header":"Footer");
12301230 }
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/wp2l_lib.cc
--- a/trunk/sources.cc/wp2l_lib.cc Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/wp2l_lib.cc Tue May 24 21:48:45 2022 +0200
@@ -74,23 +74,23 @@
7474 -10 Line before nested enviroment change
7575 -1 No valic character on line, but previous line plays like character
7676 0 No valid character on the line
77- 1 Valid character placed on the line*/
77+ 1 Valid character placed on the line */
7878
7979 /*WP2LaTex switches: -1:disabled; 0:automatically enabled; 1: forced to enable*/
80-SBYTE Accents = false,
80+SBYTE Accents = STYLE_NOTUSED,
8181 AmsMath = -1,
8282 Amssymb = -1, // Totaly Disabled
8383 Arevmath = -1, // Totaly Disabled
84- Cyrillic = false,
85- cjHebrew = false,
86- colors = false, // Only for LaTex 2.0e
84+ Cyrillic = STYLE_NOTUSED,
85+ cjHebrew = STYLE_NOTUSED,
86+ colors = STYLE_NOTUSED, // Only for LaTex 2.0e
8787 textcomp = -1,
88- EndNotes=false,
88+ EndNotes = STYLE_NOTUSED,
8989 FancyHdr = -1,
9090 Columns = 1, // -1 disabled; 0 auto two; 1 auto multi; 2 forced two; >2 forced multi*/
9191 InputPS = IMG_graphicx, // -1 disabled; 0 auto InputPS.sty; 1 InputPS.sty; 2 auto graphicx.sty; 3 graphicx.sty; 4 auto epsfig.sty; 5 epsfig.sty; 8 auto graphics.sty; 9 graphics.sty;
92- pifont = false,
93- PostScript = false,
92+ pifont = STYLE_NOTUSED,
93+ PostScript = STYLE_NOTUSED,
9494 MakeIdx = -1,
9595 Wasy = -1, // Totaly Disabled
9696 LaTeXsym = 0,
@@ -102,9 +102,9 @@
102102 rus_yo = 0,
103103 LongTable = -1,
104104 SaveWPG = -1,
105- Rotate = false,
106- Scalerel = false,
107- LineNo = false;
105+ Rotate = STYLE_NOTUSED,
106+ Scalerel = STYLE_NOTUSED,
107+ LineNo = STYLE_NOTUSED;
108108 bool Index = false,
109109 Interactive = true,
110110 NFSS = false,
diff -r 228af17617b5 -r fadb556dc9cb trunk/sources.cc/wp2latex.h
--- a/trunk/sources.cc/wp2latex.h Mon May 23 08:03:26 2022 +0200
+++ b/trunk/sources.cc/wp2latex.h Tue May 24 21:48:45 2022 +0200
@@ -17,8 +17,8 @@
1717
1818 #define LineLength 80 /* Split lines after more than LineLength charcters */
1919
20-#define VersionWP2L "3.pre107"
21-#define VersionDate "23 May 2022" /* day (space) month (space) full year */
20+#define VersionWP2L "3.107"
21+#define VersionDate "24 May 2022" /* day (space) month (space) full year */
2222
2323
2424 /* Constants for a flag InputPS */
@@ -575,10 +575,10 @@
575575 typedef enum
576576 {
577577 LEAVE_ONE_EMPTY_LINE = -20, /**< Left one empty line for new enviroment. */
578- FIRST_CHAR_MINIPAGE = -10, /**< First line of minipages. */
578+ FIRST_CHAR_MINIPAGE = -10, /**< Line before nested enviroment change, first line of minipages. */
579579 JUNK_CHARS = -1, /**< The line contains not text directives. */
580- NO_CHAR = 0,
581- CHAR_PRESENT = 1,
580+ NO_CHAR = 0, /**< No valid character on the line. */
581+ CHAR_PRESENT = 1, /**< Valid character placed on the line. */
582582 } TCharOnLine;
583583
584584
Show on old repository browser