1 | diff -Naur -x djview.desktop E:\trees\djview\trunk\..\vendor\current/build_os2.cmd E:\trees\djview\trunk/build_os2.cmd
|
---|
2 | --- E:\trees\djview\trunk\..\vendor\current/build_os2.cmd 1970-01-01 01:00:00.000000000 +0100
|
---|
3 | +++ E:\trees\djview\trunk/build_os2.cmd 2016-11-21 14:14:54.000000000 +0100
|
---|
4 | @@ -0,0 +1,309 @@
|
---|
5 | +/* djview Build Script */
|
---|
6 | +/* version history */
|
---|
7 | +/* version 1.0.0 from 18.11.2016 Silvan (first edition) */
|
---|
8 | +
|
---|
9 | +/* init the version string (don't forget to change) */
|
---|
10 | +version = "1.0.0"
|
---|
11 | +version_date = "18.11.2016"
|
---|
12 | +'@echo off'
|
---|
13 | +
|
---|
14 | +parse arg command option
|
---|
15 | +parse source . . scriptFile
|
---|
16 | +
|
---|
17 | +/* init the required vars */
|
---|
18 | +qRC = 0
|
---|
19 | +mRC = 0
|
---|
20 | +buildDir = strip(directory(),'T','\') /* Make sure we have no trailing backslash */
|
---|
21 | +sourceDir = FixDir(filespec('D', scriptFile) || filespec('P', scriptFile))
|
---|
22 | +vendorDir = sourceDir || '\..\vendor\current'
|
---|
23 | +diffDir = sourceDir || '\..\'
|
---|
24 | +srcDir = sourceDir || '\src'
|
---|
25 | +OS2Dir = sourceDir || '\os2'
|
---|
26 | +installDir = buildDir || '\install'
|
---|
27 | +installDirT= installDir
|
---|
28 | +qErrorFile = buildDir||'\qmake.err'
|
---|
29 | +qOutFile = buildDir||'\qmake.out'
|
---|
30 | +mErrorFile = buildDir||'\make.err'
|
---|
31 | +mOutFile = buildDir||'\make.out'
|
---|
32 | +qt4bin = '%unixroot%\usr\lib\qt4\bin\'
|
---|
33 | +
|
---|
34 | +/* get the djview version */
|
---|
35 | +djview_version = '0.0.0'
|
---|
36 | +djview_build = ' '
|
---|
37 | +call version
|
---|
38 | +internal_build = translate(djview_version, '_', '.')
|
---|
39 | +
|
---|
40 | +/* get some info from djview_os2.pri */
|
---|
41 | +psDir = ' '
|
---|
42 | +
|
---|
43 | +title = "djview for OS/2 and OS/2-based systems build script v" || version || " from " || version_date
|
---|
44 | +say title
|
---|
45 | +say
|
---|
46 | +say "Build directory :" buildDir
|
---|
47 | +say "Source directory :" sourceDir
|
---|
48 | +say
|
---|
49 | +say "djview version :" djview_version
|
---|
50 | +say " build :" djview_build
|
---|
51 | +say
|
---|
52 | +
|
---|
53 | +/* translate command to all upercase */
|
---|
54 | +command = translate(command)
|
---|
55 | +
|
---|
56 | +if command = "" then signal help
|
---|
57 | +
|
---|
58 | +
|
---|
59 | +if command = "INSTALL" then do
|
---|
60 | + if option \== "" then do
|
---|
61 | + djview_build = option
|
---|
62 | + end
|
---|
63 | + select
|
---|
64 | + when djview_build \== "" then do
|
---|
65 | + zipFile = installDir || '\djview-' || internal_build || '-' || djview_build || '.zip'
|
---|
66 | + end
|
---|
67 | + otherwise do
|
---|
68 | + signal help
|
---|
69 | + end
|
---|
70 | + end
|
---|
71 | +end
|
---|
72 | +
|
---|
73 | +/* now we translate also the option */
|
---|
74 | +option = translate(option)
|
---|
75 | +
|
---|
76 | +if sourceDir \== buildDir then do
|
---|
77 | + say "Shadow build in progress ..."
|
---|
78 | + say
|
---|
79 | +end
|
---|
80 | +
|
---|
81 | +say "Executing command: "command option
|
---|
82 | +
|
---|
83 | +select
|
---|
84 | + when command = "MAKE" & option = "CLEAN" then do
|
---|
85 | +
|
---|
86 | + say "cleaning the tree"
|
---|
87 | + call make 'distclean'
|
---|
88 | +
|
---|
89 | + say "please execute this script again with 'make' to build djview"
|
---|
90 | +
|
---|
91 | + end
|
---|
92 | + when command = "MAKE" then do
|
---|
93 | +
|
---|
94 | + say "creating djview makefile"
|
---|
95 | + call qmake
|
---|
96 | +
|
---|
97 | + if qRC = 0 then do
|
---|
98 | + say "building djview"
|
---|
99 | + if option = "" then do
|
---|
100 | + call make
|
---|
101 | + end
|
---|
102 | + else do
|
---|
103 | + call make 'debug'
|
---|
104 | + end
|
---|
105 | + end
|
---|
106 | +
|
---|
107 | + end
|
---|
108 | +
|
---|
109 | + when command = "INSTALL" then do
|
---|
110 | +
|
---|
111 | +/* first delete everything */
|
---|
112 | + call deleteall
|
---|
113 | +
|
---|
114 | +/* create the installDir,and the translation subdir */
|
---|
115 | + ok = SysMkDir(installDir)
|
---|
116 | + ok = SysMkDir(installDirT)
|
---|
117 | +
|
---|
118 | +/* copy the exe */
|
---|
119 | + ok = SysCopyObject(buildDir||'\src\djview.exe',installDir)
|
---|
120 | +
|
---|
121 | +/* copy all dll */
|
---|
122 | + ok = SysFileTree(buildDir||'\src\*.dll', rm.,'FOS')
|
---|
123 | + do i = 1 to rm.0
|
---|
124 | + ok = SysCopyObject(rm.i, installDir)
|
---|
125 | + end
|
---|
126 | +
|
---|
127 | +/* copy the readme */
|
---|
128 | + rm.0 = 1
|
---|
129 | + rm.1 = 'readme.os2'
|
---|
130 | + do i = 1 to rm.0
|
---|
131 | + cmdtorun = 'sed "s;_VERSION_;' || djview_version || ';g" ' || os2Dir || '\' || rm.i || ' | sed "s;_BUILD_;' || djview_build || ';g" >' || installDir || '\' || rm.i
|
---|
132 | + address cmd cmdtorun
|
---|
133 | + end
|
---|
134 | +
|
---|
135 | +/* copy different stuff */
|
---|
136 | + rm.0 = 3
|
---|
137 | + rm.1 = 'NEWS'
|
---|
138 | + frmDir.1 = sourceDir
|
---|
139 | + toDir.1 = installDir
|
---|
140 | + rm.2 = 'COPYRIGHT'
|
---|
141 | + frmDir.2 = sourceDir
|
---|
142 | + toDir.2 = installDir
|
---|
143 | + rm.3 = 'COPYING'
|
---|
144 | + frmDir.3 = sourceDir
|
---|
145 | + toDir.3 = installDir
|
---|
146 | + do i = 1 to rm.0
|
---|
147 | + cmdtorun = 'copy ' || frmDir.i || '\' || rm.i || ' ' || toDir.i
|
---|
148 | + address cmd cmdtorun
|
---|
149 | + end
|
---|
150 | +
|
---|
151 | +/* create the qm files from ts files */
|
---|
152 | + ok = SysFileTree(srcDir||'\*.ts', rm.,'FO')
|
---|
153 | + do i = 1 to rm.0
|
---|
154 | + fileName = filespec('N',rm.i)
|
---|
155 | + fileName = left(fileName,lastpos('.', fileName)-1) || '.qm'
|
---|
156 | + cmdtorun = qt4bin || 'lrelease ' || rm.i || ' -qm ' || installDirT || '\' || fileName
|
---|
157 | + address cmd cmdtorun
|
---|
158 | + end
|
---|
159 | +
|
---|
160 | +/* zip all dynamic stuff */
|
---|
161 | + ok = directory(installDir)
|
---|
162 | + cmdtorun = 'zip -r ' || zipFile || ' * -x *.zip'
|
---|
163 | + address cmd cmdtorun
|
---|
164 | + ok = directory(buildDir)
|
---|
165 | +
|
---|
166 | +/* zip all icons */
|
---|
167 | + ok = directory(os2Dir)
|
---|
168 | + cmdtorun = 'zip ' || zipFile || ' *.ico'
|
---|
169 | + address cmd cmdtorun
|
---|
170 | + ok = directory(buildDir)
|
---|
171 | +
|
---|
172 | + end
|
---|
173 | +
|
---|
174 | + when command = "UNINSTALL" then do
|
---|
175 | +
|
---|
176 | + call deleteall
|
---|
177 | +
|
---|
178 | + end
|
---|
179 | +
|
---|
180 | + when command = "DIFF" then do
|
---|
181 | +
|
---|
182 | + address cmd 'diff -Naur ' || vendorDir || ' ' || sourceDir || ' -x djview.desktop >' || diffDir || 'djview_' || djview_version || '_' || djview_build || '.diff'
|
---|
183 | +
|
---|
184 | + end
|
---|
185 | +
|
---|
186 | + otherwise do
|
---|
187 | + say 'Unknown parameter "'command'" - aborting...'
|
---|
188 | + exit 1
|
---|
189 | + end
|
---|
190 | +end
|
---|
191 | +
|
---|
192 | +/* cleanup the mess */
|
---|
193 | +error:
|
---|
194 | +
|
---|
195 | +if qRC = 0 & mRC = 0 then do
|
---|
196 | + ok = SysFileDelete(mOutFile)
|
---|
197 | + ok = SysFileDelete(mErrorFile)
|
---|
198 | + ok = SysFileDelete(qOutFile)
|
---|
199 | + ok = SysFileDelete(qErrorFile)
|
---|
200 | +end
|
---|
201 | +else do
|
---|
202 | + if mRC <> 0 then do
|
---|
203 | + say "Alarm! Make errors occured! Look at "mOutFile" and "mErrorFile
|
---|
204 | + end
|
---|
205 | + if qRC <> 0 then do
|
---|
206 | + say "Alarm! qMake errors occured! Look at "qOutFile" and "qErrorFile
|
---|
207 | + end
|
---|
208 | +end
|
---|
209 | +
|
---|
210 | +exit 0
|
---|
211 | +
|
---|
212 | +qmake:
|
---|
213 | + sourceFile = sourceDir || '/djview.pro'
|
---|
214 | + address cmd 'qmake ' sourceFile ' 2>'qErrorFile' 1>'qOutFile
|
---|
215 | +
|
---|
216 | + qRC = RC
|
---|
217 | + if qRC <> 0 then do
|
---|
218 | + call beep 880, 20
|
---|
219 | + say "Alarm! qmake RC="RC
|
---|
220 | + end
|
---|
221 | +return
|
---|
222 | +
|
---|
223 | +make:
|
---|
224 | + makeparm = arg(1)
|
---|
225 | + address cmd 'make 'makeparm' 2>'mErrorFile' 1>'mOutFile
|
---|
226 | + mRC = RC
|
---|
227 | + if mRC <> 0 then do
|
---|
228 | + call beep 880, 20
|
---|
229 | + say "Alarm! make RC="RC
|
---|
230 | + end
|
---|
231 | +return
|
---|
232 | +
|
---|
233 | +
|
---|
234 | +deleteall: /* delete installDir (including subdirs) except zip files */
|
---|
235 | +
|
---|
236 | + say "Delete all files except *zip in " installDir
|
---|
237 | + ok = SysFileTree(installDir||'\*', rm.,'FOS')
|
---|
238 | + do i = 1 to rm.0
|
---|
239 | + if translate(right(rm.i, 3)) \== 'ZIP' then do
|
---|
240 | + ok = SysFileDelete(rm.i)
|
---|
241 | + end
|
---|
242 | + end
|
---|
243 | +
|
---|
244 | + say "Delete zip file " zipFile
|
---|
245 | + ok = SysFileDelete(zipFile)
|
---|
246 | +
|
---|
247 | + say "Removing subdirs from " || installDir
|
---|
248 | + ok = SysFileTree(installDir||'\*', rm.,'OS')
|
---|
249 | + do i = 1 to rm.0
|
---|
250 | + ok = SysRmDir(rm.i)
|
---|
251 | + end
|
---|
252 | +
|
---|
253 | + call SysSleep(5)
|
---|
254 | +return
|
---|
255 | +
|
---|
256 | +/**
|
---|
257 | + * Fixes the directory path by a) converting all slashes to back
|
---|
258 | + * slashes and b) ensuring that the trailing slash is present if
|
---|
259 | + * the directory is the root directory, and absent otherwise.
|
---|
260 | + *
|
---|
261 | + * @param dir the directory path
|
---|
262 | + * @param noslash
|
---|
263 | + * optional argument. If 1, the path returned will not have a
|
---|
264 | + * trailing slash anyway. Useful for concatenating it with a
|
---|
265 | + * file name.
|
---|
266 | + */
|
---|
267 | +FixDir: procedure expose (Globals)
|
---|
268 | + parse arg dir, noslash
|
---|
269 | + noslash = (noslash = 1)
|
---|
270 | + dir = translate(dir, '\', '/')
|
---|
271 | + if (right(dir, 1) == '\' &,
|
---|
272 | + (noslash | \(length(dir) == 3 & (substr(dir, 2, 1) == ':')))) then
|
---|
273 | + dir = substr(dir, 1, length(dir) - 1)
|
---|
274 | + return dir
|
---|
275 | +
|
---|
276 | +/**
|
---|
277 | + * reads the version.cpp and gets the djview version from there
|
---|
278 | + */
|
---|
279 | +version: procedure expose djview_version djview_build srcDir
|
---|
280 | +
|
---|
281 | + djviewVer = ' '
|
---|
282 | + /* djview Version file */
|
---|
283 | + Version = srcDir || "\version.h"
|
---|
284 | +
|
---|
285 | + do until lines(Version) = 0
|
---|
286 | + verline = linein(Version)
|
---|
287 | + if substr(Verline,10,18) = "DJVIEW_VERSION_STR" then do
|
---|
288 | + parse var verline . ' ' . ' ' . djviewVer
|
---|
289 | + end
|
---|
290 | + end
|
---|
291 | +
|
---|
292 | + ok = stream(Version,'c','close')
|
---|
293 | + if djviewVer \== ' ' then do
|
---|
294 | + djviewVer = strip(djviewVer,,'"')
|
---|
295 | + parse var djviewVer ver '.' maj '.' min '.' djview_build
|
---|
296 | + djview_version = ver || '.'|| maj || '.' || min
|
---|
297 | + end
|
---|
298 | +
|
---|
299 | + if djview_build == '' then do
|
---|
300 | + djview_build = 'GA'
|
---|
301 | + end
|
---|
302 | +
|
---|
303 | + return
|
---|
304 | +
|
---|
305 | +help:
|
---|
306 | + say "Parameters:"
|
---|
307 | + say " make"
|
---|
308 | + say " make debug"
|
---|
309 | + say " make clean"
|
---|
310 | + say " install build (build overwrites what this script finds)"
|
---|
311 | + say " uninstall"
|
---|
312 | + say " diff (creates a diff from vendor to trunk)"
|
---|
313 | +exit 255
|
---|
314 | diff -Naur -x djview.desktop E:\trees\djview\trunk\..\vendor\current/djview.pro E:\trees\djview\trunk/djview.pro
|
---|
315 | --- E:\trees\djview\trunk\..\vendor\current/djview.pro 1970-01-01 01:00:00.000000000 +0100
|
---|
316 | +++ E:\trees\djview\trunk/djview.pro 2016-11-18 15:36:34.000000000 +0100
|
---|
317 | @@ -0,0 +1,5 @@
|
---|
318 | +TEMPLATE = subdirs
|
---|
319 | +
|
---|
320 | +SUBDIRS += src
|
---|
321 | +
|
---|
322 | +src.file=src/djview.pro
|
---|
323 | \ No newline at end of file
|
---|
324 | diff -Naur -x djview.desktop E:\trees\djview\trunk\..\vendor\current/os2/djvuapp_os2.ico E:\trees\djview\trunk/os2/djvuapp_os2.ico
|
---|
325 | --- E:\trees\djview\trunk\..\vendor\current/os2/djvuapp_os2.ico 1970-01-01 01:00:00.000000000 +0100
|
---|
326 | +++ E:\trees\djview\trunk/os2/djvuapp_os2.ico 2016-11-18 16:23:32.000000000 +0100
|
---|
327 | @@ -0,0 +1,5 @@
|
---|
328 | +BA(HCIØ |
---|
329 | 0`ÿÿÿCIØ |
---|
330 | |
---|
331 | 00ÿÿÿå®yYU$¥oÈðõÉf0Bpµ²ÔÂ@x£jikÀ¢èøÅ;Þ|;ÈV0s3z9Çÿe€¹kŠÍ"~ÁÛǵMVqNPBiãÿݳÛÙÙÛæÈþ·À²²«xynúàôóãUŸ
|
---|
332 | C9Y(v1Š×¥u^Hš»ÎYX[SvœÒÿÒh0bnn¡¡¡uQIÊÊÊöâÌd±åTobaÒ² o,Œz;R9ŽîßÂ\Msáêð~~;·bUsbÔÿáÿá¥ÅÞÎæÒ€üùÓåݹd0Ì`2'€ãSATo`vG·€¢áó±@fúìÂ^izê¿
|
---|
333 | BoÚÐËtk{u_t±Ù~iîÿîÄñÇÉœŒj.ôÖŒU7Üî௱èääŠqøÖ sKÉgš¥}nýýæ_,kòïÒT%^B§µ¿k-±ìâ¢àïŸñçŸbpâáÈõôóõͧt¹æ+|¹q/x4åÝÓ±v<»X}v7`Û×ãùÍÓÿÁd-z.~Ëmª_Lx®jaxn2m€kx±§ÎŒÖÑÑb©×~=F ÎÌßÙÞÿÉáÊgR
|
---|
334 | Z3©©©xvw]îìÇè̶æðÛ»»»íÚ°ve6ÔQbîíìòä×KJã_&®uš]UgâÒ¬q5Ye/¥`VÑÆÅÙóÓz7kÝâšúçžëËúúÜw3ÄQ-îú×ųªýýñb8c.VñÃúñÉfT}%y¹Ü»ñâÀÓÄ·ËñÏÂÂÂI?pBŠ}~}õÛŠ___rrrQ=r³³³`)+ÃéäÔ}C¹g0LåÒÆmPtK€ñж ìà±l³®]EmƶµttÜí¥g)¶èÏœñί÷áµ¥|æõœãÞÛìݹùôÕ÷Û«hcoF0U&ãë³·[?ã×µäÌûûúá×À£vWCt÷ÐðÇk³át¯÷öíBA(CIØ |
---|
335 | @ÿÿÿCIØ |
---|
336 | ÿÿÿé¬|bßÿW,ôËK¬ª¢žE²íÌÞÑ|aýòÈq¬ÏÅáÊ«àéªGÌ}:xâüâm£Ëœ»³sH°ŒÚîîØÆzœé4ÃbIMf¶ùÞ©µÛÂgyãõà |
---|
337 | åäàßûïâäÆŠãŸn2·€£µµµ
|
---|
338 | +×ÈÄÐêîòÙПybÓüÓNxlôæ»EÄøéÚ¡ÙÒÒ~AÊž«éζïèÌŠ³œœùõòZ(qgAq0}ûúת«ªâÇ€ ¶¹zäÝŽåõÕóÍ¡BÇŒ¬ªÕŬÑÅÅh£ÉîéçrX
|
---|
339 | á}núØãèÅËëe/ĶŽÁÂÁðâØÞëØìí¶ßýËhóÕ¶jOåÕ«ÜÜÛÞÞ õòÓìúÇxkéÎ ûùç°sTëñšŸëÝÏüå³àÕÉÀ«ñâ§ðïïåçèe,|ëÚ¯»Œ»þýôíòÁãòãYëêÜÑÒÑÓ»¬ÅãÌËËËüëŸóß³õ×§Ã±š€€§õêÃçáÅúúúéç«gJèõº{°°°±}À¥§š³o0ýùÏ÷Ð
|
---|
340 | g6××ןÈúûá«ÚÈŸm8eGòãÂâÛÚïÓ¡z²ÔÊÊIžòàúÔöõ×|<lAôÝ»ñã¹íÞÈìÖš[+{_3
|
---|
341 | 0ÂDºîÜǪš€íÉ Þ÷ìÎøðëzeØúÍçΪííìæßÔèÛÁäÍÆÊÍwbèßžûæ·éíÀÚóóòêääàßßäڻƹžŸª€Á±¯qPòïèåÔ§äÕ²ÛÑËø÷äïËŠIuiúíÄÌÂÂ÷÷öüõÎäããÆ¬qDyfõÔ˹¯éééúâ±úÙ¢øÔ¡ìÏ®³ üüøúíßèôÄR{h}ôîÇðíË¥œ£¶ÄšiCFÂõù÷Ò®~füüñø÷êùúÛéÜÖöЀBA(CIØ |
---|
342 | ÿÿÿCIX |
---|
343 | ÿÿÿ
|
---|
344 | ÞõÒËîxH@·óÊÉÎ=ÈâüÓÇ«hhœôåÀÞÙåuöíæ[¹ç°ŸÍ_!ÑáÔË6ÛÖ»£Ê»ºwšÓçÖ ²·±·éç®ìåÓ~oõ÷Õ°ŠªûÞš×ǹֳîÔ«
|
---|
345 | ÇÔÚôõôçìêçÌêïœÆŒÑõÚžº¯ÄR¿îÄÀÅÖÎÌûç¶äÞÙ©¥æóÍ~Wøøçíâ·êõ×ãäâÒÈÂëáÂúýôõà°ùóÍïïïúìÀýõî~ÛëÕßÙÔªžæèŒA²íðèÆiñãÎîÌÇÂÍìÛ¶ßÞÞÜÐÈîçŸöã·ûüûêèæôÕêÐù÷÷÷ÚªöúÚÉÀÔÔ¹ßÕÐíêïðÞ°æààÒÇ·ßß㮢¹TŒë|öòññóñóîãמ ÓʺõîêïÞ¶~küùøùû÷îäÐáßÛíÞ²ééé=·ôääåßÙÑßÔÍýþþ÷øÙùÙ©õäµìãÃ~iß×ÒÉŸÓÒÇÀ~mßßáêèèòòñõÓäåäîâžþþþøóÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿüÿÿÿÿðÿÿÿøÿÿàÀÀÀÀÀÀàààààððððððøøøøø?øÿüÿÿüÿÿÿÿÿÿÿÿÿC-ŽSE&a*E |
---|
346 | *E |
---|
347 | *E |
---|
348 | ÅY*E |
---|
349 | Å?9{Lm/*E |
---|
350 | ?³9i+®ý^ŠQ
|
---|
351 | +*E |
---|
352 | Ë«š8 LmÞÞ^ŠQîî |
---|
353 | |
---|
354 | ÐÍd3ÒÊOE |
---|
355 | ÖRÚÙÄD¯.....ÏÏ |
---|
356 | Ò€ÊÊ55 |
---|
357 | ©©©]OE |
---|
358 | 4UÌÐ3ggÒ333ÒÊ5 |
---|
359 | ©©©©Ò©©©©©©©©©©=E |
---|
360 | Ôkï<
|
---|
361 | 5©©©©©©©©©©©©©©h!SBGS!h©©©©©©}üMW'» |
---|
362 | Ê©©©©©©©©©©©©aGySŸÈÈŸÜBya©©©©ö7¬§l |
---|
363 | '»D€©©©©©©©©©©BëzÃqqqqÕZG2ah©}ö7¬t |
---|
364 | »')óÒ©©©©©©©©©aG¥žÃÃJ¡ºººº%%ŽâŽhŽh©}A€ |
---|
365 | »'Àh©©©©©©©ŽõížVÃÃJ¡ººœº%ÿ%êBᎎ}}}}Ê |
---|
366 | ;¶²xê©©©©©© |
---|
367 | õΞžVÃJJ¡ºo µ¿¿ÿêBá!}}}}Êþ |
---|
368 | ;<;d |
---|
369 | ©©©}}©Î$žžVÃJºqºo µ¿öö}ZB©}}}}5þ |
---|
370 | u;[ |
---|
371 | }}}}}ŽáÛí$çžVÃJºìºoµ¿¿öö%Sa}}}}5þÐuuê}}}}}SõÛ$$çIIëJJºqo£¿¿¿¿ÿêy}}}ö5dÐuó€©}}© |
---|
372 | áûjÎíçÆÆ>zJºqo£¿¿¿¿¿%hööödв<ÀÒ©}}è¹ |
---|
373 | >IÎIݺº¡ºw|¿¿¿%÷%aŸ:öö |
---|
374 | dв<²3h}}\ߢÂXX |
---|
375 | ¹çÆJºqKwô%ooô°qZ\öö |
---|
376 | dÐN<ä©öö\Ü¢újÎ |
---|
377 | |
---|
378 | ¥Æ>JJ¡°
|
---|
379 |
|
---|
380 | °|oq°ôºøöêÍÐN<ä[}öö\S¢jÎí |
---|
381 | >ç>>ÃJ°¥
|
---|
382 |
|
---|
383 | I°ºqõôºÕèhÍÐN±²öö\òåújí¹IV¥ëÃzI
|
---|
384 |
|
---|
385 | °IKÃIôºnhÍбbehöö\"ØÂÂúÛ¹IV¥Çì>¥
|
---|
386 | é¡IzIzJZ\©Í±5\sŽÂXÛ¹íVÇÇÃ>>ÃéTÃIôJJìá©©Íб±²È |
---|
387 | ŽæÂúj$žžI¥V¥¥VñT¡VÝzJÃq!}e±hÂjÎ$žVVVžžV·ãzÃÃÃÃÃZê}e1[ |
---|
388 | cúj$$$žžçžçÝVVVVªae1Óùö}ê~újÎ$$$$$IÝžžž6Ž©ó1eh©h~újjjÎÎíÛIvΞç6Zh,11Ê}hcÂúújjjÛÛÎÎí6©1×ð3}h©cúúÛÛ~6h}pþ}h©ª666ªªê |
---|
389 | ©Qpð©0`Šp(Ñö50É#ppe |
---|
390 | |
---|
391 | Fµ}x,pÁŒÊ©H_fö |
---|
392 | grrð3hHöf} |
---|
393 | €x |
---|
394 | ©5ÍP@ÍÐÐ×(à[[ÍÍdÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿáÿÿÿÁÿÿÿÿÿÀÀÀÀÀÀààààààððÿðÿÿÿÿÿÿµ
|
---|
395 | ø |
---|
396 | ø©-Ž7©¹#ñbÙÙ5jN7©¹Ø4ð~~~ |
---|
397 | |
---|
398 | |
---|
399 | ãWVÒÒÝ,?7©È;TàÝÒ!FzËËwæ¿vµ©¹¬Äæææææ¿¿æ9\+m+OÛß¿æwZ UÐ]¿¿¿¿¿¿fOtPÌ1ìÍ9Ê/ |
---|
400 | %Rââ,¿¿¿¿v9ζ6 |
---|
401 | ù«ÖÀOÍQ€/á·¿vvÉËŸÆÚÞE«aªûÑÏ+šÉÜ*H¿ÉÉv(çÆÚÞE«aœííS+€Ü0÷ŠæÉÜ&ç
|
---|
402 | yE«aªíí{ÕÛ0÷D2fÜ&Í(ä¥kGÓùEýaLû{ü\Sf0÷Ðážo)G±Âòýó$YÖlÁ>JAË0¢á@Mä)kG6ùÅïK>«Ôh<úAß0¢á@Mé ê
|
---|
403 | y6eiKÔ>eh<Aw0¢[pö×ä¥6£ºÂyiÇÓK¯ùåíæ0 |
---|
404 | x§ =ä ¯±6|¯¯>9æ0 |
---|
405 | þMX Æ6` |
---|
406 | |
---|
407 | |
---|
408 | sSÉ,2nvÉX rrÆ
|
---|
409 | g°€ëCËvè 8uư€³.É^cÿééé®qʧ²ôÉ»'îî_ÉIBw"3íõŒÜwÜwdßf
|
---|
410 | +}ÉÉæf:9fËßËfÿÿÿÿÿøÿñÀÀÀÿÿ0I deD'5" |
---|
411 | 1t7uP<aj2 |
---|
412 | N$O@y:vb(K/)w&SZ
|
---|
413 | +>~`;}G4M+!68\qm |
---|
414 | Q%
|
---|
415 | WlRH|= |
---|
416 | F]i?r,9JU ^kV#3{ |
---|
417 | BpXTc.zY_Lf[nChEo-
|
---|
418 | x*gAs
|
---|
419 | \ No newline at end of file
|
---|
420 | diff -Naur -x djview.desktop E:\trees\djview\trunk\..\vendor\current/os2/readme.os2 E:\trees\djview\trunk/os2/readme.os2
|
---|
421 | --- E:\trees\djview\trunk\..\vendor\current/os2/readme.os2 1970-01-01 01:00:00.000000000 +0100
|
---|
422 | +++ E:\trees\djview\trunk/os2/readme.os2 2016-11-18 16:33:54.000000000 +0100
|
---|
423 | @@ -0,0 +1,244 @@
|
---|
424 | +DjView4 _VERSION_ _BUILD_ ReadMe
|
---|
425 | +
|
---|
426 | +
|
---|
427 | +
|
---|
428 | +0. CONTENTS OF THIS FILE
|
---|
429 | +========================
|
---|
430 | +
|
---|
431 | +1. INTRODUCTION
|
---|
432 | +
|
---|
433 | +2. REQUIREMENTS
|
---|
434 | +
|
---|
435 | +3. INSTALLATION
|
---|
436 | +
|
---|
437 | +4. LICENSE, COPYRIGHT, DISCLAIMER
|
---|
438 | +
|
---|
439 | +5. BUGREPORTS
|
---|
440 | +
|
---|
441 | +6. CREDITS
|
---|
442 | +
|
---|
443 | +7. SUPPORT AND DONATIONS
|
---|
444 | +
|
---|
445 | +8. HISTORY
|
---|
446 | +
|
---|
447 | +
|
---|
448 | +1. INTRODUCTION
|
---|
449 | +===============
|
---|
450 | +
|
---|
451 | +Welcome to DjView4 _VERSION_ _BUILD_ port for OS/2 and OS/2 based systems.
|
---|
452 | +
|
---|
453 | +
|
---|
454 | +2. REQUIREMENTS
|
---|
455 | +===============
|
---|
456 | +
|
---|
457 | +2.1 kLIBC, GCC4Core, Qt4, Zlib, cups
|
---|
458 | +------------------------------------
|
---|
459 | +
|
---|
460 | +The installation of these products can be done either by RPM or ZIP files.
|
---|
461 | +
|
---|
462 | +2.1.a RPM installation
|
---|
463 | +----------------------
|
---|
464 | +If some packets are already installed, please see if updates for those are
|
---|
465 | +available with "yum update xyz". Where xyz is the package name.
|
---|
466 | +
|
---|
467 | +kLIBC
|
---|
468 | +-----
|
---|
469 | +
|
---|
470 | + 1. yum install libc
|
---|
471 | +
|
---|
472 | +GCC4Core
|
---|
473 | +--------
|
---|
474 | +
|
---|
475 | + 1. yum install libgcc1 libgcc-fwd
|
---|
476 | + 2. yum install libssp
|
---|
477 | + 3. yum install libstdc++ libstdc++6
|
---|
478 | + 4. yum install libsupc++ libsupc++6
|
---|
479 | +
|
---|
480 | +Qt4 dll
|
---|
481 | +-------
|
---|
482 | +
|
---|
483 | + 1. yum install libqt4
|
---|
484 | +
|
---|
485 | +Zlib
|
---|
486 | +----
|
---|
487 | +
|
---|
488 | + 1. yum install zlib
|
---|
489 | +
|
---|
490 | +Jpeg, Tiff, Png
|
---|
491 | +---------------
|
---|
492 | +
|
---|
493 | + 1. yum install libjpeg libtiff libpng
|
---|
494 | +
|
---|
495 | +djvulibre
|
---|
496 | +---------
|
---|
497 | +
|
---|
498 | + 1. yum install djvulibre-libs
|
---|
499 | +
|
---|
500 | +cups
|
---|
501 | +----
|
---|
502 | +
|
---|
503 | + 1. yum install cups
|
---|
504 | + 2. yum install cups-filters
|
---|
505 | +
|
---|
506 | +freetype/fontconfig
|
---|
507 | +-------------------
|
---|
508 | +
|
---|
509 | + 1. yum install freetype fontconfig
|
---|
510 | +
|
---|
511 | +pthread
|
---|
512 | +-------
|
---|
513 | +
|
---|
514 | + 1. yum install pthread
|
---|
515 | +
|
---|
516 | +
|
---|
517 | +2.1.b ZIP Installation
|
---|
518 | +----------------------
|
---|
519 | +
|
---|
520 | +kLIBC
|
---|
521 | +-----
|
---|
522 | +
|
---|
523 | + 1. Download kLIBC 0.6.6 or better (see http://svn.netlabs.org/libc for more
|
---|
524 | + information)
|
---|
525 | + 2. Install the files to your libpath eg x:\ecs\dll
|
---|
526 | +
|
---|
527 | +GCC4Core
|
---|
528 | +--------
|
---|
529 | +
|
---|
530 | + 1. Download GCC4Core 1.3.1 or better from ftp://ftp.netlabs.org/pub/gcc
|
---|
531 | + 2. Install the files to your libpath eg. x:\ecs\dll
|
---|
532 | +
|
---|
533 | +Qt4 dll
|
---|
534 | +-------
|
---|
535 | +
|
---|
536 | + 1. Download Qt4 4.7.3 or better (see http://svn.netlabs.org/qt4 for more
|
---|
537 | + information)
|
---|
538 | + 2. Install the files according to the readme
|
---|
539 | +
|
---|
540 | +Zlib
|
---|
541 | +----
|
---|
542 | +
|
---|
543 | + 1. Download zlib from http://rpm.netlabs.org/release/00/zip
|
---|
544 | + 2. Unpack and install z.dll to your libpath eg. x:\ecs\dll
|
---|
545 | +
|
---|
546 | +Jpeg, Tiff, Png
|
---|
547 | +---------------
|
---|
548 | +
|
---|
549 | + 1. Download libjpeg, libtiff and libpng from http://rpm.netlabs.org/release/00/zip
|
---|
550 | + 2. Unpack and install the dll to your libpath eg. x:\ecs\dll
|
---|
551 | +
|
---|
552 | +djvulibre
|
---|
553 | +---------
|
---|
554 | +
|
---|
555 | + 1. Download djvulibre from http://rpm.netlabs.org/release/00/zip
|
---|
556 | + 2. Unpack and install the dll to your libpath eg. x:\ecs\dll
|
---|
557 | +
|
---|
558 | +cups
|
---|
559 | +----
|
---|
560 | +
|
---|
561 | + 1. Go to eCUPS wiki to see how to install eCUPS (http://svn.netlabs.org/ecups)
|
---|
562 | + 2. Install eCUPS according to the above wiki
|
---|
563 | +
|
---|
564 | +freetype/fontconfig
|
---|
565 | +-------------------
|
---|
566 | +
|
---|
567 | + 1. Download freetype and fontconfig from http://rpm.netlabs.org/release/00/zip
|
---|
568 | + 2. Unpack and install freetyp6.dll and fntcfg2.dll to your libpath eg. x:\ecs\dll
|
---|
569 | +
|
---|
570 | +pthread
|
---|
571 | +-------
|
---|
572 | +
|
---|
573 | + 1. Download pthread from http://rpm.netlabs.org/release/00/zip
|
---|
574 | + 2. Unpack and install pthr01.dll to your libpath eg. x:\ecs\dll
|
---|
575 | +
|
---|
576 | +
|
---|
577 | +3. INSTALLATION
|
---|
578 | +===============
|
---|
579 | +
|
---|
580 | +To install DjView4, do the following:
|
---|
581 | +
|
---|
582 | + 1. Create a directory for DjView4.
|
---|
583 | + 2. Extract the DjView4 package to the new directory.
|
---|
584 | + 3. Create a WPS object for djview.exe.
|
---|
585 | + 4. Start djview
|
---|
586 | + 5. Enjoy the app :)
|
---|
587 | +
|
---|
588 | +
|
---|
589 | +4. LICENSE, COPYRIGHT, DISCLAIMER
|
---|
590 | +=================================
|
---|
591 | +
|
---|
592 | +see COPYRIGHT and COPYING
|
---|
593 | +
|
---|
594 | +This program is distributed in the hope that it will be useful,
|
---|
595 | +but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
596 | +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
---|
597 | +
|
---|
598 | +
|
---|
599 | +4. BUGREPORTS
|
---|
600 | +=============
|
---|
601 | +
|
---|
602 | +Please create bugreports at http://svn.netlabs.org/qtapps
|
---|
603 | +Only bug reports with a reproducable bug are accepted. :-)
|
---|
604 | +
|
---|
605 | +
|
---|
606 | +6. CREDITS
|
---|
607 | +==========
|
---|
608 | +
|
---|
609 | +The port was done by:
|
---|
610 | +
|
---|
611 | +Silvan Scherrer aka _diver
|
---|
612 | +
|
---|
613 | +Thanks go to:
|
---|
614 | +
|
---|
615 | + * Dmitry A. Kuminov
|
---|
616 | + * Oliver Cremer
|
---|
617 | +
|
---|
618 | +They either helped me when I had some nasty questions or did some testing for
|
---|
619 | +me.
|
---|
620 | +
|
---|
621 | +
|
---|
622 | +7. SUPPORT AND DONATIONS
|
---|
623 | +========================
|
---|
624 | +
|
---|
625 | +DjView4 is based on volunteer work. If you would like to support further
|
---|
626 | +development, you can do so in one of the following ways:
|
---|
627 | +
|
---|
628 | +
|
---|
629 | + * Donate to the Qt4 project: see qt.netlabs.org for more information
|
---|
630 | +
|
---|
631 | + * Contribute to the project: Besides actual development, this also includes
|
---|
632 | + maintaining the documentation and the project web site as well as help
|
---|
633 | + for users.
|
---|
634 | +
|
---|
635 | +
|
---|
636 | +8. HISTORY
|
---|
637 | +==========
|
---|
638 | +
|
---|
639 | +2016-11-18
|
---|
640 | +
|
---|
641 | + * updated to djviewlibre 3.5.27 code
|
---|
642 | + * updated djview to 4.10.1
|
---|
643 | +
|
---|
644 | +2013-03-25
|
---|
645 | +
|
---|
646 | + * updated to djviewlibre 3.5.25 code
|
---|
647 | +
|
---|
648 | +2011-09-27
|
---|
649 | +
|
---|
650 | + * updated to 4.8 code level of djview
|
---|
651 | + * updated to djviewlibre 3.5.24
|
---|
652 | + * updated to Qt 4.7.3
|
---|
653 | + * cups >= 1.4.8 required
|
---|
654 | +
|
---|
655 | +2010-10-13
|
---|
656 | +
|
---|
657 | + * added printing support
|
---|
658 | +
|
---|
659 | +2010-09-02
|
---|
660 | +
|
---|
661 | + * updated to 4.6 code level of djview
|
---|
662 | + * updated to 3.5.23 code level of djvulibre
|
---|
663 | +
|
---|
664 | +2010-09-01
|
---|
665 | +
|
---|
666 | + * initial port
|
---|
667 | +
|
---|
668 | diff -Naur -x djview.desktop E:\trees\djview\trunk\..\vendor\current/src/djview_os2.rc E:\trees\djview\trunk/src/djview_os2.rc
|
---|
669 | --- E:\trees\djview\trunk\..\vendor\current/src/djview_os2.rc 1970-01-01 01:00:00.000000000 +0100
|
---|
670 | +++ E:\trees\djview\trunk/src/djview_os2.rc 2016-11-21 14:07:26.000000000 +0100
|
---|
671 | @@ -0,0 +1 @@
|
---|
672 | +ICON 1 DISCARDABLE "../os2/DjVuApp_os2.ico"
|
---|
673 | diff -Naur -x djview.desktop E:\trees\djview\trunk\..\vendor\current/src/djview.pro E:\trees\djview\trunk/src/djview.pro
|
---|
674 | --- E:\trees\djview\trunk\..\vendor\current/src/djview.pro 2015-12-26 17:57:08.000000000 +0100
|
---|
675 | +++ E:\trees\djview\trunk/src/djview.pro 2016-11-18 17:13:00.000000000 +0100
|
---|
676 | @@ -66,6 +66,12 @@
|
---|
677 | win32 {
|
---|
678 | RC_FILE = djview.rc
|
---|
679 | }
|
---|
680 | +# --- os2 stuff
|
---|
681 | +os2 {
|
---|
682 | + QT -= opengl
|
---|
683 | + LIBS += -lpthread -ljpeg -llibcups
|
---|
684 | + RC_FILE = djview_os2.rc
|
---|
685 | +}
|
---|
686 |
|
---|
687 | # --- djviewplugin logic
|
---|
688 | greaterThan(QT_MAJOR_VERSION, 4) {
|
---|
689 | @@ -141,3 +147,13 @@
|
---|
690 | TRANSLATIONS += djview_es.ts
|
---|
691 | TRANSLATIONS += djview_zh_cn.ts
|
---|
692 | TRANSLATIONS += djview_zh_tw.ts
|
---|
693 | +
|
---|
694 | +# -- needed that shadowbuild works nicely
|
---|
695 | +qtPrepareTool(LRELEASE, lrelease)
|
---|
696 | +updateqm.input = TRANSLATIONS
|
---|
697 | +updateqm.output = ${QMAKE_FILE_BASE}.qm
|
---|
698 | +updateqm.variable_out = PRE_TARGETDEPS
|
---|
699 | +updateqm.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
|
---|
700 | +updateqm.name = LRELEASE ${QMAKE_FILE_IN}
|
---|
701 | +updateqm.CONFIG += no_link
|
---|
702 | +QMAKE_EXTRA_COMPILERS += updateqm
|
---|
703 | diff -Naur -x djview.desktop E:\trees\djview\trunk\..\vendor\current/src/qdjviewexporters.cpp E:\trees\djview\trunk/src/qdjviewexporters.cpp
|
---|
704 | --- E:\trees\djview\trunk\..\vendor\current/src/qdjviewexporters.cpp 2015-12-26 17:57:08.000000000 +0100
|
---|
705 | +++ E:\trees\djview\trunk/src/qdjviewexporters.cpp 2016-11-18 17:23:02.000000000 +0100
|
---|
706 | @@ -91,6 +91,10 @@
|
---|
707 | #include "qdjvuwidget.h"
|
---|
708 | #include "qdjvu.h"
|
---|
709 |
|
---|
710 | +#ifdef Q_OS_OS2
|
---|
711 | +# include <cups/cups.h>
|
---|
712 | +#endif
|
---|
713 | +
|
---|
714 | #ifdef WIN32
|
---|
715 | # define wdup(fh) _dup(fh)
|
---|
716 | #else
|
---|
717 | @@ -845,6 +849,7 @@
|
---|
718 | }
|
---|
719 | else if (printer)
|
---|
720 | {
|
---|
721 | +#ifndef Q_OS_OS2
|
---|
722 | QString printerName = printer->printerName();
|
---|
723 | // disable sigpipe
|
---|
724 | #ifdef SIGPIPE
|
---|
725 | @@ -985,6 +990,24 @@
|
---|
726 | closeFile();
|
---|
727 | }
|
---|
728 | #endif
|
---|
729 | +#else
|
---|
730 | + char filename[512];
|
---|
731 | + int fd = cupsTempFd(filename, 512);
|
---|
732 | + if (fd < 0) {
|
---|
733 | + qWarning("QPdfPrinter: Could not open temporary file to print");
|
---|
734 | + return;
|
---|
735 | + }
|
---|
736 | +/* we need to close the cups fd, so djview can open it again */
|
---|
737 | + close(fd);
|
---|
738 | + file.close();
|
---|
739 | + file.setFileName(filename);
|
---|
740 | + if (! file.fileName().isEmpty())
|
---|
741 | + {
|
---|
742 | + file.remove();
|
---|
743 | + if (file.open(QIODevice::WriteOnly))
|
---|
744 | + output = ::fdopen(file.handle(), "wb");
|
---|
745 | + }
|
---|
746 | +#endif
|
---|
747 | }
|
---|
748 | }
|
---|
749 |
|
---|
750 | @@ -998,6 +1021,64 @@
|
---|
751 | ::close(outputfd);
|
---|
752 | if (file.openMode())
|
---|
753 | file.close();
|
---|
754 | +#ifdef Q_OS_OS2
|
---|
755 | + if (printer)
|
---|
756 | + {
|
---|
757 | + QString printerName = printer->printerName();
|
---|
758 | +
|
---|
759 | + // Set up print options.
|
---|
760 | + QByteArray prnName;
|
---|
761 | + QList<QPair<QByteArray, QByteArray> > options;
|
---|
762 | + QVector<cups_option_t> cupsOptStruct;
|
---|
763 | +
|
---|
764 | + if (!printerName.isEmpty()) {
|
---|
765 | + prnName = printerName.toLocal8Bit();
|
---|
766 | +
|
---|
767 | + QPrintEngine *engine = printer->printEngine();
|
---|
768 | +# define PPK_CupsOptions QPrintEngine::PrintEnginePropertyKey(0xfe00)
|
---|
769 | +# define PPK_CupsStringPageSize QPrintEngine::PrintEnginePropertyKey(0xfe03)
|
---|
770 | + QVariant cPageSize = engine->property(PPK_CupsStringPageSize);
|
---|
771 | + QVariant cOptions = engine->property(PPK_CupsOptions);
|
---|
772 | + QStringList cupsOptions = cOptions.toStringList();
|
---|
773 | +
|
---|
774 | + if (!cPageSize.toString().isEmpty()) {
|
---|
775 | + options.append(QPair<QByteArray, QByteArray>("media", cPageSize.toString().toLocal8Bit()));
|
---|
776 | + }
|
---|
777 | +
|
---|
778 | + if (copies > 1) {
|
---|
779 | + options.append(QPair<QByteArray, QByteArray>("copies", QString::number(copies).toLocal8Bit()));
|
---|
780 | + }
|
---|
781 | +
|
---|
782 | + if (collate) {
|
---|
783 | + options.append(QPair<QByteArray, QByteArray>("Collate", "True"));
|
---|
784 | + }
|
---|
785 | +
|
---|
786 | + if (duplex) {
|
---|
787 | + options.append(QPair<QByteArray, QByteArray>("sides", "two-sided-long-edge"));
|
---|
788 | + }
|
---|
789 | +
|
---|
790 | + QStringList::const_iterator it = cupsOptions.constBegin();
|
---|
791 | + while (it != cupsOptions.constEnd()) {
|
---|
792 | + options.append(QPair<QByteArray, QByteArray>((*it).toLocal8Bit(), (*(it+1)).toLocal8Bit()));
|
---|
793 | + it += 2;
|
---|
794 | + }
|
---|
795 | +
|
---|
796 | + for (int c = 0; c < options.size(); ++c) {
|
---|
797 | + cups_option_t opt;
|
---|
798 | + opt.name = options[c].first.data();
|
---|
799 | + opt.value = options[c].second.data();
|
---|
800 | + cupsOptStruct.append(opt);
|
---|
801 | + }
|
---|
802 | +
|
---|
803 | + // Print the file.
|
---|
804 | + QString title = djview->getDocumentFileName();
|
---|
805 | + cups_option_t* optPtr = cupsOptStruct.size() ? &cupsOptStruct.first() : 0;
|
---|
806 | + cupsPrintFile(prnName.constData(), file.fileName().toLocal8Bit().constData(),
|
---|
807 | + title.toLocal8Bit().constData(), cupsOptStruct.size(), optPtr);
|
---|
808 | + }
|
---|
809 | + file.remove();
|
---|
810 | + }
|
---|
811 | +#endif
|
---|
812 | output = 0;
|
---|
813 | outputfd = -1;
|
---|
814 | printer = 0;
|
---|
815 | diff -Naur -x djview.desktop E:\trees\djview\trunk\..\vendor\current/src/qdjvu.cpp E:\trees\djview\trunk/src/qdjvu.cpp
|
---|
816 | --- E:\trees\djview\trunk\..\vendor\current/src/qdjvu.cpp 2015-12-26 17:57:08.000000000 +0100
|
---|
817 | +++ E:\trees\djview\trunk/src/qdjvu.cpp 2016-11-18 16:40:40.000000000 +0100
|
---|
818 | @@ -415,7 +415,7 @@
|
---|
819 | qWarning("QDjVuDocument::setFileName: cannot read file");
|
---|
820 | return false;
|
---|
821 | }
|
---|
822 | -#if DDJVUAPI_VERSION >= 19
|
---|
823 | +#if DDJVUAPI_VERSION >= 19 && !defined(Q_OS_OS2) // as our wcrtomb() is broken
|
---|
824 | QByteArray b = f.toUtf8();
|
---|
825 | document = ddjvu_document_create_by_filename_utf8(*ctx, b, cache);
|
---|
826 | #else
|
---|