forked from KolibriOS/kolibrios
Compare commits
231
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
658a3bc5dd | ||
|
|
134f6c1936 | ||
|
|
8a48f089d8 | ||
|
|
14162d4139 | ||
|
|
3b854ef2c6 | ||
|
|
2c5f6bc39a | ||
|
|
09af6357d4 | ||
|
|
4b4bd9bdde | ||
|
|
f373a738d7 | ||
|
|
c7f0da5cd6 | ||
|
|
8c48f1d18b | ||
|
|
bb58df2d87 | ||
|
|
3922240df3 | ||
|
|
42b2a07033 | ||
|
|
91be820f96 | ||
|
|
7da3b2e5a4 | ||
|
|
7cf136e214 | ||
|
|
e641f6c400 | ||
|
|
d9b207867c | ||
|
|
50d0d2e347 | ||
|
|
c6b6615f84 | ||
|
|
c8d95df883 | ||
|
|
6d02b10132 | ||
|
|
13a9b877f3 | ||
|
|
1ef640de56 | ||
|
|
91f5df9c53 | ||
|
|
adc9753e1f | ||
|
|
1f8cd12dfc | ||
|
|
54f9fa3348 | ||
|
|
1339308c3c | ||
|
|
8f6cabd4db | ||
|
|
f5fa7aae30 | ||
|
|
07beb60fc9 | ||
|
|
74caa48bee | ||
|
|
f8e91b734c | ||
|
|
89a7cd62e1 | ||
|
|
059904552c | ||
|
|
92f66e474f | ||
|
|
ec5bd2967a | ||
|
|
aaf6c3a55b | ||
|
|
15511124f7 | ||
|
|
5407211418 | ||
|
|
ade1e846f3 | ||
|
|
3b47df76ec | ||
|
|
481b5779b8 | ||
|
|
8c45972a96 | ||
|
|
566ce799fe | ||
|
|
5fa08beeba | ||
|
|
3dd8e618ad | ||
|
|
22fc1c93ee | ||
|
|
9866a788e5 | ||
|
|
53aa0cce73 | ||
|
|
5fc9829b3c | ||
|
|
70150f4e30 | ||
|
|
db8dae1327 | ||
|
|
0432b892bc | ||
|
|
0ec60e08ca | ||
|
|
d3d5154d5f | ||
|
|
fd61c21475 | ||
|
|
b17238773b | ||
|
|
ff34330fb0 | ||
|
|
a566cef4c1 | ||
|
|
28f0e4d51e | ||
|
|
850ddc3a64 | ||
|
|
bbf35c3c83 | ||
|
|
e0e0290234 | ||
|
|
ceb29bbd9e | ||
|
|
208e157e04 | ||
|
|
a9ae0dbc73 | ||
|
|
5e1b701c84 | ||
|
|
0381abade7 | ||
|
|
4cd1bfda63 | ||
|
|
d08e94331a | ||
|
|
893bc8a636 | ||
|
|
ae758389f5 | ||
|
|
6e5f7642db | ||
|
|
17f5260023 | ||
|
|
4ebfb645d3 | ||
|
|
d464b7e770 | ||
|
|
62d0e86f3b | ||
|
|
618b0389ff | ||
|
|
e8d095ed88 | ||
|
|
828df445c2 | ||
|
|
9b450ff4aa | ||
|
|
0e186843d4 | ||
|
|
1a3c1e7173 | ||
|
|
1b83f4fc4c | ||
|
|
cd8cfe2630 | ||
|
|
53e1345728 | ||
|
|
6e8c9103e0 | ||
|
|
680b915efe | ||
|
|
ef96c855ed | ||
|
|
779ea18d4e | ||
|
|
f76cb1f9b6 | ||
|
|
d70d88845a | ||
|
|
23a502d761 | ||
|
|
76b9c0b0d9 | ||
|
|
68f0454682 | ||
|
|
d486c6b33a | ||
|
|
310999dcc4 | ||
|
|
bb769cbf85 | ||
|
|
9b9f10b231 | ||
|
|
ca99b669f2 | ||
|
|
fac0425ac0 | ||
|
|
175bd31489 | ||
|
|
e1a30a4f14 | ||
|
|
8235572f7b | ||
|
|
641603693f | ||
|
|
a016346e4e | ||
|
|
e7698cbfb6 | ||
|
|
27c1f44930 | ||
|
|
86c685ed4b | ||
|
|
e05b57a95e | ||
|
|
a0e4bce98a | ||
|
|
2cda4a9682 | ||
|
|
f08fe1f2a0 | ||
|
|
f7a26ece7a | ||
|
|
f5735e54f4 | ||
|
|
8a0329cee8 | ||
|
|
a4f3f3545a | ||
|
|
e0dc42d79b | ||
|
|
096cca20cb | ||
|
|
db529bc1a8 | ||
|
|
3e1c8e9ec8 | ||
|
|
e94fb7d5ef | ||
|
|
bd548e0373 | ||
|
|
6ad8a8b6cc | ||
|
|
48626298ff | ||
|
|
5cbac1a231 | ||
|
|
af62e17863 | ||
|
|
f8255f0d77 | ||
|
|
826b43e9c2 | ||
|
|
1434d2fd98 | ||
|
|
2a43081ba6 | ||
|
|
31cd7329df | ||
|
|
a9136a1684 | ||
|
|
bb6d4072a1 | ||
|
|
cb37ae10cb | ||
|
|
bdc12a2f00 | ||
|
|
430843a83f | ||
|
|
96cc7e7af4 | ||
|
|
54500c5100 | ||
|
|
4b1d291f17 | ||
|
|
c0e0827513 | ||
|
|
87adc0a1df | ||
|
|
0cd3b0c5b1 | ||
|
|
33acd57c58 | ||
|
|
d6a1b56b7f | ||
|
|
7bcb400040 | ||
|
|
398dcbb13d | ||
|
|
9ca506ed15 | ||
|
|
31880f3ebe | ||
|
|
27a26b669f | ||
|
|
3c1e533f95 | ||
|
|
f7a3e34289 | ||
|
|
a591b2b25a | ||
|
|
c948b48eb2 | ||
|
|
0b4562bac4 | ||
|
|
de6724017d | ||
|
|
f305d3425d | ||
|
|
b5981a39dc | ||
|
|
e9e9ebb4c8 | ||
|
|
4c359e42ce | ||
|
|
3238f9f485 | ||
|
|
289eabf8a4 | ||
|
|
e818e2167f | ||
|
|
42c205be32 | ||
|
|
0253ec8753 | ||
|
|
91dc4d8cad | ||
|
|
6f2a947deb | ||
|
|
735b86c476 | ||
|
|
cc1034d849 | ||
|
|
06c1497624 | ||
|
|
b52da3e1c3 | ||
|
|
f9425f5bd0 | ||
|
|
864210679c | ||
|
|
7f8e028ffd | ||
|
|
e9b6cf3fc9 | ||
|
|
4658a928d4 | ||
|
|
b6a5171cd9 | ||
|
|
668fd4deeb | ||
|
|
dd9a7b92d8 | ||
|
|
1173ca7b26 | ||
|
|
ccd0c183ec | ||
|
|
f065cc6e69 | ||
|
|
f1b99bad84 | ||
|
|
c580d4ac5b | ||
|
|
17c33521c3 | ||
|
|
f6395c9501 | ||
|
|
000288ce8b | ||
|
|
10d9e9f36f | ||
|
|
f4c4a7e29a | ||
|
|
bc5b2f884a | ||
|
|
d0de275ab3 | ||
|
|
a83f6f7e4b | ||
|
|
d54c802297 | ||
|
|
29c42738b8 | ||
|
|
c17d1a57a3 | ||
|
|
7b0867a6cf | ||
|
|
c65da0d96f | ||
|
|
a0c01e204e | ||
|
|
d50642ce1f | ||
|
|
8d235ce49b | ||
|
|
e423bfb2d1 | ||
|
|
1483ec8462 | ||
|
|
e8121c66f8 | ||
|
|
6aff7b8c02 | ||
|
|
e0d724286f | ||
|
|
03dcc2051f | ||
|
|
03111f5e99 | ||
|
|
4cc716458a | ||
|
|
aef0b3a6a7 | ||
|
|
6181afd33d | ||
|
|
c112873dbd | ||
|
|
a7ada1c586 | ||
|
|
11562988b1 | ||
|
|
2dfb3ddff3
|
||
|
|
7e63294b5e | ||
|
|
c148987224 | ||
|
|
4550e15838 | ||
|
|
cc867a0bb8 | ||
|
|
16a0ef9543 | ||
|
|
51b150c9aa | ||
|
|
c18da5afae | ||
|
|
cd1c2ce969 | ||
|
|
d7795a8961 | ||
|
|
b948491fb3 | ||
|
|
03cfdeb50f | ||
|
|
e4cd8a4d74 | ||
|
|
75b6663ce0 | ||
|
|
df0c5d8f48 |
No files matched your search
@@ -0,0 +1,21 @@
|
||||
---
|
||||
- name: Sending artifacts to the server
|
||||
hosts: all
|
||||
gather_facts: no
|
||||
|
||||
tasks:
|
||||
- name: Creating version artefacts root folder
|
||||
file:
|
||||
path: "{{ storage_path }}/{{ version }}"
|
||||
state: directory
|
||||
owner: "{{ storage_user }}"
|
||||
group: "{{ storage_user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Sending artifacts
|
||||
ansible.builtin.copy:
|
||||
src: "{{ artifact_path }}/"
|
||||
dest: "{{ storage_path }}/{{ version }}/"
|
||||
owner: "{{ storage_user }}"
|
||||
group: "{{ storage_user }}"
|
||||
mode: preserve
|
||||
@@ -0,0 +1,119 @@
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# SPDX-FileCopyrightText: 2026 KolibriOS team
|
||||
|
||||
# Kernel codestyle checker (port of the former checker.pl).
|
||||
# Reads an assembly source file and validates the KolibriOS kernel style rules.
|
||||
# Usage: check-kernel-codestyle.py <file> (falls back to stdin if none given)
|
||||
# Exits 0 when clean; on the first violation prints "Style error ..." to stderr
|
||||
# and exits 1.
|
||||
|
||||
import re
|
||||
import sys
|
||||
|
||||
# Full FASM mnemonic set, taken verbatim from the original checker.pl. Only these
|
||||
# tokens are treated as instructions for the indent/spacing rules below.
|
||||
_MNEMONICS = r"""stdcall|ccall|invoke|cinvoke|bt|in|ja|jb|jc|je|jg|jl|jo|jp|js|jz|or|aaa|aad|aam|aas|adc|add|and|bsf|bsr|btc|btr|bts|cbw|cdq|clc|cld|cli|cmc|cmp|cqo|cwd|daa|das|dec|div|fld|fst|hlt|inc|ins|int|jae|jbe|jge|jle|jmp|jna|jnb|jnc|jne|jng|jnl|jno|jnp|jns|jnz|jpe|jpo|lar|lds|lea|les|lfs|lgs|lsl|lss|ltr|mov|mul|neg|nop|not|out|pop|por|rcl|rcr|rep|ret|rol|ror|rsm|sal|sar|sbb|shl|shr|stc|std|sti|str|sub|ud2|xor|arpl|call|cdqe|clgi|clts|cmps|cwde|dppd|dpps|emms|fabs|fadd|fbld|fchs|fcom|fcos|fdiv|feni|fild|fist|fld1|fldz|fmul|fnop|fsin|fstp|fsub|ftst|fxam|fxch|idiv|imul|insb|insd|insw|int1|int3|into|invd|iret|jcxz|jnae|jnbe|jnge|jnle|lahf|lgdt|lidt|lldt|lmsw|lock|lods|loop|movd|movq|movs|orpd|orps|outs|pand|popa|popd|popf|popq|popw|push|pxor|repe|repz|retd|retf|retn|retq|retw|sahf|salc|scas|seta|setb|setc|sete|setg|setl|seto|setp|sets|setz|sgdt|shld|shrd|sidt|sldt|smsw|stgi|stos|test|verr|verw|vpor|wait|xadd|xchg|xlat|addpd|addps|addsd|addss|andpd|andps|bound|bswap|cmova|cmovb|cmovc|cmove|cmovg|cmovl|cmovo|cmovp|cmovs|cmovz|cmppd|cmpps|cmpsb|cmpsd|cmpsq|cmpss|cmpsw|cpuid|crc32|divpd|divps|divsd|divss|enter|extrq|f2xm1|faddp|fbstp|fclex|fcomi|fcomp|fdisi|fdivp|fdivr|femms|ffree|fiadd|ficom|fidiv|fimul|finit|fistp|fisub|fldcw|fldpi|fmulp|fneni|fprem|fptan|fsave|fsqrt|fstcw|fstsw|fsubp|fsubr|fucom|fwait|fyl2x|icebp|iretd|iretq|iretw|jecxz|jrcxz|lddqu|leave|lodsb|lodsd|lodsq|lodsw|loopd|loope|loopq|loopw|loopz|lzcnt|maxpd|maxps|maxsd|maxss|minpd|minps|minsd|minss|movbe|movsb|movsd|movsq|movss|movsw|movsx|movzx|mulpd|mulps|mulsd|mulss|mwait|outsb|outsd|outsw|pabsb|pabsd|pabsw|paddb|paddd|paddq|paddw|pandn|pause|pavgb|pavgw|pf2id|pf2iw|pfacc|pfadd|pfmax|pfmin|pfmul|pfrcp|pfsub|pi2fd|pi2fw|popad|popaw|popfd|popfq|popfw|pslld|psllq|psllw|psrad|psraw|psrld|psrlq|psrlw|psubb|psubd|psubq|psubw|ptest|pusha|pushd|pushf|pushq|pushw|rcpps|rcpss|rdmsr|rdpmc|rdtsc|repne|repnz|retfd|retfq|retfw|retnd|retnq|retnw|scasb|scasd|scasq|scasw|setae|setbe|setge|setle|setna|setnb|setnc|setne|setng|setnl|setno|setnp|setns|setnz|setpe|setpo|stosb|stosd|stosq|stosw|subpd|subps|subsd|subss|vdppd|vdpps|vmovd|vmovq|vmrun|vmxon|vorpd|vorps|vpand|vpxor|wrmsr|xlatb|xorpd|xorps|xsave|aesdec|aesenc|aesimc|andnpd|andnps|cmovae|cmovbe|cmovge|cmovle|cmovna|cmovnb|cmovnc|cmovne|cmovng|cmovnl|cmovno|cmovnp|cmovns|cmovnz|cmovpe|cmovpo|comisd|comiss|fcmovb|fcmove|fcmovu|fcomip|fcompp|fdivrp|ffreep|ficomp|fidivr|fisttp|fisubr|fldenv|fldl2e|fldl2t|fldlg2|fldln2|fnclex|fndisi|fninit|fnsave|fnstcw|fnstsw|fpatan|fprem1|frstor|frstpm|fsaved|fsavew|fscale|fsetpm|fstenv|fsubrp|fucomi|fucomp|fxsave|getsec|haddpd|haddps|hsubpd|hsubps|invept|invlpg|lfence|looped|loopeq|loopew|loopne|loopnz|loopzd|loopzq|loopzw|mfence|movapd|movaps|movdqa|movdqu|movhpd|movhps|movlpd|movlps|movnti|movntq|movsxd|movupd|movups|paddsb|paddsw|pextrb|pextrd|pextrq|pextrw|pfnacc|pfsubr|phaddd|phaddw|phsubd|phsubw|pinsrb|pinsrd|pinsrq|pinsrw|pmaxsb|pmaxsd|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmuldq|pmulhw|pmulld|pmullw|popcnt|psadbw|pshufb|pshufd|pshufw|psignb|psignd|psignw|pslldq|psrldq|psubsb|psubsw|pswapd|pushad|pushaw|pushfd|pushfq|pushfw|rdmsrq|rdrand|rdtscp|setalc|setnae|setnbe|setnge|setnle|sfence|shufpd|shufps|skinit|sqrtpd|sqrtps|sqrtsd|sqrtss|swapgs|sysret|vaddpd|vaddps|vaddsd|vaddss|vandpd|vandps|vcmppd|vcmpps|vcmpsd|vcmpss|vdivpd|vdivps|vdivsd|vdivss|vlddqu|vmaxpd|vmaxps|vmaxsd|vmaxss|vmcall|vminpd|vminps|vminsd|vminss|vmload|vmovsd|vmovss|vmread|vmsave|vmulpd|vmulps|vmulsd|vmulss|vmxoff|vpabsb|vpabsd|vpabsw|vpaddb|vpaddd|vpaddq|vpaddw|vpandn|vpavgb|vpavgw|vpcmov|vpcomb|vpcomd|vpcomq|vpcomw|vpperm|vprotb|vprotd|vprotq|vprotw|vpshab|vpshad|vpshaq|vpshaw|vpshlb|vpshld|vpshlq|vpshlw|vpslld|vpsllq|vpsllw|vpsrad|vpsraw|vpsrld|vpsrlq|vpsrlw|vpsubb|vpsubd|vpsubq|vpsubw|vptest|vrcpps|vrcpss|vsubpd|vsubps|vsubsd|vsubss|vxorpd|vxorps|wbinvd|wrmsrq|xgetbv|xrstor|xsetbv|blendpd|blendps|clflush|cmovnae|cmovnbe|cmovnge|cmovnle|cmpeqpd|cmpeqps|cmpeqsd|cmpeqss|cmplepd|cmpleps|cmplesd|cmpless|cmpltpd|cmpltps|cmpltsd|cmpltss|cmpxchg|fcmovbe|fcmovnb|fcmovne|fcmovnu|fdecstp|fincstp|fldenvd|fldenvw|fnsaved|fnsavew|fnstenv|frndint|frstord|frstorw|fsincos|fstenvd|fstenvw|fucomip|fucompp|fxrstor|fxtract|fyl2xp1|insertq|invlpga|invvpid|ldmxcsr|loopned|loopneq|loopnew|loopnzd|loopnzq|loopnzw|monitor|movddup|movdq2q|movhlps|movlhps|movntdq|movntpd|movntps|movntsd|movntss|movq2dq|mpsadbw|paddusb|paddusw|palignr|pavgusb|pblendw|pcmpeqb|pcmpeqd|pcmpeqq|pcmpeqw|pcmpgtb|pcmpgtd|pcmpgtq|pcmpgtw|pfcmpeq|pfcmpge|pfcmpgt|pfpnacc|pfrsqrt|phaddsw|phsubsw|pmaddwd|pmulhrw|pmulhuw|pmuludq|pshufhw|pshuflw|psubusb|psubusw|roundpd|roundps|roundsd|roundss|rsqrtps|rsqrtss|stmxcsr|syscall|sysexit|sysretq|ucomisd|ucomiss|vaesdec|vaesenc|vaesimc|vandnpd|vandnps|vcomisd|vcomiss|vfrczpd|vfrczps|vfrczsd|vfrczss|vhaddpd|vhaddps|vhsubpd|vhsubps|vmclear|vmmcall|vmovapd|vmovaps|vmovdqa|vmovdqu|vmovhpd|vmovhps|vmovlpd|vmovlps|vmovupd|vmovups|vmptrld|vmptrst|vmwrite|vpaddsb|vpaddsw|vpcomub|vpcomLine truncated
|
||||
|
||||
# label? indent mnemonic spaces args comment?
|
||||
_LINE_RE = re.compile(
|
||||
r'^(\s*[^;"\'\s$][^;"\'\s]*:)?(\s*)(' + _MNEMONICS + r')(\s+)([^;]*)(;.*)?$'
|
||||
)
|
||||
|
||||
# Mnemonics that always take exactly one space before their arguments, like the
|
||||
# 8-char-or-longer ones, regardless of their short length.
|
||||
_LONG_MNEMONICS = {"rep", "repz", "repe", "repnz", "repne", "lock"}
|
||||
|
||||
|
||||
def fail(name, lineno, msg):
|
||||
sys.stderr.write(f"Style error in {name}:{lineno}: {msg}\n")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) > 1:
|
||||
name = sys.argv[1]
|
||||
with open(name, "rb") as f:
|
||||
raw_lines = f.readlines()
|
||||
else:
|
||||
name = ""
|
||||
raw_lines = sys.stdin.buffer.readlines()
|
||||
|
||||
# None -> not inside a line continuation
|
||||
# -1 -> continuation active, but the starting column is unknown
|
||||
# >= 0 -> continuation active; following lines must indent by this column
|
||||
continued = None
|
||||
|
||||
for lineno, raw in enumerate(raw_lines, start=1):
|
||||
# Rule 6. All code and text files should be in UTF-8 without BOM.
|
||||
if lineno == 1 and raw[:3] == b"\xef\xbb\xbf":
|
||||
fail(name, lineno, "BOM is not allowed.")
|
||||
try:
|
||||
line = raw.decode("utf-8")
|
||||
except UnicodeDecodeError:
|
||||
fail(name, lineno, "the file must be in UTF-8.")
|
||||
|
||||
# Rule 1. No tab characters allowed.
|
||||
if "\t" in line:
|
||||
fail(name, lineno, "no tab characters allowed.")
|
||||
|
||||
if continued is not None:
|
||||
m = re.match(r'^(\s*)[^;]', line)
|
||||
if continued != -1 and m and len(m.group(1)) != continued:
|
||||
fail(name, lineno,
|
||||
"arguments continued in the next line must start from the "
|
||||
"same position as in the first line")
|
||||
if not re.search(r'\\\s*(;.*)?$', line):
|
||||
continued = None
|
||||
continue
|
||||
|
||||
m = _LINE_RE.match(line)
|
||||
if m:
|
||||
label = m.group(1) or ""
|
||||
indent, mnem, spaces, args = m.group(2), m.group(3), m.group(4), m.group(5)
|
||||
|
||||
# Rule 2. Any label must be on a separate line. It is not allowed to
|
||||
# have a label and anything except a comment on the same line.
|
||||
if label:
|
||||
fail(name, lineno, "any label must be on a separate line.")
|
||||
|
||||
# Rule 3. Lines with commands must start with 8 spaces.
|
||||
# A mnemonic is short if its length is less than 8.
|
||||
# Arguments for short mnemonics must start in column 16.
|
||||
# Arguments for long mnemonics must be separated from the mnemonic by
|
||||
# exactly one space.
|
||||
if indent != " ":
|
||||
fail(name, lineno, "indent for commands must be 8 spaces.")
|
||||
if len(mnem) >= 8 or mnem in _LONG_MNEMONICS:
|
||||
if args != "" and spaces != " ":
|
||||
fail(name, lineno,
|
||||
"arguments for long mnemonics must be separated from the "
|
||||
"mnemonic by exactly one space.")
|
||||
else:
|
||||
if args != "" and spaces != " " * (8 - len(mnem)):
|
||||
fail(name, lineno,
|
||||
"arguments for short mnemonics must start in the column 16.")
|
||||
|
||||
args = re.sub(r'\s*$', "", args)
|
||||
# Arguments must be separated with a comma and exactly one space after
|
||||
# a comma. Split off quoted substrings (indices 1, 2 mod 3) so commas
|
||||
# inside string literals are not checked.
|
||||
parts = re.split(r'(["\'])(.*?\1)', args)
|
||||
for i, segment in enumerate(parts):
|
||||
if i % 3 == 0 and segment is not None and \
|
||||
re.search(r',(\s{2,})?([^\\\s]|$)', segment):
|
||||
fail(name, lineno,
|
||||
"arguments must be separated with a comma and exactly one "
|
||||
"space after a comma.")
|
||||
|
||||
if re.search(r'\\$', args):
|
||||
continued = len(indent) + len(mnem) + len(spaces)
|
||||
else:
|
||||
if re.search(r'\\\s*(;.*)?$', line):
|
||||
continued = -1
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env python3
|
||||
# Sync tup's mtime/mtime_ns in .tup/db with the actual filesystem ctime.
|
||||
#
|
||||
# On Linux, tup uses st_ctim (ctime) for change detection, not st_mtim.
|
||||
# After restoring a build cache with cp -a, files get new ctimes while the
|
||||
# database still has old values. This script updates the database to match.
|
||||
#
|
||||
# Files in changed-files-list (changed since the cache's commit) are forced
|
||||
# dirty instead, so tup still rebuilds them and their dependents.
|
||||
#
|
||||
# Usage: python3 sync-tup-ctime.py [path/to/.tup/db] [changed-files-list]
|
||||
|
||||
import os
|
||||
import sqlite3
|
||||
import sys
|
||||
|
||||
db_path = sys.argv[1] if len(sys.argv) > 1 else ".tup/db"
|
||||
if not os.path.isfile(db_path):
|
||||
sys.exit(f"Database not found: {db_path}")
|
||||
|
||||
# Paths changed since the cache's commit: keep dirty so tup rebuilds them.
|
||||
dirty = set()
|
||||
if len(sys.argv) > 2 and sys.argv[2]:
|
||||
if os.path.isfile(sys.argv[2]):
|
||||
with open(sys.argv[2], encoding="utf-8") as f:
|
||||
dirty = {line.strip() for line in f if line.strip()}
|
||||
else:
|
||||
print(f"Warning: changed-files list not found: {sys.argv[2]}")
|
||||
|
||||
db = sqlite3.connect(db_path)
|
||||
# Map every node id -> (parent dir id, name). Any node type can be a parent
|
||||
# directory in the chain (generated/variant dirs are not type 0/2), so the map
|
||||
# must cover all of them or path resolution yields a bare filename and stat fails.
|
||||
nodes = {
|
||||
node_id: (parent_id, name)
|
||||
for node_id, parent_id, name in db.execute(
|
||||
"select id, dir, name from node"
|
||||
)
|
||||
}
|
||||
paths, updated, forced, skipped = {}, 0, 0, []
|
||||
matched = set() # dirty paths that actually resolved to a tup node
|
||||
|
||||
for node_id, dir_id, name, ntype, old_sec, old_ns in db.execute(
|
||||
"select id, dir, name, type, mtime, mtime_ns from node where type in (0, 2, 4)"
|
||||
):
|
||||
if dir_id not in paths:
|
||||
parts, cur, seen = [], dir_id, set()
|
||||
while cur in nodes and cur not in seen:
|
||||
seen.add(cur)
|
||||
cur, part = nodes[cur]
|
||||
parts.append(part)
|
||||
paths[dir_id] = "/".join(reversed(parts))
|
||||
# Build the path with forward slashes (tup stores them that way and git
|
||||
# emits them that way), independent of the host os.sep. tup's root dir
|
||||
# node is named ".", so paths come out as "./foo/bar"; strip that prefix
|
||||
# so they match git's plain "foo/bar" entries in the dirty set.
|
||||
path = paths[dir_id] + "/" + name if paths[dir_id] else name
|
||||
if path.startswith("./"):
|
||||
path = path[2:]
|
||||
|
||||
# Changed since the cache base: force a rebuild instead of aligning.
|
||||
if path in dirty:
|
||||
matched.add(path)
|
||||
if old_sec != 0 or old_ns != 0:
|
||||
db.execute(
|
||||
"update node set mtime=0, mtime_ns=0 where id=?", (node_id,))
|
||||
forced += 1
|
||||
continue
|
||||
|
||||
try:
|
||||
stat = os.stat(path)
|
||||
except OSError:
|
||||
skipped.append((path, ntype))
|
||||
continue
|
||||
sec = int(stat.st_ctime)
|
||||
ns = stat.st_ctime_ns - sec * 1_000_000_000
|
||||
if sec == old_sec and ns == old_ns:
|
||||
continue
|
||||
db.execute("update node set mtime=?, mtime_ns=? where id=?", (sec, ns, node_id))
|
||||
updated += 1
|
||||
|
||||
db.commit()
|
||||
db.close()
|
||||
|
||||
print(f"Aligned {updated} nodes, forced {forced} changed nodes dirty "
|
||||
f"({len(matched)}/{len(dirty)} changed paths matched a tup node), "
|
||||
f"skipped {len(skipped)} missing files")
|
||||
|
||||
# A changed path that matches no tup node is normal (docs, CI files, etc.),
|
||||
# but if NONE of them match while the list is non-empty, the path format from
|
||||
# git almost certainly disagrees with tup's node paths -- which means changed
|
||||
# files would silently NOT be rebuilt. Make that loud instead of silent.
|
||||
if dirty and not matched:
|
||||
print("WARNING: no changed path matched a tup node -- path format "
|
||||
"mismatch likely; changed files may NOT be rebuilt.")
|
||||
|
||||
if skipped:
|
||||
from collections import Counter
|
||||
by_type = Counter(ntype for _, ntype in skipped)
|
||||
print("Skipped by node type: "
|
||||
+ ", ".join(f"type {t}: {c}" for t, c in sorted(by_type.items())))
|
||||
+177
-102
@@ -1,58 +1,60 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# SPDX-FileCopyrightText: 2025 KolibriOS team
|
||||
# SPDX-FileCopyrightText: 2026 KolibriOS team
|
||||
|
||||
# This workflow is for commits in main branch
|
||||
# to get OS night build images and deploy them to the server
|
||||
|
||||
|
||||
name: 'Build system'
|
||||
|
||||
# Official build of the main branch
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
|
||||
jobs:
|
||||
codestyle:
|
||||
name: "Check kernel codestyle"
|
||||
runs-on: kolibri-toolchain
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Check codestyle
|
||||
run: |
|
||||
find kernel/trunk -iname '*.asm' -or -iname '*.inc' -exec bash -c "echo {}; cat {} | perl .gitea/workflows/checker.pl" \;
|
||||
|
||||
build:
|
||||
name: 'Build'
|
||||
name: 'Build (${{ matrix.lang }})'
|
||||
runs-on: kolibri-toolchain
|
||||
# one parallel job per language variant
|
||||
strategy:
|
||||
matrix:
|
||||
lang: [en_US, ru_RU, es_ES]
|
||||
|
||||
steps:
|
||||
# full history is needed for the revision id (commit count)
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
filter: blob:none
|
||||
|
||||
- name: Get describe
|
||||
id: vars
|
||||
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITEA_OUTPUT
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TOOLCHAIN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# cache the toolchain sources by hash to not rebuild them every time
|
||||
- name: Get toolchain hash
|
||||
id: toolchain-hash
|
||||
run: |
|
||||
a=$(find ${{ gitea.workspace }}/programs/develop/cmm/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
b=$(sha1sum ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc)
|
||||
b=$(sha1sum ${{ gitea.workspace }}/programs/develop/ktcc/bin/kos32-tcc)
|
||||
c=$(find ${{ gitea.workspace }}/programs/develop/objconv/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
d=$(find ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
e=$(find ${{ gitea.workspace }}/programs/other/kpack/linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
f=$(find ${{ gitea.workspace }}/programs/develop/clink/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
echo hash=$(echo $a $b $c $d $e $f | sha1sum | awk '{print $1}') >> $GITEA_OUTPUT
|
||||
|
||||
# restore previously cached toolchain by hash
|
||||
- name: Restore toolchain
|
||||
id: cache-toolchain
|
||||
uses: actions/cache/restore@v4
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /home/autobuild
|
||||
key: kolibri-toolchain-${{ steps.toolchain-hash.outputs.hash }}
|
||||
|
||||
# build toolchain if cache miss or obsolote
|
||||
- name: Build and install C--
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
@@ -66,7 +68,7 @@ jobs:
|
||||
- name: Install TCC
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cp ${{ gitea.workspace }}/programs/develop/ktcc/trunk/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
cp ${{ gitea.workspace }}/programs/develop/ktcc/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
chmod +x /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
|
||||
- name: Build and install objconv
|
||||
@@ -95,119 +97,192 @@ jobs:
|
||||
chmod a+x clink
|
||||
mv clink /home/autobuild/tools/win32/bin/clink
|
||||
|
||||
# move freshly built toolchain into the path that gets cached
|
||||
- name: Prepare cache folder
|
||||
run: |
|
||||
rm /home/autobuild
|
||||
mv /root/autobuild /home/autobuild
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
|
||||
- name: Save toolchain
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: /home/autobuild
|
||||
key: kolibri-toolchain-${{ steps.toolchain-hash.outputs.hash }}
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TUP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# cache tup DB and this language's build dir, keyed by commit;
|
||||
- name: Cache Tup
|
||||
id: cache-tup
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
.tup
|
||||
build-${{ matrix.lang }}
|
||||
key: tup-${{ gitea.sha }}
|
||||
restore-keys: |
|
||||
tup-
|
||||
|
||||
# check if a cache was restored or if we need to start fresh build
|
||||
- name: Check if cache was restored
|
||||
id: check-tup-cache
|
||||
run: |
|
||||
if [ -d ${{ gitea.workspace}}/.tup ] ; then
|
||||
echo "cache_restored=true" >> $GITEA_OUTPUT
|
||||
fi
|
||||
|
||||
# cache restore resets ctimes; realign tup DB to skip a full rebuild,
|
||||
# but keep files changed since the cache's commit dirty so tup rebuilds them
|
||||
- name: Sync tup DB with filesystem ctime
|
||||
if: steps.check-tup-cache.outputs.cache_restored == 'true'
|
||||
run: |
|
||||
DIRTY=$(mktemp)
|
||||
BASE=$(cat .tup/build-commit 2>/dev/null || true)
|
||||
if [ -n "$BASE" ] && git cat-file -e "${BASE}^{commit}" 2>/dev/null; then
|
||||
git -c core.quotePath=false diff --name-only "$BASE" HEAD > "$DIRTY"
|
||||
echo "Cache built at $BASE; $(wc -l < "$DIRTY") changed files kept dirty"
|
||||
python3 .gitea/utils/sync-tup-ctime.py .tup/db "$DIRTY"
|
||||
else
|
||||
echo "No usable cache base commit; skipping sync (tup rebuilds all)"
|
||||
fi
|
||||
|
||||
# write the variant config
|
||||
- name: Configure tup
|
||||
run: |
|
||||
cd ${{ gitea.workspace }}
|
||||
|
||||
export ROOT=${{ gitea.workspace }}
|
||||
echo "CONFIG_KPACK_CMD= && kpack --nologo %o" | tee en_US.config ru_RU.config es_ES.config
|
||||
echo "CONFIG_KERPACK_CMD= && kerpack %o" | tee -a en_US.config ru_RU.config es_ES.config
|
||||
echo "CONFIG_PESTRIP_CMD= && EXENAME=%o fasm $ROOT/data/common/pestrip.asm %o" | tee -a en_US.config ru_RU.config es_ES.config
|
||||
echo "CONFIG_NO_MSVC=full" | tee -a en_US.config ru_RU.config es_ES.config
|
||||
echo "CONFIG_INSERT_REVISION_ID=1" | tee -a en_US.config ru_RU.config es_ES.config
|
||||
echo "CONFIG_KPACK_CMD= && kpack --nologo %o" > ${{ matrix.lang }}.config
|
||||
echo "CONFIG_KERPACK_CMD= && kerpack %o" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_PESTRIP_CMD= && EXENAME=%o fasm $ROOT/data/common/pestrip.asm %o" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_NO_MSVC=full" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_INSERT_REVISION_ID=1" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_LANG=${{ matrix.lang }}" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_BUILD_TYPE=${{ matrix.lang }}" >> ${{ matrix.lang }}.config
|
||||
|
||||
tup -v
|
||||
# initialize the tup DB and register the variant
|
||||
- name: Init tup
|
||||
if: steps.check-tup-cache.outputs.cache_restored != 'true'
|
||||
run: |
|
||||
export ROOT=${{ gitea.workspace }}
|
||||
tup init
|
||||
tup variant ${{ matrix.lang }}.config
|
||||
|
||||
# Configure en_US
|
||||
echo "CONFIG_LANG=en_US" >> en_US.config
|
||||
echo "CONFIG_BUILD_TYPE=en_US" >> en_US.config
|
||||
tup variant en_US.config
|
||||
|
||||
# Configure ru_RU
|
||||
echo "CONFIG_LANG=ru_RU" >> ru_RU.config
|
||||
echo "CONFIG_BUILD_TYPE=ru_RU" >> ru_RU.config
|
||||
tup variant ru_RU.config
|
||||
|
||||
# Configure es_ES
|
||||
echo "CONFIG_LANG=es_ES" >> es_ES.config
|
||||
echo "CONFIG_BUILD_TYPE=es_ES" >> es_ES.config
|
||||
tup variant es_ES.config
|
||||
|
||||
# -------------------------- Build en_US ------------------------- #
|
||||
- name: (en_US) Build KolibriOS
|
||||
# build the image for language variant
|
||||
- name: Build KolibriOS
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
source kos32-export-env-vars ${{ gitea.workspace }}
|
||||
tup build-en_US
|
||||
tup build-${{ matrix.lang }}
|
||||
|
||||
- name: (en_US) Upload floppy image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.img
|
||||
path: build-en_US/data/kolibri.img
|
||||
# stamp the cache with its commit so later builds diff against it
|
||||
- name: Record cache base commit
|
||||
run: echo "${{ gitea.sha }}" > .tup/build-commit
|
||||
|
||||
- name: (en_US) Upload CD image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.iso
|
||||
path: build-en_US/data/kolibri.iso
|
||||
|
||||
- name: (en_US) Upload raw image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-en_US-${{ steps.vars.outputs.sha_short }}.raw
|
||||
path: build-en_US/data/kolibri.raw
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ARTIFACTS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# -------------------------- Build ru_RU ------------------------- #
|
||||
- name: (ru_RU) Build KolibriOS
|
||||
# version string (tag + commit count + sha) for the artifact names
|
||||
- name: Get describe
|
||||
id: vars
|
||||
run: echo "descr=$(git describe --tags)" >> $GITEA_OUTPUT
|
||||
|
||||
# rename build outputs to their final names so artifacts are bare files
|
||||
- name: Rename images
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
source kos32-export-env-vars ${{ gitea.workspace }}
|
||||
tup build-ru_RU
|
||||
for ext in img iso raw; do
|
||||
cp "build-${{ matrix.lang }}/data/kolibri.$ext" \
|
||||
"kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.$ext"
|
||||
done
|
||||
|
||||
- name: (ru_RU) Upload floppy image
|
||||
#publish the three images; longer retention for the floppy image.
|
||||
- name: Upload floppy image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.img
|
||||
path: build-ru_RU/data/kolibri.img
|
||||
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.img
|
||||
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.img
|
||||
retention-days: 90
|
||||
|
||||
- name: (ru_RU) Upload CD image
|
||||
- name: Upload CD image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.iso
|
||||
path: build-ru_RU/data/kolibri.iso
|
||||
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.iso
|
||||
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.iso
|
||||
retention-days: 30
|
||||
|
||||
- name: (ru_RU) Upload raw image
|
||||
- name: Upload raw image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-ru_RU-${{ steps.vars.outputs.sha_short }}.raw
|
||||
path: build-ru_RU/data/kolibri.raw
|
||||
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.raw
|
||||
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.raw
|
||||
retention-days: 15
|
||||
|
||||
# -------------------------- Build es_ES ------------------------- #
|
||||
- name: (es_ES) Build KolibriOS
|
||||
deploy:
|
||||
name: "Publish Images"
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ghcr.io/vicchi/gitea-actions:3.10-slim-bullseye
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
# checkout@v4 needs Node 20; the deploy container ships an older Node, so use v3 here
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
pattern: "*"
|
||||
path: ./artifacts
|
||||
merge-multiple: true
|
||||
|
||||
- name: Normalize artifacts layout
|
||||
id: normalize
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
source kos32-export-env-vars ${{ gitea.workspace }}
|
||||
tup build-es_ES
|
||||
set -eu
|
||||
|
||||
- name: (es_ES) Upload floppy image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.img
|
||||
path: build-es_ES/data/kolibri.img
|
||||
rm -rf ./norm-artifacts
|
||||
mkdir -p ./norm-artifacts
|
||||
|
||||
- name: (es_ES) Upload CD image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.iso
|
||||
path: build-es_ES/data/kolibri.iso
|
||||
find ./artifacts -type f \( \
|
||||
-name 'kolibrios-*.img' -o \
|
||||
-name 'kolibrios-*.iso' -o \
|
||||
-name 'kolibrios-*.raw' \
|
||||
\) | while read -r file; do
|
||||
fname="$(basename "$file")" # kolibrios-<descr>-<lang>.<ext>
|
||||
name_without_ext="${fname%.*}"
|
||||
lang="${name_without_ext##*-}"
|
||||
|
||||
- name: (es_ES) Upload raw image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-es_ES-${{ steps.vars.outputs.sha_short }}.raw
|
||||
path: build-es_ES/data/kolibri.raw
|
||||
mkdir -p "./norm-artifacts/$lang"
|
||||
cp "$file" "./norm-artifacts/$lang/$fname"
|
||||
done
|
||||
|
||||
# derive the version (git describe) from an artifact name:
|
||||
# kolibrios-<descr>-<lang>.<ext> -> <descr>
|
||||
sample="$(find ./norm-artifacts -type f -name 'kolibrios-*' | head -n1)"
|
||||
base="$(basename "${sample%.*}")" # kolibrios-<descr>-<lang>
|
||||
version="${base%-*}" # kolibrios-<descr>
|
||||
version="${version#kolibrios-}" # <descr>
|
||||
echo "version=$version" >> $GITEA_OUTPUT
|
||||
|
||||
find ./norm-artifacts -type f -print
|
||||
|
||||
- name: Setup SSH
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
chmod 700 ~/.ssh
|
||||
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
ssh-keyscan -H ${{ secrets.STORAGE_SERVER }} >> ~/.ssh/known_hosts
|
||||
|
||||
- name: Install fresh Ansible
|
||||
run: |
|
||||
python3 -m pip install --user --upgrade pip
|
||||
python3 -m pip install --user 'ansible-core>=2.17,<2.18'
|
||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
~/.local/bin/ansible --version
|
||||
|
||||
- name: Run Ansible playbook
|
||||
run: |
|
||||
ansible-playbook .gitea/ansible/playbooks/deploy.yml \
|
||||
-i "${{ secrets.STORAGE_SERVER }}," \
|
||||
-u "${{ secrets.STORAGE_USER }}" \
|
||||
-e "storage_user=${{ secrets.STORAGE_USER }}" \
|
||||
-e "storage_path=${{ secrets.STORAGE_PATH }}" \
|
||||
-e "version=${{ steps.normalize.outputs.version }}" \
|
||||
-e "artifact_path=${{ gitea.workspace }}/norm-artifacts" \
|
||||
-v
|
||||
@@ -1,54 +0,0 @@
|
||||
use Encode;
|
||||
while (<STDIN>)
|
||||
{
|
||||
$str = $_;
|
||||
# Rule 6. All code and text files should be in UTF-8 without BOM.
|
||||
if ($. == 1) {
|
||||
die "Style error in @ARGV[0]:$.: BOM is not allowed.\n" if substr($_,0,3) eq "\xEF\xBB\xBF";
|
||||
}
|
||||
unless(defined(eval{decode_utf8($_,Encode::FB_CROAK)})) {
|
||||
die "Style error in @ARGV[0]:$.: the file must be in UTF-8.\n";
|
||||
}
|
||||
# Rule 1. No tab characters allowed.
|
||||
$_ = $str;
|
||||
die "Style error in @ARGV[0]:$.: no tab characters allowed.\n" if m/\t/;
|
||||
if ($continued) {
|
||||
die "Style error in @ARGV[0]:$.: arguments continued in the next line must start from the same position as in the first line\n" if ($continued != -1 && m/^(\s*)[^;]/ && length($1) != $continued);
|
||||
undef $continued unless m/\\\s*(;.*)?$/;
|
||||
} else {
|
||||
# Rule 2. Any label must be on a separate line. It is not allowed to have a label and anything except a comment on the same line.
|
||||
if (m/^(\s*[^;"\x27\s\$][^;"\x27\s]*:)?(\s*)(stdcall|ccall|invoke|cinvoke|bt|in|ja|jb|jc|je|jg|jl|jo|jp|js|jz|or|aaa|aad|aam|aas|adc|add|and|bsf|bsr|btc|btr|bts|cbw|cdq|clc|cld|cli|cmc|cmp|cqo|cwd|daa|das|dec|div|fld|fst|hlt|inc|ins|int|jae|jbe|jge|jle|jmp|jna|jnb|jnc|jne|jng|jnl|jno|jnp|jns|jnz|jpe|jpo|lar|lds|lea|les|lfs|lgs|lsl|lss|ltr|mov|mul|neg|nop|not|out|pop|por|rcl|rcr|rep|ret|rol|ror|rsm|sal|sar|sbb|shl|shr|stc|std|sti|str|sub|ud2|xor|arpl|call|cdqe|clgi|clts|cmps|cwde|dppd|dpps|emms|fabs|fadd|fbld|fchs|fcom|fcos|fdiv|feni|fild|fist|fld1|fldz|fmul|fnop|fsin|fstp|fsub|ftst|fxam|fxch|idiv|imul|insb|insd|insw|int1|int3|into|invd|iret|jcxz|jnae|jnbe|jnge|jnle|lahf|lgdt|lidt|lldt|lmsw|lock|lods|loop|movd|movq|movs|orpd|orps|outs|pand|popa|popd|popf|popq|popw|push|pxor|repe|repz|retd|retf|retn|retq|retw|sahf|salc|scas|seta|setb|setc|sete|setg|setl|seto|setp|sets|setz|sgdt|shld|shrd|sidt|sldt|smsw|stgi|stos|test|verr|verw|vpor|wait|xadd|xchg|xlat|addpd|addps|addsd|addss|andpd|andps|bound|bswap|cmova|cmovb|cmovc|cmove|cmovg|cmovl|cmovo|cmovp|cmovs|cmovz|cmppd|cmpps|cmpsb|cmpsd|cmpsq|cmpss|cmpsw|cpuid|crc32|divpd|divps|divsd|divss|enter|extrq|f2xm1|faddp|fbstp|fclex|fcomi|fcomp|fdisi|fdivp|fdivr|femms|ffree|fiadd|ficom|fidiv|fimul|finit|fistp|fisub|fldcw|fldpi|fmulp|fneni|fprem|fptan|fsave|fsqrt|fstcw|fstsw|fsubp|fsubr|fucom|fwait|fyl2x|icebp|iretd|iretq|iretw|jecxz|jrcxz|lddqu|leave|lodsb|lodsd|lodsq|lodsw|loopd|loope|loopq|loopw|loopz|lzcnt|maxpd|maxps|maxsd|maxss|minpd|minps|minsd|minss|movbe|movsb|movsd|movsq|movss|movsw|movsx|movzx|mulpd|mulps|mulsd|mulss|mwait|outsb|outsd|outsw|pabsb|pabsd|pabsw|paddb|paddd|paddq|paddw|pandn|pause|pavgb|pavgw|pf2id|pf2iw|pfacc|pfadd|pfmax|pfmin|pfmul|pfrcp|pfsub|pi2fd|pi2fw|popad|popaw|popfd|popfq|popfw|pslld|psllq|psllw|psrad|psraw|psrld|psrlq|psrlw|psubb|psubd|psubq|psubw|ptest|pusha|pushd|pushf|pushq|pushw|rcpps|rcpss|rdmsr|rdpmc|rdtsc|repne|repnz|retfd|retfq|retfw|retnd|retnq|retnw|scasb|scasd|scasq|scasw|setae|setbe|setge|setle|setna|setnb|setnc|setne|setng|setnl|setno|setnp|setns|setnz|setpe|setpo|stosb|stosd|stosq|stosw|subpd|subps|subsd|subss|vdppd|vdpps|vmovd|vmovq|vmrun|vmxon|vorpd|vorps|vpand|vpxor|wrmsr|xlatb|xorpd|xorps|xsave|aesdec|aesenc|aesimc|andnpd|andnps|cmovae|cmovbe|cmovge|cmovle|cmovna|cmovnb|cmovnc|cmovne|cmovng|cmovnl|cmovno|cmovnp|cmovns|cmovnz|cmovpe|cmovpo|comisd|comiss|fcmovb|fcmove|fcmovu|fcomip|fcompp|fdivrp|ffreep|ficomp|fidivr|fisttp|fisubr|fldenv|fldl2e|fldl2t|fldlg2|fldln2|fnclex|fndisi|fninit|fnsave|fnstcw|fnstsw|fpatan|fprem1|frstor|frstpm|fsaved|fsavew|fscale|fsetpm|fstenv|fsubrp|fucomi|fucomp|fxsave|getsec|haddpd|haddps|hsubpd|hsubps|invept|invlpg|lfence|looped|loopeq|loopew|loopne|loopnz|loopzd|loopzq|loopzw|mfence|movapd|movaps|movdqa|movdqu|movhpd|movhps|movlpd|movlps|movnti|movntq|movsxd|movupd|movups|paddsb|paddsw|pextrb|pextrd|pextrq|pextrw|pfnacc|pfsubr|phaddd|phaddw|phsubd|phsubw|pinsrb|pinsrd|pinsrq|pinsrw|pmaxsb|pmaxsd|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmuldq|pmulhw|pmulld|pmullw|popcnt|psadbw|pshufb|pshufd|pshufw|psignb|psignd|psignw|pslldq|psrldq|psubsb|psubsw|pswapd|pushad|pushaw|pushfd|pushfq|pushfw|rdmsrq|rdrand|rdtscp|setalc|setnae|setnbe|setnge|setnle|sfence|shufpd|shufps|skinit|sqrtpd|sqrtps|sqrtsd|sqrtss|swapgs|sysret|vaddpd|vaddps|vaddsd|vaddss|vandpd|vandps|vcmppd|vcmpps|vcmpsd|vcmpss|vdivpd|vdivps|vdivsd|vdivss|vlddqu|vmaxpd|vmaxps|vmaxsd|vmaxss|vmcall|vminpd|vminps|vminsd|vminss|vmload|vmovsd|vmovss|vmread|vmsave|vmulpd|vmulps|vmulsd|vmulss|vmxoff|vpabsb|vpabsd|vpabsw|vpaddb|vpaddd|vpaddq|vpaddw|vpandn|vpavgb|vpavgw|vpcmov|vpcomb|vpcomd|vpcomq|vpcomw|vpperm|vprotb|vprotd|vprotq|vprotw|vpshab|vpshad|vpshaq|vpshaw|vpshlb|vpshld|vpshlq|vpshlw|vpslld|vpsllq|vpsllw|vpsrad|vpsraw|vpsrld|vpsrlq|vpsrlw|vpsubb|vpsubd|vpsubq|vpsubw|vptest|vrcpps|vrcpss|vsubpd|vsubps|vsubsd|vsubss|vxorpd|vxorps|wbinvd|wrmsrq|xgetbv|xrstor|xsetbv|blendpd|blendps|clflush|cmovnae|cmovnbe|cmovnge|cmovnle|cmpeqpd|cmpeqps|cmpeqsd|cmpeqss|cmplepd|cmpleps|cmplesd|cmpless|cmpltpd|cmpltps|cmpltsd|cmpltss|cmpxchg|fcmovbe|fcmovnb|fcmovne|fcmovnu|fdecstp|fincstp|fldenvd|fldenvw|fnsaved|fnsavew|fnstenv|frndint|frstord|frstorw|fsincos|fstenvd|fstenvw|fucomip|fucompp|fxrstor|fxtract|fyl2xp1|insertq|invlpga|invvpid|ldmxcsr|loopned|loopneq|loopnew|loopnzd|loopnzq|loopnzw|monitor|movddup|movdq2q|movhlps|movlhps|movntdq|movntpd|movntps|movntsd|movntss|movq2dq|mpsadbw|paddusb|paddusw|palignr|pavgusb|pblendw|pcmpeqb|pcmpeqd|pcmpeqq|pcmpeqw|pcmpgtb|pcmpgtd|pcmpgtq|pcmpgtw|pfcmpeq|pfcmpge|pfcmpgt|pfpnacc|pfrsqrt|phaddsw|phsubsw|pmaddwd|pmulhrw|pmulhuw|pmuludq|pshufhw|pshuflw|psubusb|psubusw|roundpd|roundps|roundsd|roundss|rsqrtps|rsqrtss|stmxcsr|syscall|sysexit|sysretq|ucomisd|ucomiss|vaesdec|vaesenc|vaesimc|vandnpd|vandnps|vcomisd|vcomiss|vfrczpd|vfrczps|vfrczsd|vfrczss|vhaddpd|vhaddps|vhsubpd|vhsubps|vmclear|vmmcall|vmovapd|vmovaps|vmovdqa|vmovdqu|vmovhpd|vmovhps|vmovlpd|vmovlps|vmovupd|vmovups|vmptrld|vLine truncated
|
||||
{
|
||||
$label = $1; $indent = $2; $mnem = $3; $spaces = $4; $args = $5;
|
||||
die "Style error in @ARGV[0]:$.: any label must be on a separate line.\n" if length($label);
|
||||
# Rule 3. Lines with commands must start with 8 spaces.
|
||||
# A mnemonic is short if it's length is less than 8.
|
||||
# Arguments for short mnemonics must start in the column 16.
|
||||
# Arguments for long mnemonics must be separated from the mnemonic by exactly one space.
|
||||
# Otherwise, there must be exactly one space between the mnemonic and it's arguments.
|
||||
# Arguments must be separated with a comma and exactly one space after a comma.
|
||||
die "Style error in @ARGV[0]:$.: indent for commands must be 8 spaces.\n" if ($indent ne " ");
|
||||
if (length($mnem) >= 8 || $mnem eq "rep" || $mnem eq "repz" || $mnem eq "repe" || $mnem eq "repnz" || $mnem eq "repne" || $mnem eq "lock")
|
||||
{
|
||||
die "Style error in @ARGV[0]:$.: arguments for long mnemonics must be separated from the mnemonic by exactly one space.\n" if ($args ne "" && $spaces ne " ");
|
||||
}
|
||||
else
|
||||
{
|
||||
die "Style error in @ARGV[0]:$.: arguments for short mnemonics must start in the column 16.\n" if ($args ne "" && $spaces ne " " x (8 - length($mnem)));
|
||||
}
|
||||
$args =~ s/\s*$//;
|
||||
@a = split /([\x27"])(.*?\1)/, $args;
|
||||
$z = 0;
|
||||
foreach $s(@a)
|
||||
{
|
||||
die "Style error in @ARGV[0]:$.: arguments must be separated with a comma and exactly one space after a comma.\n" if ($z++%3==0 && $s =~ m/,(\s{2,})?([^\\\s]|$)/);
|
||||
};
|
||||
$continued = length($indent) + length($mnem) + length($spaces) if ($args =~ m/\\$/);
|
||||
}
|
||||
else
|
||||
{
|
||||
$continued = -1 if m/\\\s*(;.*)?$/;
|
||||
}
|
||||
}
|
||||
}
|
||||
exit 0;
|
||||
@@ -1,82 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# SPDX-FileCopyrightText: 2025 KolibriOS Team
|
||||
|
||||
# Written by mxlgv (Maxim Logaev)
|
||||
# Installation steps described by maxcodehack (Maxim Kuzmitsky)
|
||||
|
||||
set -e
|
||||
|
||||
print_msg(){
|
||||
echo -e "\e[34m$1\e[0m"
|
||||
}
|
||||
|
||||
print_ok(){
|
||||
echo -e "\e[32m$1\e[0m"
|
||||
}
|
||||
|
||||
print_err(){
|
||||
echo -e "\e[31m$1\e[0m"
|
||||
exit
|
||||
}
|
||||
|
||||
check_utils(){
|
||||
printf "%s: " $1
|
||||
if command -v $1 &> /dev/null
|
||||
then
|
||||
print_ok "ok\r"
|
||||
else
|
||||
print_err "no\r"
|
||||
fi
|
||||
}
|
||||
|
||||
print_msg "Checking utilities..."
|
||||
|
||||
check_utils wget
|
||||
check_utils 7z
|
||||
|
||||
print_msg "Create the /home/autobuild folder..."
|
||||
sudo rm -rf ~/autobuild /home/autobuild
|
||||
mkdir -p ~/autobuild/tools
|
||||
sudo ln -sf ~/autobuild /home/autobuild
|
||||
print_ok "Successfully!"
|
||||
|
||||
print_msg "Download the kos32-gcc toolchain..."
|
||||
wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -O ~/autobuild/tools/kos32-toolchain.7z
|
||||
print_ok "Successfully!"
|
||||
|
||||
print_msg "Extracting files ..."
|
||||
cd ~/autobuild/tools/
|
||||
7z x -y kos32-toolchain.7z
|
||||
rm -rf kos32-toolchain.7z
|
||||
print_ok "Successfully!"
|
||||
|
||||
print_msg "Downloading libisl..."
|
||||
cd /tmp
|
||||
sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -O /tmp/libisl.so.10.2.2.7z
|
||||
sudo 7z x -y libisl.so.10.2.2.7z
|
||||
|
||||
if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then
|
||||
sudo mkdir -p /usr/lib/x86_64-linux-gnu/
|
||||
fi
|
||||
|
||||
print_msg "Fixing libisl..."
|
||||
sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
|
||||
sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10
|
||||
sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10
|
||||
sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10
|
||||
sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
|
||||
print_ok "Successfully!"
|
||||
|
||||
print_msg "Fixing libmpfr..."
|
||||
sudo ln -sf /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
|
||||
sudo ln -sf /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4
|
||||
print_ok "Successfully!"
|
||||
|
||||
if ! grep -q 'export PATH=$PATH:/home/autobuild/tools/win32/bin' ~/.bashrc; then
|
||||
export PATH=$PATH:/home/autobuild/tools/win32/bin
|
||||
print_msg "Adding '/home/autobuild/tools/win32/bin' to '~/.bashrc'"
|
||||
echo 'export PATH=$PATH:/home/autobuild/tools/win32/bin' >> ~/.bashrc
|
||||
fi
|
||||
print_ok "Installation was successful!"
|
||||
@@ -0,0 +1,37 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# SPDX-FileCopyrightText: 2025 KolibriOS team
|
||||
|
||||
name: 'Check kernel codestyle'
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- 'main'
|
||||
paths:
|
||||
- 'kernel/**'
|
||||
- '.gitea/workflows/kernel-check.yaml'
|
||||
- '.gitea/utils/check-kernel-codestyle.py'
|
||||
|
||||
jobs:
|
||||
codestyle:
|
||||
name: "Check kernel codestyle"
|
||||
runs-on: kolibri-toolchain
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
sparse-checkout: |
|
||||
kernel/trunk
|
||||
.gitea/utils
|
||||
|
||||
- name: Check codestyle
|
||||
run: |
|
||||
find kernel/trunk \
|
||||
\( -iname '*.asm' -or -iname '*.inc' \) \
|
||||
-exec sh -c '
|
||||
for file do
|
||||
echo "$file"
|
||||
python3 .gitea/utils/check-kernel-codestyle.py "$file"
|
||||
done
|
||||
' sh {} +
|
||||
@@ -0,0 +1,210 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# SPDX-FileCopyrightText: 2026 KolibriOS team
|
||||
|
||||
# This workflow is for commits in PRs to test them before merging.
|
||||
# All PRs MUST be tested before merging, and if I see Maxim turn this off again
|
||||
# I'll kick his ass.
|
||||
|
||||
# Serious things you have here, guys...
|
||||
|
||||
name: 'Test PR'
|
||||
|
||||
# Test build for every pull request
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- 'main'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: 'Build (${{ matrix.lang }})'
|
||||
runs-on: kolibri-toolchain
|
||||
# one parallel job per language variant
|
||||
strategy:
|
||||
matrix:
|
||||
lang: [en_US, ru_RU, es_ES]
|
||||
|
||||
steps:
|
||||
# shallow clone is enough: PR builds embed no revision id, and the
|
||||
# artifact name uses the short head sha (no git describe)
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 1
|
||||
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TOOLCHAIN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# cache the toolchain sources by hash to not rebuild them every time
|
||||
- name: Get toolchain hash
|
||||
id: toolchain-hash
|
||||
run: |
|
||||
a=$(find ${{ gitea.workspace }}/programs/develop/cmm/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
b=$(sha1sum ${{ gitea.workspace }}/programs/develop/ktcc/bin/kos32-tcc)
|
||||
c=$(find ${{ gitea.workspace }}/programs/develop/objconv/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
d=$(find ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
e=$(find ${{ gitea.workspace }}/programs/other/kpack/linux/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
f=$(find ${{ gitea.workspace }}/programs/develop/clink/ -type f -print0 | sort -z | xargs -0 sha1sum)
|
||||
echo hash=$(echo $a $b $c $d $e $f | sha1sum | awk '{print $1}') >> $GITEA_OUTPUT
|
||||
|
||||
# restore previously cached toolchain by hash (restore-only, PRs don't save)
|
||||
- name: Restore toolchain
|
||||
id: cache-toolchain
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: /home/autobuild
|
||||
key: kolibri-toolchain-${{ steps.toolchain-hash.outputs.hash }}
|
||||
|
||||
# build toolchain if cache miss or obsolote
|
||||
- name: Build and install C--
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd ${{ gitea.workspace }}/programs/develop/cmm/
|
||||
make -f Makefile.lin32
|
||||
chmod +x c--
|
||||
mv c-- /home/autobuild/tools/win32/bin/c--
|
||||
cp ${{ gitea.workspace }}/programs/cmm/c--/c--.ini /home/autobuild/tools/win32/bin/c--.ini
|
||||
make -f Makefile.lin32 clean
|
||||
|
||||
- name: Install TCC
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cp ${{ gitea.workspace }}/programs/develop/ktcc/bin/kos32-tcc /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
chmod +x /home/autobuild/tools/win32/bin/kos32-tcc
|
||||
|
||||
- name: Build and install objconv
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd ${{ gitea.workspace }}/programs/develop/objconv/
|
||||
g++ -o /home/autobuild/tools/win32/bin/objconv -O2 *.cpp
|
||||
chmod +x /home/autobuild/tools/win32/bin/objconv
|
||||
|
||||
- name: Build and install kerpack and kpack
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
cd ${{ gitea.workspace }}/programs/other/kpack/kerpack_linux/
|
||||
make
|
||||
chmod +x kerpack
|
||||
chmod +x kpack
|
||||
mv kerpack /home/autobuild/tools/win32/bin/.
|
||||
mv kpack /home/autobuild/tools/win32/bin/.
|
||||
|
||||
- name: Build and install clink
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
cd ${{ gitea.workspace }}/programs/develop/clink
|
||||
gcc main.c -o clink
|
||||
chmod a+x clink
|
||||
mv clink /home/autobuild/tools/win32/bin/clink
|
||||
|
||||
# move freshly built toolchain into the path that gets cached
|
||||
- name: Prepare cache folder
|
||||
run: |
|
||||
rm /home/autobuild
|
||||
mv /root/autobuild /home/autobuild
|
||||
if: steps.cache-toolchain.outputs.cache-hit != 'true'
|
||||
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TUP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# restore tup cache (this PR head, else fall back to main); PRs don't save it
|
||||
- name: Cache Tup
|
||||
id: cache-tup
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
.tup
|
||||
build-${{ matrix.lang }}
|
||||
key: tup-${{ gitea.event.pull_request.head.sha }}
|
||||
restore-keys: |
|
||||
tup-
|
||||
|
||||
# check if a cache was restored or if we need to start fresh build
|
||||
- name: Check if cache was restored
|
||||
id: check-tup-cache
|
||||
run: |
|
||||
if [ -d ${{ gitea.workspace}}/.tup ] ; then
|
||||
echo "cache_restored=true" >> $GITEA_OUTPUT
|
||||
fi
|
||||
|
||||
# cache restore resets ctimes; realign tup DB to skip a full rebuild,
|
||||
# but keep files changed since the cache's commit dirty so tup rebuilds them
|
||||
- name: Sync tup DB with filesystem ctime
|
||||
if: steps.check-tup-cache.outputs.cache_restored == 'true'
|
||||
run: |
|
||||
DIRTY=$(mktemp)
|
||||
BASE=$(cat .tup/build-commit 2>/dev/null || true)
|
||||
if [ -n "$BASE" ] && (git cat-file -e "${BASE}^{commit}" 2>/dev/null || git fetch --depth=1 origin "$BASE" 2>/dev/null); then
|
||||
git -c core.quotePath=false diff --name-only "$BASE" HEAD > "$DIRTY"
|
||||
echo "Cache built at $BASE; $(wc -l < "$DIRTY") changed files kept dirty"
|
||||
python3 .gitea/utils/sync-tup-ctime.py .tup/db "$DIRTY"
|
||||
else
|
||||
echo "No usable cache base commit; skipping sync (tup rebuilds all)"
|
||||
fi
|
||||
|
||||
# write the variant config
|
||||
- name: Configure tup
|
||||
run: |
|
||||
export ROOT=${{ gitea.workspace }}
|
||||
echo "CONFIG_KPACK_CMD= && kpack --nologo %o" > ${{ matrix.lang }}.config
|
||||
echo "CONFIG_KERPACK_CMD= && kerpack %o" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_PESTRIP_CMD= && EXENAME=%o fasm $ROOT/data/common/pestrip.asm %o" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_NO_MSVC=full" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_INSERT_REVISION_ID=0" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_LANG=${{ matrix.lang }}" >> ${{ matrix.lang }}.config
|
||||
echo "CONFIG_BUILD_TYPE=${{ matrix.lang }}" >> ${{ matrix.lang }}.config
|
||||
|
||||
# initialize the tup DB and register the variant
|
||||
- name: Init tup
|
||||
if: steps.check-tup-cache.outputs.cache_restored != 'true'
|
||||
run: |
|
||||
export ROOT=${{ gitea.workspace }}
|
||||
tup init
|
||||
tup variant ${{ matrix.lang }}.config
|
||||
|
||||
# build the image for language variant
|
||||
- name: Build KolibriOS
|
||||
run: |
|
||||
export PATH=/home/autobuild/tools/win32/bin:$PATH
|
||||
source kos32-export-env-vars ${{ gitea.workspace }}
|
||||
tup build-${{ matrix.lang }}
|
||||
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ARTIFACTS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# short head sha to pin the PR iteration in the artifact names
|
||||
- name: Get short SHA
|
||||
id: vars
|
||||
run: echo "sha=$(git rev-parse --short HEAD)" >> $GITEA_OUTPUT
|
||||
|
||||
# rename build outputs to their final names so artifacts are bare files
|
||||
- name: Rename images
|
||||
run: |
|
||||
for ext in img iso raw; do
|
||||
cp "build-${{ matrix.lang }}/data/kolibri.$ext" \
|
||||
"kolibrios-PR${{ gitea.event.pull_request.number }}-${{ steps.vars.outputs.sha }}-${{ matrix.lang }}.$ext"
|
||||
done
|
||||
|
||||
#publish the three images, named by PR number + sha
|
||||
- name: Upload floppy image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-PR${{ gitea.event.pull_request.number }}-${{ steps.vars.outputs.sha }}-${{ matrix.lang }}.img
|
||||
path: kolibrios-PR${{ gitea.event.pull_request.number }}-${{ steps.vars.outputs.sha }}-${{ matrix.lang }}.img
|
||||
retention-days: 2
|
||||
|
||||
- name: Upload CD image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-PR${{ gitea.event.pull_request.number }}-${{ steps.vars.outputs.sha }}-${{ matrix.lang }}.iso
|
||||
path: kolibrios-PR${{ gitea.event.pull_request.number }}-${{ steps.vars.outputs.sha }}-${{ matrix.lang }}.iso
|
||||
retention-days: 2
|
||||
|
||||
- name: Upload raw image
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: kolibrios-PR${{ gitea.event.pull_request.number }}-${{ steps.vars.outputs.sha }}-${{ matrix.lang }}.raw
|
||||
path: kolibrios-PR${{ gitea.event.pull_request.number }}-${{ steps.vars.outputs.sha }}-${{ matrix.lang }}.raw
|
||||
retention-days: 2
|
||||
@@ -0,0 +1,87 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
# SPDX-FileCopyrightText: 2026 KolibriOS team
|
||||
|
||||
name: 'Update submodules'
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 * * * *' # hourly
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
bump:
|
||||
name: 'Bump ${{ matrix.name }} to upstream'
|
||||
runs-on: kolibri-toolchain
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- name: cmm
|
||||
path: programs/develop/cmm
|
||||
- name: oberon07
|
||||
path: programs/develop/oberon07
|
||||
- name: kterm
|
||||
path: programs/other/kterm
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
|
||||
- name: Bump ${{ matrix.name }} and open PR
|
||||
env:
|
||||
TOKEN: ${{ secrets.BOT_TOKEN }}
|
||||
API: ${{ github.api_url }}
|
||||
REPO: ${{ github.repository }}
|
||||
NAME: ${{ matrix.name }}
|
||||
PATH_: ${{ matrix.path }}
|
||||
BRANCH: chore/update-${{ matrix.name }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
git submodule update --remote "$PATH_"
|
||||
|
||||
# look only at this submodule: the other jobs in the matrix are
|
||||
# bumping their own, and the rest of the tree is none of our business
|
||||
if git diff --quiet -- "$PATH_"; then
|
||||
echo "$NAME is already up to date"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
WANT=$(git -C "$PATH_" rev-parse HEAD)
|
||||
|
||||
# skip revisions that already have PR opened
|
||||
if git fetch -q origin "$BRANCH" 2>/dev/null; then
|
||||
HAVE=$(git rev-parse "FETCH_HEAD:$PATH_" 2>/dev/null || echo none)
|
||||
if [ "$HAVE" = "$WANT" ]; then
|
||||
echo "$NAME bump to $WANT is already waiting in $BRANCH"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
git config user.name "kolibri-bot"
|
||||
git config user.email "bot@kolibrios.org"
|
||||
git checkout -B "$BRANCH"
|
||||
git commit -m "$NAME: bump submodule to $WANT" -- "$PATH_"
|
||||
git push -f origin "$BRANCH"
|
||||
|
||||
# Open a PR via the Gitea API.
|
||||
# 201 = created, 409 = a PR for this branch is already open (the
|
||||
# force-push above already updated it) - both are fine.
|
||||
http=$(curl -sS -o /tmp/pr.json -w '%{http_code}' -X POST \
|
||||
-H "Authorization: token ${TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"head\":\"${BRANCH}\",\"base\":\"main\",\"title\":\"${NAME}: bump submodule to upstream\"}" \
|
||||
"${API}/repos/${REPO}/pulls")
|
||||
echo "PR API HTTP status: $http"
|
||||
cat /tmp/pr.json; echo
|
||||
if [ "$http" != "201" ] && [ "$http" != "409" ]; then
|
||||
echo "Failed to create pull request"
|
||||
exit 1
|
||||
fi
|
||||
@@ -9,3 +9,9 @@ ehthumbs_vista.db
|
||||
._*
|
||||
programs/cmm/cmm.code-workspace
|
||||
programs/cmm/menu/.gitignore
|
||||
|
||||
.tup/
|
||||
|
||||
/build-*/
|
||||
/*.config
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
[submodule "programs/develop/cmm"]
|
||||
path = programs/develop/cmm
|
||||
url = https://git.kolibrios.org/KolibriOS/cmm.git
|
||||
branch = main
|
||||
[submodule "programs/develop/oberon07"]
|
||||
path = programs/develop/oberon07
|
||||
url = https://github.com/AntKrotov/oberon-07-compiler.git
|
||||
branch = master
|
||||
[submodule "programs/other/kterm"]
|
||||
path = programs/other/kterm
|
||||
url = https://git.kolibrios.org/b00bl1k/kterm.git
|
||||
branch = master
|
||||
@@ -9,6 +9,10 @@ Its kernel, most drivers, and many programs are written entirely in [FASM](https
|
||||
|
||||
Based on [MenuetOS](https://www.menuetos.net/), it uses its own standards and is NOT fully POSIX or UNIX compliant.
|
||||
|
||||
## Website
|
||||
|
||||
Visit the [official KolibriOS website](https://kolibrios.org) for more information, downloads, and documentation.
|
||||
|
||||
## Contributing
|
||||
|
||||
We would appreciate any participation in the project and always welcome new users and contributors.
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
; SPDX-License-Identifier: NOASSERTION
|
||||
;
|
||||
|
||||
format coff
|
||||
use32 ; Tell compiler to use 32 bit instructions
|
||||
|
||||
@@ -7,8 +10,8 @@ include '../../../programs/proc32.inc'
|
||||
include '../../../programs/macros.inc'
|
||||
purge section,mov,add,sub
|
||||
|
||||
include '../../../programs/develop/libraries/box_lib/trunk/box_lib.mac'
|
||||
include '../../../programs/system/run/trunk/txtbut.inc'
|
||||
include '../../../programs/develop/libraries/box_lib/box_lib.mac'
|
||||
include '../../../programs/system/run/txtbut.inc'
|
||||
include '../../../programs/dll.inc'
|
||||
|
||||
public init_boxlib as '_kolibri_boxlib_init'
|
||||
@@ -159,8 +162,8 @@ public path_show_draw as '_path_show_draw'
|
||||
|
||||
public fb_draw_panel as '_filebrowse_draw'
|
||||
public fb_mouse as '_filebrowse_mouse'
|
||||
public fb_key as '_filebrowse_key'
|
||||
|
||||
public fb_key as '_filebrowse_key'
|
||||
|
||||
public ted_but_sumb_upper as '_ted_but_sumb_upper'
|
||||
public ted_but_sumb_lover as '_ted_but_sumb_lover'
|
||||
public ted_but_convert_by_table as '_ted_but_convert_by_table'
|
||||
|
||||
@@ -31,8 +31,8 @@ import lib_libini, \
|
||||
LIBINI_enum_keys , 'ini_enum_keys' , \
|
||||
LIBINI_get_str , 'ini_get_str' , \
|
||||
LIBINI_get_int , 'ini_get_int' , \
|
||||
LIBINI_get_color , 'int_get_color' , \
|
||||
LIBINI_get_shortcut , 'int_get_shortcut' , \
|
||||
LIBINI_get_color , 'ini_get_color' , \
|
||||
LIBINI_get_shortcut , 'ini_get_shortcut' , \
|
||||
LIBINI_set_str , 'ini_set_str' , \
|
||||
LIBINI_set_int , 'ini_set_int' , \
|
||||
LIBINI_set_color , 'ini_set_color'
|
||||
|
||||
@@ -1,152 +1,153 @@
|
||||
// BOXLIB example (scrollbar, progressbar)
|
||||
// ! without kolibri_gui !
|
||||
// Writed by maxcodehack
|
||||
// TCC version is in /programs/develop/ktcc/trunk/samples
|
||||
#include <kos32sys.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/// BOXLIB
|
||||
// Modified from C_Layer
|
||||
// C_Layer variant I don't like
|
||||
extern int kolibri_boxlib_init(void);
|
||||
typedef struct __attribute__ ((__packed__)) {
|
||||
uint16_t xsize;
|
||||
uint16_t xpos;
|
||||
uint16_t ysize;
|
||||
uint16_t ypos;
|
||||
uint32_t btn_height;
|
||||
uint32_t type;
|
||||
uint32_t max_area;
|
||||
uint32_t cur_area;
|
||||
uint32_t position;
|
||||
uint32_t back_color;
|
||||
uint32_t front_color;
|
||||
uint32_t line_color;
|
||||
uint32_t redraw;
|
||||
uint16_t delta;
|
||||
uint16_t delta2;
|
||||
uint16_t r_size_x;
|
||||
uint16_t r_start_x;
|
||||
uint16_t r_size_y;
|
||||
uint16_t r_start_y;
|
||||
uint32_t m_pos;
|
||||
uint32_t m_pos2;
|
||||
uint32_t m_keys;
|
||||
uint32_t run_size;
|
||||
uint32_t position2;
|
||||
uint32_t work_size;
|
||||
uint32_t all_redraw;
|
||||
uint32_t ar_offset;
|
||||
} scrollbar;
|
||||
|
||||
extern void (*scrollbar_h_draw)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_h_mouse)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_v_draw)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_v_mouse)(scrollbar*) __attribute__((__stdcall__));
|
||||
|
||||
typedef struct {
|
||||
unsigned int value;
|
||||
unsigned int left;
|
||||
unsigned int top;
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
unsigned int style;
|
||||
unsigned int min;
|
||||
unsigned int max;
|
||||
unsigned int back_color;
|
||||
unsigned int progress_color;
|
||||
unsigned int frame_color;
|
||||
} progressbar;
|
||||
|
||||
extern void (*progressbar_draw)(progressbar *) __attribute__((__stdcall__));
|
||||
extern void (*progressbar_progress)(progressbar *) __attribute__((__stdcall__));
|
||||
/// BOXLIB
|
||||
|
||||
|
||||
#define evReDraw 1
|
||||
#define evKey 2
|
||||
#define evButton 3
|
||||
#define evExit 4
|
||||
#define evDesktop 5
|
||||
#define evMouse 6
|
||||
#define evIPC 7
|
||||
#define evNetwork 8
|
||||
#define evDebug 9
|
||||
|
||||
#define WIN_W 640
|
||||
#define WIN_H 563
|
||||
|
||||
uint32_t wheels;
|
||||
char* title = "Boxlib example";
|
||||
int win_bg_color = 0x858585;
|
||||
scrollbar scroll = {15, WIN_W - 26, WIN_H - 29, 0, 0, 2, 215, 15, 0,0x707070,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
|
||||
progressbar pg = {0, 10, 10, 270, 35, 1, 0, 200, 0xB4B4B4, 0x2728FF, 0xA9A9A9};
|
||||
|
||||
void draw_window(){
|
||||
BeginDraw();
|
||||
DrawWindow(215,100,WIN_W,WIN_H,title,win_bg_color,0x34);
|
||||
scrollbar_v_draw(&scroll);
|
||||
progressbar_draw(&pg);
|
||||
EndDraw();
|
||||
}
|
||||
|
||||
//// EVENTMASK
|
||||
#define EVM_REDRAW 1
|
||||
#define EVM_KEY 2
|
||||
#define EVM_BUTTON 4
|
||||
#define EVM_EXIT 8
|
||||
#define EVM_BACKGROUND 16
|
||||
#define EVM_MOUSE 32
|
||||
#define EVM_IPC 64
|
||||
#define EVM_STACK 128
|
||||
#define EVM_DEBUG 256
|
||||
#define EVM_STACK2 512
|
||||
#define EVM_MOUSE_FILTER 0x80000000
|
||||
#define EVM_CURSOR_FILTER 0x40000000
|
||||
//// EVENTMASK
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
kolibri_boxlib_init();
|
||||
|
||||
set_wanted_events_mask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
||||
while(1)
|
||||
{
|
||||
switch(GetOsEvent())
|
||||
{
|
||||
case evButton:
|
||||
if (get_os_button() == 1) exit(0);
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
get_key();
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
draw_window();
|
||||
break;
|
||||
case evMouse:
|
||||
scrollbar_v_mouse(&scroll);
|
||||
|
||||
// Wheel scrolling
|
||||
// Quite unstable
|
||||
/*
|
||||
int scroll_strong = 40;
|
||||
wheels = GetMouseWheels();
|
||||
if(wheels & 0xFFFF)
|
||||
{
|
||||
if((short)wheels > 0 && scroll.position < scroll.max_area - scroll_strong)
|
||||
scroll.position += scroll_strong;
|
||||
else if((short)wheels < 0 && scroll.position > 0)
|
||||
scroll.position -= scroll_strong;
|
||||
|
||||
scrollbar_v_draw(&scroll);
|
||||
}
|
||||
*/
|
||||
pg.value = scroll.position;
|
||||
progressbar_draw(&pg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// BOXLIB example (scrollbar, progressbar)
|
||||
// ! without kolibri_gui !
|
||||
// Writed by maxcodehack
|
||||
// TCC version is in /programs/develop/ktcc/libc.obj/samples/clayer/boxlib.c
|
||||
|
||||
#include <kos32sys.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/// BOXLIB
|
||||
// Modified from C_Layer
|
||||
// C_Layer variant I don't like
|
||||
extern int kolibri_boxlib_init(void);
|
||||
typedef struct __attribute__ ((__packed__)) {
|
||||
uint16_t xsize;
|
||||
uint16_t xpos;
|
||||
uint16_t ysize;
|
||||
uint16_t ypos;
|
||||
uint32_t btn_height;
|
||||
uint32_t type;
|
||||
uint32_t max_area;
|
||||
uint32_t cur_area;
|
||||
uint32_t position;
|
||||
uint32_t back_color;
|
||||
uint32_t front_color;
|
||||
uint32_t line_color;
|
||||
uint32_t redraw;
|
||||
uint16_t delta;
|
||||
uint16_t delta2;
|
||||
uint16_t r_size_x;
|
||||
uint16_t r_start_x;
|
||||
uint16_t r_size_y;
|
||||
uint16_t r_start_y;
|
||||
uint32_t m_pos;
|
||||
uint32_t m_pos2;
|
||||
uint32_t m_keys;
|
||||
uint32_t run_size;
|
||||
uint32_t position2;
|
||||
uint32_t work_size;
|
||||
uint32_t all_redraw;
|
||||
uint32_t ar_offset;
|
||||
} scrollbar;
|
||||
|
||||
extern void (*scrollbar_h_draw)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_h_mouse)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_v_draw)(scrollbar*) __attribute__((__stdcall__));
|
||||
extern void (*scrollbar_v_mouse)(scrollbar*) __attribute__((__stdcall__));
|
||||
|
||||
typedef struct {
|
||||
unsigned int value;
|
||||
unsigned int left;
|
||||
unsigned int top;
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
unsigned int style;
|
||||
unsigned int min;
|
||||
unsigned int max;
|
||||
unsigned int back_color;
|
||||
unsigned int progress_color;
|
||||
unsigned int frame_color;
|
||||
} progressbar;
|
||||
|
||||
extern void (*progressbar_draw)(progressbar *) __attribute__((__stdcall__));
|
||||
extern void (*progressbar_progress)(progressbar *) __attribute__((__stdcall__));
|
||||
/// BOXLIB
|
||||
|
||||
|
||||
#define evReDraw 1
|
||||
#define evKey 2
|
||||
#define evButton 3
|
||||
#define evExit 4
|
||||
#define evDesktop 5
|
||||
#define evMouse 6
|
||||
#define evIPC 7
|
||||
#define evNetwork 8
|
||||
#define evDebug 9
|
||||
|
||||
#define WIN_W 640
|
||||
#define WIN_H 563
|
||||
|
||||
uint32_t wheels;
|
||||
char* title = "Boxlib example";
|
||||
int win_bg_color = 0x858585;
|
||||
scrollbar scroll = {15, WIN_W - 26, WIN_H - 29, 0, 0, 2, 215, 15, 0,0x707070,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
|
||||
progressbar pg = {0, 10, 10, 270, 35, 1, 0, 200, 0xB4B4B4, 0x2728FF, 0xA9A9A9};
|
||||
|
||||
void draw_window(){
|
||||
BeginDraw();
|
||||
DrawWindow(215,100,WIN_W,WIN_H,title,win_bg_color,0x34);
|
||||
scrollbar_v_draw(&scroll);
|
||||
progressbar_draw(&pg);
|
||||
EndDraw();
|
||||
}
|
||||
|
||||
//// EVENTMASK
|
||||
#define EVM_REDRAW 1
|
||||
#define EVM_KEY 2
|
||||
#define EVM_BUTTON 4
|
||||
#define EVM_EXIT 8
|
||||
#define EVM_BACKGROUND 16
|
||||
#define EVM_MOUSE 32
|
||||
#define EVM_IPC 64
|
||||
#define EVM_STACK 128
|
||||
#define EVM_DEBUG 256
|
||||
#define EVM_STACK2 512
|
||||
#define EVM_MOUSE_FILTER 0x80000000
|
||||
#define EVM_CURSOR_FILTER 0x40000000
|
||||
//// EVENTMASK
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
kolibri_boxlib_init();
|
||||
|
||||
set_wanted_events_mask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
|
||||
while(1)
|
||||
{
|
||||
switch(GetOsEvent())
|
||||
{
|
||||
case evButton:
|
||||
if (get_os_button() == 1) exit(0);
|
||||
break;
|
||||
|
||||
case evKey:
|
||||
get_key();
|
||||
break;
|
||||
|
||||
case evReDraw:
|
||||
draw_window();
|
||||
break;
|
||||
case evMouse:
|
||||
scrollbar_v_mouse(&scroll);
|
||||
|
||||
// Wheel scrolling
|
||||
// Quite unstable
|
||||
/*
|
||||
int scroll_strong = 40;
|
||||
wheels = GetMouseWheels();
|
||||
if(wheels & 0xFFFF)
|
||||
{
|
||||
if((short)wheels > 0 && scroll.position < scroll.max_area - scroll_strong)
|
||||
scroll.position += scroll_strong;
|
||||
else if((short)wheels < 0 && scroll.position > 0)
|
||||
scroll.position -= scroll_strong;
|
||||
|
||||
scrollbar_v_draw(&scroll);
|
||||
}
|
||||
*/
|
||||
pg.value = scroll.position;
|
||||
progressbar_draw(&pg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
if tup.getconfig("NO_FASM") ~= "" then return end
|
||||
lang = (tup.getconfig("LANG") == "") and "en_US" or tup.getconfig("LANG")
|
||||
tup.rule("launcher.asm", "fasm -dlang=" .. lang .. " %f %o " .. tup.getconfig("KPACK_CMD"), "launcher")
|
||||
@@ -0,0 +1,229 @@
|
||||
; Splits command line to argv array.
|
||||
; Uses standard Windows rules:
|
||||
; * in normal mode, arguments are separated with spaces and tabs,
|
||||
; duplicate spaces and tabs are ignored
|
||||
; (two sequential spaces are the same as one);
|
||||
; * unescaped quote " in normal mode starts quoted mode,
|
||||
; it does not end the current argument, it is not included in the argument;
|
||||
; * spaces and tabs in quoted mode are included in the argument as is;
|
||||
; * unescaped quote " in quoted mode returns to normal mode,
|
||||
; it does not end the current argument, it is not included in the argument;
|
||||
; * quotes can be escaped with backslashes \ in both modes
|
||||
; (the recommended way), \" means copying " to the argument
|
||||
; without switching modes;
|
||||
; * backslashes not before a quote are just regular characters,
|
||||
; backslashes before a quote should be escaped by another backslash:
|
||||
; " means unescaped quote
|
||||
; \" means character "
|
||||
; \\" means character \ plus unescaped quote
|
||||
; \\\" means characters \"
|
||||
; and so on;
|
||||
; * quotes in quoted mode can also be escaped by doubling them, ""
|
||||
; (the confusing way); note that in normal mode "" means empty argument.
|
||||
; For example, the command line
|
||||
; begin"quoted mode"end\ \"escaped" "quotes" "1\" "" """escaped quotes 2"""
|
||||
; has 4 arguments:
|
||||
; 1) beginquoted modeend\
|
||||
; 2) "escaped quotes 1"
|
||||
; 3)
|
||||
; 4) "escaped quotes 2"
|
||||
; The recommended way to create a command line with the same arguments:
|
||||
; "beginquoted modeend"\ "\"escaped quotes 1\"" "\"escaped quotes 2\"".
|
||||
;
|
||||
; in: esi -> command line
|
||||
; in: edi -> data for arguments, maybe null
|
||||
; in: edx -> pointers to arguments, maybe null
|
||||
; out: ebx = argument count
|
||||
;
|
||||
; There are too many branches and labels here,
|
||||
; isolate some of them into macro.
|
||||
macro start_arg
|
||||
; Increments argument count;
|
||||
; if arguments are tracked, stores the current address.
|
||||
{
|
||||
local .label
|
||||
test edx, edx
|
||||
jz .label
|
||||
mov [edx], edi
|
||||
add edx, 4
|
||||
.label:
|
||||
inc ebx
|
||||
}
|
||||
; In typical cases decoded arguments and input line have large chunks in common.
|
||||
; When going through the input string, we do not copy arguments immediately,
|
||||
; but track size of last chunk that should be copied instead.
|
||||
; This macros copies the last chunk of data if arguments are tracked.
|
||||
; If arguments are tracked, ecx is reset to zero;
|
||||
; otherwise, we do not care about ecx.
|
||||
macro copy_arg_data
|
||||
{
|
||||
local .label
|
||||
test edi, edi
|
||||
jz .label
|
||||
dec esi
|
||||
sub esi, ecx
|
||||
rep movsb
|
||||
inc esi
|
||||
.label:
|
||||
}
|
||||
; Process backslash.
|
||||
macro process_slash
|
||||
{
|
||||
; 1. Count number of backslashes.
|
||||
local .label1, .label2
|
||||
xor ecx, ecx
|
||||
.label1:
|
||||
inc ecx
|
||||
mov al, byte [esi]
|
||||
inc esi
|
||||
cmp al, '\'
|
||||
jz .label1
|
||||
; 2. If the next character is not ", backslash is a regular character;
|
||||
; copy all of them.
|
||||
cmp al, '"'
|
||||
jnz .label2
|
||||
; 3. If the next character is ", then only half of backslashes
|
||||
; should be copied, other are escaping characters.
|
||||
; If number of backslashes is odd, include " to copied chunk
|
||||
; and advance to the next character.
|
||||
shr ecx, 1
|
||||
jnc .label2
|
||||
mov al, byte [esi]
|
||||
inc esi
|
||||
inc ecx
|
||||
.label2:
|
||||
copy_arg_data
|
||||
}
|
||||
|
||||
; Parser procedure.
|
||||
proc parse_cmdline
|
||||
; Registers:
|
||||
; ebx = argc = argument count
|
||||
; ecx = size of last chunk if edi is nonzero, garbage otherwise
|
||||
; al = current input character = [esi-1]
|
||||
; esi = pointer to input past the current character
|
||||
; edi = zero or pointer to the next output data
|
||||
; edx = zero or pointer to the next output pointer
|
||||
xor ebx, ebx
|
||||
xor ecx, ecx
|
||||
; There are two large blocks of code for normal and quoted modes.
|
||||
; We start in normal mode.
|
||||
; 1. Processing in normal mode.
|
||||
; 1a. Skip initial spaces and tabs.
|
||||
.skip_spaces:
|
||||
mov al, byte [esi]
|
||||
inc esi
|
||||
cmp al, ' '
|
||||
jz .skip_spaces
|
||||
cmp al, 9
|
||||
jz .skip_spaces
|
||||
; 1b. If the command line has ended, exit.
|
||||
test al, al
|
||||
jz .done
|
||||
; 1c. Any character in this state starts a new argument.
|
||||
start_arg
|
||||
; 1d. Loop over the input string, watching for one of:
|
||||
; (space), (tab), (terminator), ", \
|
||||
; All other characters should be copied as is.
|
||||
; The first character here cannot be (space), (tab) or (terminator),
|
||||
; but " and \ are possible. For these, skip 1e, because we have nothing
|
||||
; to copy yet, and go directly where 1f would direct us.
|
||||
cmp al, '"'
|
||||
jz .enter_quoted_mode
|
||||
cmp al, '\'
|
||||
jz .slash_normal
|
||||
.normal_mode:
|
||||
inc ecx
|
||||
.enter_normal_mode:
|
||||
mov al, byte [esi]
|
||||
inc esi
|
||||
.reenter_normal_mode:
|
||||
cmp al, ' '
|
||||
jz .copydata
|
||||
cmp al, 9
|
||||
jz .copydata
|
||||
test al, al
|
||||
jz .copydata
|
||||
cmp al, '\'
|
||||
jz .copydata
|
||||
cmp al, '"'
|
||||
jnz .normal_mode
|
||||
.copydata:
|
||||
; 1e. Copy the found chunk.
|
||||
copy_arg_data
|
||||
; 1f. One of (space), (tab), (terminator), ", \ is found.
|
||||
; For terminator, end the current argument and exit.
|
||||
; For \, go to 1h.
|
||||
; For ", switch to quoted mode.
|
||||
test al, al
|
||||
jz .done_termarg
|
||||
cmp al, '\'
|
||||
jz .slash_normal
|
||||
cmp al, '"'
|
||||
jz .enter_quoted_mode
|
||||
; 1g. If we are here, (space) or (tab) has occured in 1d.
|
||||
; End the current argument and restart processing from 1a.
|
||||
test edi, edi
|
||||
jz .skip_spaces
|
||||
mov byte [edi], 0
|
||||
inc edi
|
||||
jmp .skip_spaces
|
||||
.done_termarg:
|
||||
test edi, edi
|
||||
jz .done
|
||||
mov byte [edi], 0
|
||||
inc edi
|
||||
.done:
|
||||
ret
|
||||
.slash_normal:
|
||||
; 1h. Process chunk of slashes with possible ending " if escaped
|
||||
; as described in process_slash macros.
|
||||
; After that, return to loop in 1d; note that the next character can be space.
|
||||
process_slash
|
||||
jmp .reenter_normal_mode
|
||||
; 2. Processing in quoted mode.
|
||||
; This block is simpler because the current argument never ends in quoted mode,
|
||||
; except when the input ends.
|
||||
; 2a. Loop over the input string, watching for one of:
|
||||
; (terminator), ", \.
|
||||
.quoted_mode:
|
||||
inc ecx
|
||||
.enter_quoted_mode:
|
||||
mov al, byte [esi]
|
||||
inc esi
|
||||
.reenter_quoted_mode:
|
||||
test al, al
|
||||
jz .copydata2
|
||||
cmp al, '\'
|
||||
jz .copydata2
|
||||
cmp al, '"'
|
||||
jnz .quoted_mode
|
||||
.copydata2:
|
||||
; 2b. Copy the found chunk.
|
||||
copy_arg_data
|
||||
; 2c. One of (terminator), ", \ is found.
|
||||
; For terminator, end the current argument and exit.
|
||||
; For \, go to 2d.
|
||||
test al, al
|
||||
jz .done_termarg
|
||||
cmp al, '\'
|
||||
jz .slash_quoted
|
||||
; For ", check whether the next character is also ":
|
||||
; for a single quote, switch to the normal mode 1d,
|
||||
; for a double quote, skip the first quote
|
||||
; and start a new chunk from the second one.
|
||||
cmp byte [esi], '"'
|
||||
jnz .enter_normal_mode
|
||||
.double_quote:
|
||||
inc esi
|
||||
jmp .quoted_mode
|
||||
.slash_quoted:
|
||||
; 2d. Process chunk of slashes with possible ending " if escaped
|
||||
; as described in process_slash macros.
|
||||
; After that, return to loop in 2a.
|
||||
process_slash
|
||||
jmp .reenter_quoted_mode
|
||||
endp
|
||||
purge start_arg
|
||||
purge copy_arg_data
|
||||
purge process_slash
|
||||
@@ -0,0 +1,55 @@
|
||||
# Параметры запуска sdldoom (KolibriOS)
|
||||
|
||||
Этот список отражает реальные параметры, доступные в текущей сборке из этого репозитория.
|
||||
Проверено по:
|
||||
- `d_main.c`, `g_game.c`, `i_net.c`, `i_video.c`, `m_misc.c`, `p_spec.c`.
|
||||
|
||||
> Примечание: лаунчер пока запускает только Wolf3D и Quake; список Doom приведён для справки.
|
||||
|
||||
## Параметры (по блокам)
|
||||
|
||||
### Файлы и данные
|
||||
- `@<file>` - response-файл с аргументами.
|
||||
- `-file <wad1> [wad2 ...]` - добавить PWAD(ы) (до первого аргумента, что начинается с `-`).
|
||||
- `-config <file>` - путь к конфигу (вместо `.doomrc`).
|
||||
- `-cdrom` - использовать `c:\doomdata\` для сейвов/конфигов.
|
||||
|
||||
### Режимы игры / сложность
|
||||
- `-skill <1..5>` - сложность.
|
||||
- `-episode <n>` - стартовый эпизод.
|
||||
- `-warp <map>` или `-warp <episode> <map>` - старт с указанного уровня.
|
||||
- `-wart <episode> <map>` - совместимая форма `-warp`.
|
||||
- `-turbo <percent>` - скорость игрока в процентах.
|
||||
- `-nomonsters` - без монстров.
|
||||
- `-respawn` - монстры возрождаются.
|
||||
- `-fast` - режим fast-monsters.
|
||||
- `-deathmatch` - deathmatch.
|
||||
- `-altdeath` - alt-death (без выхода из игры).
|
||||
- `-timer <minutes>` - лимит времени (для deathmatch).
|
||||
- `-avg` - вывод средних значений (для deathmatch).
|
||||
|
||||
### Демо, тесты и производительность
|
||||
- `-record <name>` - запись демо.
|
||||
- `-playdemo <name>` - воспроизведение демо.
|
||||
- `-timedemo <name>` - timedemo (тест скорости).
|
||||
- `-loadgame <slot>` - загрузить сохранение (номер слота).
|
||||
- `-maxdemo <kB>` - максимальный размер демо (в KB).
|
||||
- `-statcopy <addr>` - копировать статистику во внешний буфер.
|
||||
- `-nodraw` - выключить рендер.
|
||||
- `-noblit` - выключить blit.
|
||||
- `-debugfile` - писать debug-файл `debug<player>.txt`.
|
||||
- `-devparm` - developer-режим.
|
||||
- `-shdev`, `-regdev`, `-comdev` - developer-наборы данных.
|
||||
|
||||
### Сеть
|
||||
- `-net <player> ...` - netgame-параметры.
|
||||
- `-port <p>` - сетевой порт.
|
||||
- `-dup <n>` - ticdup.
|
||||
- `-extratic` - extra tic для синхронизации.
|
||||
|
||||
### Видео и ввод
|
||||
- `-fullscreen` - полноэкранный SDL-режим.
|
||||
- `-2` - масштаб 2x от 320x200 (640x400). Значение по умолчанию.
|
||||
- `-3` - масштаб 3x от 320x200 (960x600).
|
||||
- Режим 1x (320x200) недоступен: `multiply` по умолчанию равен 2, флага `-1` нет.
|
||||
- `-grabmouse` - захват мыши.
|
||||
@@ -0,0 +1,785 @@
|
||||
; SPDX-License-Identifier: GPL-2.0-only
|
||||
;
|
||||
; Launcher - Launcher for Wolf3D, Doom, Quake
|
||||
; Copyright (C) 2025-2026 KolibriOS team
|
||||
;
|
||||
; Contributor mxlgv - Idea
|
||||
; Contributor Burer - Main code
|
||||
|
||||
; ================================================================
|
||||
|
||||
use32
|
||||
org 0
|
||||
|
||||
; ================================================================
|
||||
|
||||
db "MENUET01"
|
||||
dd 0x01
|
||||
dd START
|
||||
dd I_END
|
||||
dd MEM
|
||||
dd STACK_TOP
|
||||
dd CMD_LINE
|
||||
dd 0
|
||||
|
||||
; ================================================================
|
||||
|
||||
include "../../../programs/macros.inc"
|
||||
include "../../../programs/KOSfuncs.inc"
|
||||
include "../../../programs/encoding.inc"
|
||||
include "../../../programs/proc32.inc"
|
||||
include "../../../programs/dll.inc"
|
||||
include "../../../programs/develop/libraries/box_lib/box_lib.mac"
|
||||
include "cmdline.inc"
|
||||
|
||||
; ================================================================
|
||||
|
||||
LIBS:
|
||||
library gui, "box_lib.obj"
|
||||
import gui, optionbox.draw, "option_box_draw", \
|
||||
optionbox.mouse, "option_box_mouse"
|
||||
|
||||
; ================================================================
|
||||
|
||||
START:
|
||||
; Parse the command line FIRST: heap init and dll.Load below reuse the
|
||||
; memory the OS placed it in, so reading it later loses the --game arg.
|
||||
call select_game
|
||||
|
||||
mcall SF_SET_EVENTS_MASK, EVM_REDRAW + EVM_BUTTON + EVM_MOUSE
|
||||
mcall SF_STYLE_SETTINGS, SSF_GET_COLORS, sc, sizeof.system_colors
|
||||
mcall SF_SYS_MISC, SSF_HEAP_INIT
|
||||
|
||||
; load gamepad icon from reshare (32 bpp); eax = 0 if ICONS18W absent
|
||||
mcall SF_SYS_MISC, SSF_MEM_OPEN, icon_mem, , 0
|
||||
test eax, eax
|
||||
jz @f
|
||||
lea eax, [eax + 23 * IC_PLAY.W * IC_PLAY.H * 4]
|
||||
|
||||
@@:
|
||||
mov [icon_play], eax
|
||||
|
||||
; load dynamic libraries
|
||||
stdcall dll.Load, LIBS
|
||||
test eax, eax
|
||||
jnz button.exit
|
||||
|
||||
call draw_window
|
||||
|
||||
jmp still
|
||||
|
||||
; ================================================================
|
||||
|
||||
still:
|
||||
mcall SF_WAIT_EVENT
|
||||
|
||||
cmp al, EV_REDRAW
|
||||
je redraw
|
||||
|
||||
cmp al, EV_BUTTON
|
||||
je button
|
||||
|
||||
call options_mouse
|
||||
jmp still
|
||||
|
||||
; ================================================================
|
||||
|
||||
redraw:
|
||||
call draw_window
|
||||
jmp still
|
||||
|
||||
; ================================================================
|
||||
|
||||
button:
|
||||
mcall SF_GET_BUTTON
|
||||
|
||||
cmp ah, 1
|
||||
je .exit
|
||||
|
||||
cmp ah, BTN_PLAY
|
||||
je run_game
|
||||
|
||||
jmp still
|
||||
|
||||
.exit:
|
||||
mcall SF_TERMINATE_PROCESS
|
||||
|
||||
; ================================================================
|
||||
|
||||
draw_window:
|
||||
|
||||
mcall SF_REDRAW, SSF_BEGIN_DRAW
|
||||
|
||||
mov edx, [sc.work]
|
||||
add edx, 0x34000000
|
||||
mcall SF_CREATE_WINDOW, <WN_RECT.X, WN_RECT.W>, <WN_RECT.Y, WN_RECT.H>, , , [title_ptr]
|
||||
|
||||
; mode, resolutions and scale headers
|
||||
mov ecx, FONT_BIG
|
||||
add ecx, [sc.work_text]
|
||||
|
||||
mcall SF_DRAW_TEXT, <LB_MODE.X, LB_MODE.Y> , , label_mode
|
||||
mcall , <LB_MODE.X + 1, LB_MODE.Y> , ,
|
||||
mcall , <LB_RES.X, LB_RES.Y> , , label_res
|
||||
mcall , <LB_RES.X + 1, LB_RES.Y> , ,
|
||||
mcall , <LB_SCALE.X, LB_SCALE.Y>, , label_scale
|
||||
mcall , <LB_SCALE.X + 1, LB_SCALE.Y>, ,
|
||||
|
||||
; options groups
|
||||
call options_set_colors
|
||||
|
||||
invoke optionbox.draw, op_list_mode
|
||||
invoke optionbox.draw, op_list_res
|
||||
invoke optionbox.draw, op_list_scale
|
||||
|
||||
call draw_option_labels
|
||||
|
||||
; play button
|
||||
mcall SF_DEFINE_BUTTON, <BT_PLAY.X, BT_PLAY.W>, <BT_PLAY.Y, BT_PLAY.H>, BTN_PLAY, [sc.work_button]
|
||||
|
||||
mov ecx, [sc.work_button_text]
|
||||
add ecx, FONT_BIG
|
||||
mcall SF_DRAW_TEXT, <LB_PLAY.X, LB_PLAY.Y>, , text_play
|
||||
|
||||
call draw_icon_transparent
|
||||
|
||||
mcall SF_REDRAW, SSF_END_DRAW
|
||||
|
||||
ret
|
||||
|
||||
|
||||
draw_option_labels:
|
||||
mov ecx, [sc.work_text]
|
||||
add ecx, FONT_BIG
|
||||
mcall SF_DRAW_TEXT, <LB_MODE_WIN.X, LB_MODE_WIN.Y> , , text_win
|
||||
mcall , <LB_MODE_WINF.X, LB_MODE_WINF.Y>, , text_winf
|
||||
mcall , <LB_MODE_FULL.X, LB_MODE_FULL.Y>, , text_full
|
||||
|
||||
cmp [op_group_mode], op_mode_win
|
||||
je .windowed
|
||||
|
||||
; dimmed labels for resolution and scale in fullscreen mode
|
||||
mov ecx, [sc.work_graph]
|
||||
add ecx, FONT_BIG
|
||||
|
||||
.windowed:
|
||||
mcall SF_DRAW_TEXT, <LB_RES_320_200.X, LB_RES_320_200.Y>, , text_320_200
|
||||
mcall , <LB_RES_320_240.X, LB_RES_320_240.Y>, , text_320_240
|
||||
mcall , <LB_SCALE_1.X, LB_SCALE_1.Y> , , text_x1
|
||||
mcall , <LB_SCALE_2.X, LB_SCALE_2.Y> , , text_x2
|
||||
mcall , <LB_SCALE_3.X, LB_SCALE_3.Y> , , text_x3
|
||||
mcall , <LB_SCALE_4.X, LB_SCALE_4.Y> , , text_x4
|
||||
|
||||
ret
|
||||
|
||||
|
||||
draw_icon_transparent:
|
||||
|
||||
mov esi, [icon_play]
|
||||
test esi, esi ; ICONS18W unavailable -> skip icon
|
||||
jz .ret
|
||||
mov edi, [sc.work]
|
||||
and edi, 0x00FFFFFF
|
||||
mov ecx, IC_PLAY.Y
|
||||
mov ebp, IC_PLAY.H
|
||||
|
||||
.row:
|
||||
mov ebx, IC_PLAY.X
|
||||
mov eax, IC_PLAY.W
|
||||
|
||||
.col:
|
||||
mov edx, [esi]
|
||||
and edx, 0x00FFFFFF
|
||||
cmp edx, edi
|
||||
je .skip
|
||||
cmp edx, 0x00C5BDB9
|
||||
je .skip
|
||||
push eax
|
||||
mcall SF_PUT_PIXEL
|
||||
pop eax
|
||||
|
||||
.skip:
|
||||
add esi, 4
|
||||
inc ebx
|
||||
dec eax
|
||||
jnz .col
|
||||
inc ecx
|
||||
dec ebp
|
||||
jnz .row
|
||||
|
||||
.ret:
|
||||
ret
|
||||
|
||||
; ================================================================
|
||||
|
||||
options_mouse:
|
||||
|
||||
invoke optionbox.mouse, op_list_mode
|
||||
|
||||
cmp [op_group_mode], op_mode_win
|
||||
jne .fullscreen
|
||||
|
||||
invoke optionbox.mouse, op_list_res
|
||||
invoke optionbox.mouse, op_list_scale
|
||||
|
||||
.fullscreen:
|
||||
call options_sync
|
||||
test al, al
|
||||
jnz draw_window
|
||||
|
||||
ret
|
||||
|
||||
|
||||
options_sync:
|
||||
|
||||
xor eax, eax
|
||||
|
||||
mov ebx, MODE_WIN
|
||||
cmp [op_group_mode], op_mode_win
|
||||
je .mode_set
|
||||
mov ebx, MODE_WINF
|
||||
cmp [op_group_mode], op_mode_winf
|
||||
je .mode_set
|
||||
mov ebx, MODE_FULL
|
||||
.mode_set:
|
||||
cmp [mode], ebx
|
||||
je .mode_done
|
||||
mov [mode], ebx
|
||||
or al, 1
|
||||
.mode_done:
|
||||
|
||||
xor ebx, ebx
|
||||
cmp [op_group_res], op_res_320_200
|
||||
setne bl
|
||||
cmp [base_res_index], ebx
|
||||
je .res_done
|
||||
mov [base_res_index], ebx
|
||||
or al, 1
|
||||
.res_done:
|
||||
|
||||
xor ebx, ebx
|
||||
cmp [op_group_scale], op_scale_1
|
||||
je .scale_set
|
||||
inc ebx
|
||||
cmp [op_group_scale], op_scale_2
|
||||
je .scale_set
|
||||
inc ebx
|
||||
cmp [op_group_scale], op_scale_3
|
||||
je .scale_set
|
||||
inc ebx
|
||||
.scale_set:
|
||||
cmp [scale_index], ebx
|
||||
je .scale_done
|
||||
mov [scale_index], ebx
|
||||
or al, 1
|
||||
.scale_done:
|
||||
|
||||
ret
|
||||
|
||||
|
||||
options_set_colors:
|
||||
|
||||
mov eax, [sc.work_button]
|
||||
mov ebx, [sc.work_light]
|
||||
mov ecx, [sc.work]
|
||||
add ecx, FONT_BIG
|
||||
|
||||
mov esi, op_list_mode
|
||||
call options_set_group_colors
|
||||
|
||||
cmp [mode], dword MODE_WIN
|
||||
jne .disabled
|
||||
|
||||
mov esi, op_list_res
|
||||
call options_set_group_colors
|
||||
|
||||
mov esi, op_list_scale
|
||||
call options_set_group_colors
|
||||
|
||||
ret
|
||||
|
||||
.disabled:
|
||||
mov eax, [sc.work_graph]
|
||||
mov ebx, [sc.work]
|
||||
mov ecx, [sc.work]
|
||||
add ecx, FONT_BIG
|
||||
|
||||
mov esi, op_list_res
|
||||
call options_set_group_colors
|
||||
|
||||
mov esi, op_list_scale
|
||||
call options_set_group_colors
|
||||
|
||||
ret
|
||||
|
||||
|
||||
options_set_group_colors:
|
||||
|
||||
.loop:
|
||||
mov edi, [esi]
|
||||
test edi, edi
|
||||
jz .end
|
||||
mov op_border_color, eax
|
||||
mov op_color, ebx
|
||||
mov op_text_color, ecx
|
||||
add esi, 4
|
||||
jmp .loop
|
||||
.end:
|
||||
|
||||
ret
|
||||
|
||||
; ================================================================
|
||||
|
||||
select_game:
|
||||
mov dword [title_ptr], title_wolf
|
||||
mov dword [args_res_ptr], args_res_wolf
|
||||
mov dword [run_info.file], run_name_wolf
|
||||
|
||||
cld
|
||||
mov esi, CMD_LINE
|
||||
mov edi, argv_buf
|
||||
mov edx, argv_ptrs
|
||||
call parse_cmdline
|
||||
|
||||
mov ecx, ebx
|
||||
mov esi, argv_ptrs
|
||||
|
||||
.loop:
|
||||
test ecx, ecx
|
||||
jz .done
|
||||
mov eax, [esi]
|
||||
add esi, 4
|
||||
dec ecx
|
||||
mov edi, token_game
|
||||
call streq
|
||||
jnz .loop
|
||||
|
||||
test ecx, ecx
|
||||
jz .done
|
||||
mov eax, [esi]
|
||||
add esi, 4
|
||||
dec ecx
|
||||
|
||||
mov edi, arg_wolf
|
||||
call streq
|
||||
jz .set_wolf
|
||||
mov edi, arg_quake
|
||||
call streq
|
||||
jz .set_quake
|
||||
mov edi, arg_doom
|
||||
call streq
|
||||
jz .set_doom
|
||||
jmp .loop
|
||||
|
||||
.set_wolf:
|
||||
mov dword [title_ptr], title_wolf
|
||||
mov dword [args_res_ptr], args_res_wolf
|
||||
mov dword [args_fs_ptr], arg_fullscreen_wolf
|
||||
mov dword [run_info.file], run_name_wolf
|
||||
jmp .loop
|
||||
|
||||
.set_doom:
|
||||
mov dword [title_ptr], title_doom
|
||||
mov dword [args_res_ptr], args_res_doom
|
||||
mov dword [args_fs_ptr], arg_fullscreen
|
||||
mov dword [run_info.file], run_name_doom
|
||||
jmp .loop
|
||||
|
||||
.set_quake:
|
||||
mov dword [title_ptr], title_quake
|
||||
mov dword [args_res_ptr], args_res_quake
|
||||
mov dword [args_fs_ptr], arg_fullscreen
|
||||
mov dword [run_info.file], run_name_quake
|
||||
jmp .loop
|
||||
|
||||
.done:
|
||||
ret
|
||||
|
||||
streq:
|
||||
push esi
|
||||
push edi
|
||||
mov esi, eax
|
||||
.cmp:
|
||||
mov bl, [esi]
|
||||
mov bh, [edi]
|
||||
cmp bl, bh
|
||||
jne .no
|
||||
test bl, bl
|
||||
jz .yes
|
||||
inc esi
|
||||
inc edi
|
||||
jmp .cmp
|
||||
.yes:
|
||||
pop edi
|
||||
pop esi
|
||||
xor eax, eax
|
||||
ret
|
||||
.no:
|
||||
pop edi
|
||||
pop esi
|
||||
or eax, 1
|
||||
ret
|
||||
|
||||
; ================================================================
|
||||
|
||||
args_build:
|
||||
mov edi, args_buffer
|
||||
mov ecx, ARGS_BUF_SIZE
|
||||
xor eax, eax
|
||||
rep stosb
|
||||
mov edi, args_buffer
|
||||
|
||||
mov esi, [args_res_ptr]
|
||||
call args_append_str
|
||||
|
||||
cmp [mode], dword MODE_WIN
|
||||
je .windowed
|
||||
cmp [mode], dword MODE_FULL
|
||||
je .exclusive
|
||||
|
||||
; windowed fullscreen mode, screen_size - consts
|
||||
call get_screen_size
|
||||
call get_skin_height
|
||||
mov eax, [screen_w]
|
||||
sub eax, UI_PADDING * 2
|
||||
mov edx, [screen_h]
|
||||
sub edx, [skin_h]
|
||||
sub edx, UI_PADDING
|
||||
jmp .emit
|
||||
|
||||
; exclusive fullscreen, full screen size (borderless via -fullscreen)
|
||||
.exclusive:
|
||||
call get_screen_size
|
||||
mov eax, [screen_w]
|
||||
mov edx, [screen_h]
|
||||
jmp .emit
|
||||
|
||||
; windowed mode, res * scale
|
||||
.windowed:
|
||||
mov eax, [base_res_index]
|
||||
mov ebx, [base_w + eax * 4]
|
||||
mov edx, [base_h + eax * 4]
|
||||
mov eax, [scale_index]
|
||||
mov ecx, [scale_vals + eax * 4]
|
||||
imul ebx, ecx
|
||||
imul edx, ecx
|
||||
mov eax, ebx
|
||||
|
||||
.emit:
|
||||
push edx
|
||||
call args_append_uint
|
||||
mov al, ' '
|
||||
stosb
|
||||
pop edx
|
||||
mov eax, edx
|
||||
call args_append_uint
|
||||
|
||||
cmp [mode], dword MODE_FULL
|
||||
jne .no_fs
|
||||
mov esi, [args_fs_ptr]
|
||||
test esi, esi
|
||||
jz .no_fs
|
||||
call args_append_str
|
||||
.no_fs:
|
||||
|
||||
ret
|
||||
|
||||
|
||||
args_append_str:
|
||||
|
||||
lodsb
|
||||
test al, al
|
||||
jz .done
|
||||
stosb
|
||||
jmp args_append_str
|
||||
|
||||
.done:
|
||||
ret
|
||||
|
||||
|
||||
args_append_uint:
|
||||
|
||||
mov esi, num_buf + 15
|
||||
mov byte [esi], 0
|
||||
mov ebx, 10
|
||||
|
||||
cmp eax, 0
|
||||
jne .loop
|
||||
|
||||
dec esi
|
||||
mov byte [esi], '0'
|
||||
jmp .copy
|
||||
|
||||
.loop:
|
||||
xor edx, edx
|
||||
div ebx
|
||||
add dl, '0'
|
||||
dec esi
|
||||
mov [esi], dl
|
||||
test eax, eax
|
||||
jne .loop
|
||||
|
||||
.copy:
|
||||
mov al, [esi]
|
||||
test al, al
|
||||
jz .done
|
||||
|
||||
stosb
|
||||
inc esi
|
||||
jmp .copy
|
||||
|
||||
.done:
|
||||
ret
|
||||
|
||||
; ================================================================
|
||||
|
||||
run_game:
|
||||
|
||||
call args_build
|
||||
mov dword [run_info.args], args_buffer
|
||||
mcall SF_FILE, run_info
|
||||
|
||||
jmp still
|
||||
|
||||
; ================================================================
|
||||
|
||||
get_screen_size:
|
||||
|
||||
mcall SF_GET_SCREEN_SIZE
|
||||
movzx ecx, ax
|
||||
inc ecx
|
||||
mov [screen_h], ecx
|
||||
shr eax, 16
|
||||
inc eax
|
||||
mov [screen_w], eax
|
||||
|
||||
ret
|
||||
|
||||
|
||||
get_skin_height:
|
||||
|
||||
mcall SF_STYLE_SETTINGS, SSF_GET_SKIN_HEIGHT
|
||||
mov [skin_h], eax
|
||||
|
||||
ret
|
||||
|
||||
; ================================================================
|
||||
|
||||
WN_RECT RECT 128, 128, 220, 293
|
||||
|
||||
LB_MODE RECT 7, 10, 0, 0
|
||||
|
||||
LB_MODE_WIN RECT 30, 35, 0, 0
|
||||
LB_MODE_WINF RECT 30, 58, 0, 0
|
||||
LB_MODE_FULL RECT 30, 81, 0, 0
|
||||
|
||||
BT_MODE_WIN RECT 8, 34, 15, 15
|
||||
BT_MODE_WINF RECT 8, 57, 15, 15
|
||||
BT_MODE_FULL RECT 8, 80, 15, 15
|
||||
|
||||
LB_RES RECT 7, 109, 0, 0
|
||||
|
||||
LB_RES_320_200 RECT 30, 134, 0, 0
|
||||
LB_RES_320_240 RECT 30, 158, 0, 0
|
||||
|
||||
BT_RES_320_200 RECT 8, 133, 15, 15
|
||||
BT_RES_320_240 RECT 8, 157, 15, 15
|
||||
|
||||
LB_SCALE RECT 134, 109, 0, 0
|
||||
|
||||
LB_SCALE_1 RECT 157, 134, 0, 0
|
||||
LB_SCALE_2 RECT 157, 157, 0, 0
|
||||
LB_SCALE_3 RECT 157, 180, 0, 0
|
||||
LB_SCALE_4 RECT 157, 203, 0, 0
|
||||
|
||||
BT_SCALE_1 RECT 135, 133, 15, 15
|
||||
BT_SCALE_2 RECT 135, 156, 15, 15
|
||||
BT_SCALE_3 RECT 135, 179, 15, 15
|
||||
BT_SCALE_4 RECT 135, 202, 15, 15
|
||||
|
||||
BT_PLAY RECT 8, 233, 196, 23
|
||||
LB_PLAY RECT 100, 237, 0, 0
|
||||
|
||||
IC_PLAY RECT 76, 235, 18, 18
|
||||
|
||||
FONT_BIG = 0x90000000
|
||||
UI_MARGIN = 9
|
||||
UI_PADDING = 5
|
||||
|
||||
; ================================================================
|
||||
|
||||
if lang eq ru_RU
|
||||
|
||||
title_wolf cp866 "Лаунчер Wolf3D", 0
|
||||
title_doom cp866 "Лаунчер Doom", 0
|
||||
title_quake cp866 "Лаунчер Quake", 0
|
||||
|
||||
label_mode cp866 "Режим отображения:", 0
|
||||
label_res cp866 "Разрешение:", 0
|
||||
label_scale cp866 "Масштаб:", 0
|
||||
text_win cp866 "Оконный", 0
|
||||
text_win_len = $ - text_win - 1
|
||||
text_winf cp866 "Полноэкр. в окне", 0
|
||||
text_winf_len = $ - text_winf - 1
|
||||
text_full cp866 "Весь экран", 0
|
||||
text_full_len = $ - text_full - 1
|
||||
text_play cp866 "Играть", 0
|
||||
|
||||
else if lang eq es_ES
|
||||
|
||||
title_wolf cp850 "Wolf3D Launcher", 0
|
||||
title_doom cp850 "Doom Launcher", 0
|
||||
title_quake cp850 "Quake Launcher", 0
|
||||
|
||||
label_mode cp850 "Modo de pantalla:", 0
|
||||
label_res cp850 "Resolucion:", 0
|
||||
label_scale cp850 "Escala:", 0
|
||||
text_win cp850 "En ventana", 0
|
||||
text_win_len = $ - text_win - 1
|
||||
text_winf cp850 "Ventana completa", 0
|
||||
text_winf_len = $ - text_winf - 1
|
||||
text_full cp850 "Pantalla completa", 0
|
||||
text_full_len = $ - text_full - 1
|
||||
text_play cp850 "Jugar", 0
|
||||
|
||||
else
|
||||
|
||||
title_wolf db "Wolf3D Launcher", 0
|
||||
title_doom db "Doom Launcher", 0
|
||||
title_quake db "Quake Launcher", 0
|
||||
|
||||
label_mode db "Display mode:", 0
|
||||
label_res db "Resolution:", 0
|
||||
label_scale db "Scale:", 0
|
||||
text_win db "Windowed", 0
|
||||
text_win_len = $ - text_win - 1
|
||||
text_winf db "Windowed fullscreen", 0
|
||||
text_winf_len = $ - text_winf - 1
|
||||
text_full db "Exclusive fullscreen", 0
|
||||
text_full_len = $ - text_full - 1
|
||||
text_play db "Play", 0
|
||||
|
||||
endf
|
||||
|
||||
text_320_200 db "320x200", 0
|
||||
text_320_200_len = $ - text_320_200 - 1
|
||||
text_320_240 db "320x240", 0
|
||||
text_320_240_len = $ - text_320_240 - 1
|
||||
text_x1 db "x1", 0
|
||||
text_x1_len = $ - text_x1 - 1
|
||||
text_x2 db "x2", 0
|
||||
text_x2_len = $ - text_x2 - 1
|
||||
text_x3 db "x3", 0
|
||||
text_x3_len = $ - text_x3 - 1
|
||||
text_x4 db "x4", 0
|
||||
text_x4_len = $ - text_x4 - 1
|
||||
|
||||
; ================================================================
|
||||
|
||||
op_mode_win option_box op_group_mode, BT_MODE_WIN.X, BT_MODE_WIN.Y, UI_MARGIN, BT_MODE_WIN.W, 0, 0, 0, text_win, text_win_len, 0
|
||||
op_mode_winf option_box op_group_mode, BT_MODE_WINF.X, BT_MODE_WINF.Y, UI_MARGIN, BT_MODE_WINF.W, 0, 0, 0, text_winf, text_winf_len, 0
|
||||
op_mode_full option_box op_group_mode, BT_MODE_FULL.X, BT_MODE_FULL.Y, UI_MARGIN, BT_MODE_FULL.W, 0, 0, 0, text_full, text_full_len, 0
|
||||
|
||||
op_res_320_200 option_box op_group_res, BT_RES_320_200.X, BT_RES_320_200.Y, UI_MARGIN, BT_RES_320_200.W, 0, 0, 0, text_320_200, text_320_200_len, 0
|
||||
op_res_320_240 option_box op_group_res, BT_RES_320_240.X, BT_RES_320_240.Y, UI_MARGIN, BT_RES_320_240.W, 0, 0, 0, text_320_240, text_320_240_len, 0
|
||||
|
||||
op_scale_1 option_box op_group_scale, BT_SCALE_1.X, BT_SCALE_1.Y, UI_MARGIN, BT_SCALE_1.W, 0, 0, 0, text_x1, text_x1_len, 0
|
||||
op_scale_2 option_box op_group_scale, BT_SCALE_2.X, BT_SCALE_2.Y, UI_MARGIN, BT_SCALE_2.W, 0, 0, 0, text_x2, text_x2_len, 0
|
||||
op_scale_3 option_box op_group_scale, BT_SCALE_3.X, BT_SCALE_3.Y, UI_MARGIN, BT_SCALE_3.W, 0, 0, 0, text_x3, text_x3_len, 0
|
||||
op_scale_4 option_box op_group_scale, BT_SCALE_4.X, BT_SCALE_4.Y, UI_MARGIN, BT_SCALE_4.W, 0, 0, 0, text_x4, text_x4_len, 0
|
||||
|
||||
op_list_mode dd op_mode_win, op_mode_winf, op_mode_full, 0
|
||||
op_list_res dd op_res_320_200, op_res_320_240, 0
|
||||
op_list_scale dd op_scale_1, op_scale_2, op_scale_3, op_scale_4, 0
|
||||
|
||||
op_group_mode dd op_mode_win
|
||||
op_group_res dd op_res_320_200
|
||||
op_group_scale dd op_scale_3
|
||||
|
||||
; ================================================================
|
||||
|
||||
MODE_WIN = 0 ; windowed
|
||||
MODE_WINF = 1 ; windowed fullsceen
|
||||
MODE_FULL = 2 ; exclusive (borderless) fullscreen
|
||||
|
||||
RES_320_200 = 0 ; 320x200
|
||||
RES_320_240 = 1 ; 320x240
|
||||
|
||||
SCALE_X1 = 0 ; x1
|
||||
SCALE_X2 = 1 ; x2
|
||||
SCALE_X3 = 2 ; x3
|
||||
SCALE_X4 = 3 ; x4
|
||||
|
||||
mode dd MODE_WIN
|
||||
base_res_index dd RES_320_200
|
||||
scale_index dd SCALE_X3
|
||||
|
||||
|
||||
base_w dd 320, 320
|
||||
base_h dd 200, 240
|
||||
scale_vals dd 1, 2, 3, 4
|
||||
|
||||
screen_w dd 0
|
||||
screen_h dd 0
|
||||
skin_h dd 0
|
||||
|
||||
BTN_PLAY = 0x40
|
||||
|
||||
icon_play dd 0x00000000
|
||||
icon_mem db "ICONS18W", 0
|
||||
|
||||
token_game db "--game", 0
|
||||
arg_wolf db "wolf3d", 0
|
||||
arg_doom db "doom", 0
|
||||
arg_quake db "quake", 0
|
||||
|
||||
; game-specific data
|
||||
title_ptr dd title_wolf
|
||||
args_res_ptr dd args_res_wolf
|
||||
args_fs_ptr dd arg_fullscreen_wolf
|
||||
|
||||
args_res_wolf db "--resf ", 0
|
||||
args_res_doom db "-winsize ", 0
|
||||
args_res_quake db "-winsize ", 0
|
||||
arg_fullscreen db " -fullscreen", 0
|
||||
arg_fullscreen_wolf db " --fullscreen", 0
|
||||
|
||||
run_info:
|
||||
.func dd SSF_START_APP
|
||||
.flags dd 0
|
||||
.args dd 0
|
||||
.res0 dd 0
|
||||
.res1 dd 0
|
||||
.zero db 0
|
||||
.file dd run_name_wolf
|
||||
|
||||
run_name_wolf db "/kolibrios/games/wolf3d/wolf3d", 0
|
||||
run_name_doom db "/kolibrios/games/doom1/doom", 0
|
||||
run_name_quake db "/kolibrios/games/quake/sdlquake", 0
|
||||
|
||||
; ================================================================
|
||||
|
||||
I_END:
|
||||
|
||||
; The kernel zeroes an app's BSS only from the first page boundary past I_END
|
||||
; (map_process_image rounds file_size UP to a page before clearing), so the tail
|
||||
; of the last loaded page holds garbage. Page-align these reserved buffers into
|
||||
; the zeroed region. The padding and buffers are reserved (not stored in the
|
||||
; binary), so this keeps the file small while guaranteeing zeroed buffers.
|
||||
align 4096
|
||||
|
||||
sc system_colors
|
||||
|
||||
ARGS_BUF_SIZE = 64
|
||||
args_buffer rb ARGS_BUF_SIZE
|
||||
num_buf rb 16
|
||||
|
||||
CMD_LINE rb 256
|
||||
argv_ptrs rd 16
|
||||
argv_buf rb 256
|
||||
|
||||
rb 1024 ; stack
|
||||
align 512
|
||||
|
||||
STACK_TOP:
|
||||
MEM:
|
||||
@@ -0,0 +1,41 @@
|
||||
# Параметры запуска sdlquake (KolibriOS)
|
||||
|
||||
Этот список отражает реальные параметры, доступные в текущей сборке из этого репозитория.
|
||||
Проверено по `Makefile.kos` и файлам из `C_SRC`.
|
||||
|
||||
## Параметры (по блокам)
|
||||
|
||||
### Файлы и данные
|
||||
- `-basedir <dir>` - задать базовый каталог игры.
|
||||
- `-cachedir <dir>` - каталог кеша (если далее идёт аргумент с `-`, кеш выключается).
|
||||
- `-game <gamedir>` - добавить `basedir/gamedir` как override-данные.
|
||||
- `-path <p1> <p2> ...` - задать поисковые пути полностью.
|
||||
- `-hipnotic` - mission pack Hipnotic.
|
||||
- `-rogue` - mission pack Rogue.
|
||||
- `-proghack` - режим совместимости для `progs.dat`.
|
||||
|
||||
### Сеть и сервер
|
||||
- `-dedicated [maxclients]` - выделенный сервер.
|
||||
- `-listen [maxclients]` - слушать как сервер.
|
||||
- `-port <p>` / `-udpport <p>` / `-ipxport <p>` - сетевой порт.
|
||||
- `-record` - записать VCR (`quake.vcr`).
|
||||
- `-playback` - воспроизвести VCR (`quake.vcr`).
|
||||
|
||||
### Видео и ввод
|
||||
- `-winsize <width> <height>` - размер окна/буфера SDL в пикселях. **Используется лаунчером.**
|
||||
- `-fullscreen` - полноэкранный (безрамочный) режим. **Используется лаунчером** вместе с `-winsize` под размер экрана.
|
||||
- `-nomouse` - выключить инициализацию мыши.
|
||||
|
||||
### Звук
|
||||
- `-nosound` - выключить звук.
|
||||
- `-simsound` - эмуляция звука без реального вывода.
|
||||
|
||||
### Производительность, память и диагностика
|
||||
- `-surfcachesize <kb>` - размер surface cache в KB.
|
||||
- `-particles <n>` - число частиц.
|
||||
- `-zone <kb>` - размер zone memory в KB.
|
||||
- `-minmemory` - минимизировать расход памяти.
|
||||
- `-condebug` - писать `qconsole.log` в текущий `com_gamedir`.
|
||||
- `-safe` - безопасный режим: включает набор «-no*» флагов. На KolibriOS реально действуют `-nosound` и `-nomouse`, остальные относятся к другим платформам.
|
||||
|
||||
Размер кучи (8 МБ) автоматически увеличивается под выбранное разрешение в `sys_sdl.c`, чтобы видеобуферы (z-buffer + surface cache) не переполняли её на больших окнах/полноэкранном режиме.
|
||||
@@ -0,0 +1,39 @@
|
||||
# Параметры запуска Wolf3D (KolibriOS)
|
||||
|
||||
Этот список отражает реальные параметры, доступные в текущей сборке из этого репозитория.
|
||||
Проверено по:
|
||||
- `contrib/games/wolf3d/wl_main.cpp` (парсер аргументов).
|
||||
- `contrib/games/wolf3d/Makefile` и `contrib/games/wolf3d/Tupfile.lua` (определён `_KOLIBRI`).
|
||||
- `contrib/games/wolf3d/version.h` (не определены `SPEAR`/`SPEARDEMO`, определён `GOODTIMES`).
|
||||
|
||||
## Параметры (по блокам)
|
||||
|
||||
### Общие
|
||||
- `--help` - показать справку.
|
||||
- `--goobers` - режим отладки.
|
||||
- `--nowait` - пропустить вступительные экраны.
|
||||
- `--tedlevel <level>` - старт с указанного уровня.
|
||||
- `--baby` / `--easy` / `--normal` / `--hard` - сложность (для `--tedlevel`).
|
||||
- `--mission <0..3>` - выбор миссии. Только Spear of Destiny; в этой сборке Wolf3D аргумент принимается, но ни на что не влияет.
|
||||
|
||||
### Видео и ввод
|
||||
- `--res <width> <height>` - разрешение, кратное 320x200 или 320x240.
|
||||
- `--resf <w> <h>` - любое разрешение >= 320x200 (возможны артефакты). **Используется лаунчером.**
|
||||
- `--windowed` / `--windowed-mouse` - оконный режим (с рамкой). **По умолчанию в KolibriOS-сборке.**
|
||||
- `--fullscreen` - полноэкранный (безрамочный) режим. **Используется лаунчером для Exclusive fullscreen.**
|
||||
- `--bits <b>` - глубина цвета: 8/16/24/32.
|
||||
- `--nodblbuf` - отключить двойную буферизацию SDL.
|
||||
- `--extravbls <vbls>` - задержка после кадра (уменьшает мерцание).
|
||||
|
||||
### Звук
|
||||
- `--nosound` - отключить звук.
|
||||
- `--audiobuffer <size>` - размер аудиобуфера в байтах.
|
||||
|
||||
### Файлы и данные
|
||||
- `--configdir <dir>` - каталог конфигов и сохранений.
|
||||
- `--ignorenumchunks` - игнорировать число чанков в `VGAHEAD.*`.
|
||||
- `--goodtimes` - снять проверку защиты (только Spear of Destiny). В сборке Wolf3D принимается, но не действует (`GOODTIMES` уже определён).
|
||||
|
||||
### Недоступно в KolibriOS-сборке
|
||||
В текущей KolibriOS-сборке (с `-D_KOLIBRI`) эти опции отключены в коде:
|
||||
- `--joystick`, `--joystickhat`, `--samplerate`.
|
||||
@@ -17,7 +17,7 @@ compile_gcc{
|
||||
"wl_cloudsky.cpp", "wl_debug.cpp", "id_sd.cpp", "wl_play.cpp", "id_vl.cpp", "wl_act2.cpp", "wl_floorceiling.cpp", "wl_dir3dspr.cpp",
|
||||
"wl_state.cpp", "wl_atmos.cpp", "id_in.cpp", "signon.cpp", "wl_parallax.cpp", "wl_agent.cpp", "sdl_winmain.cpp", "wl_inter.cpp", "wl_text.cpp",
|
||||
"id_pm.cpp", "wl_draw.cpp", "wl_menu.cpp", "wl_game.cpp", "wl_act1.cpp", "wl_main.cpp", "wl_shade.cpp", "id_us_1.cpp", "id_vh.cpp", "id_ca.cpp",
|
||||
"joystick_stub.cpp", "kolibri.cpp", "mame/fmopl.cpp",
|
||||
"joystick_stub.cpp", "mame/fmopl.cpp",
|
||||
}
|
||||
|
||||
-- SDL_mixer stubs --
|
||||
|
||||
@@ -1009,6 +1009,9 @@ void CA_CacheScreen (int chunk)
|
||||
CHECKMALLOCRESULT(pic);
|
||||
CAL_HuffExpand((byte *) source, pic, expanded, grhuffman);
|
||||
|
||||
if(screenXoffset || screenYoffset)
|
||||
VL_ClearScreen(0); // clear letterbox margins
|
||||
|
||||
vbuf = VL_LockSurface(curSurface);
|
||||
if(vbuf != NULL)
|
||||
{
|
||||
@@ -1019,7 +1022,7 @@ void CA_CacheScreen (int chunk)
|
||||
byte col = pic[(y * 80 + (x >> 2)) + (x & 3) * 80 * 200];
|
||||
for(i = 0; i < scaleFactor; i++)
|
||||
for(j = 0; j < scaleFactor; j++)
|
||||
vbuf[(scy + i) * curPitch + scx + j] = col;
|
||||
vbuf[(scy + i + screenYoffset) * curPitch + scx + j + screenXoffset] = col;
|
||||
}
|
||||
}
|
||||
VL_UnlockSurface(curSurface);
|
||||
|
||||
@@ -24,7 +24,8 @@ void VWB_DrawPropString(const char* string)
|
||||
|
||||
font = (fontstruct *) grsegs[STARTFONT+fontnumber];
|
||||
height = font->height;
|
||||
dest = vbuf + scaleFactor * (py * curPitch + px);
|
||||
dest = vbuf + (scaleFactor * py + screenYoffset) * curPitch
|
||||
+ scaleFactor * px + screenXoffset;
|
||||
|
||||
while ((ch = (byte)*string++)!=0)
|
||||
{
|
||||
|
||||
@@ -16,7 +16,14 @@
|
||||
#define assert_ret(x) assert(x)
|
||||
#endif
|
||||
|
||||
boolean fullscreen = true;
|
||||
boolean fullscreen = false;
|
||||
|
||||
// Centering of the logical 320x200 layer (menus, title/intro, fonts, fullscreen
|
||||
// pics) when the resolution isn't an exact multiple of 320x200. The 3D view and
|
||||
// in-game HUD use physical coordinates and stay full-screen.
|
||||
int screenXoffset = 0;
|
||||
int screenYoffset = 0;
|
||||
|
||||
#if defined(_arch_dreamcast)
|
||||
boolean usedoublebuffering = false;
|
||||
unsigned screenWidth = 320;
|
||||
@@ -143,6 +150,9 @@ void VL_SetVGAPlaneMode (void)
|
||||
scaleFactor = screenWidth/320;
|
||||
if(screenHeight/200 < scaleFactor) scaleFactor = screenHeight/200;
|
||||
|
||||
screenXoffset = (screenWidth - scaleFactor * 320) / 2;
|
||||
screenYoffset = (screenHeight - scaleFactor * 200) / 2;
|
||||
|
||||
pixelangle = (short *) malloc(screenWidth * sizeof(short));
|
||||
CHECKMALLOCRESULT(pixelangle);
|
||||
wallheight = (int *) malloc(screenWidth * sizeof(int));
|
||||
@@ -434,7 +444,7 @@ void VL_Plot (int x, int y, int color)
|
||||
ptr = VL_LockSurface(curSurface);
|
||||
if(ptr == NULL) return;
|
||||
|
||||
ptr[y * curPitch + x] = color;
|
||||
ptr[(y + screenYoffset) * curPitch + x + screenXoffset] = color;
|
||||
|
||||
VL_UnlockSurface(curSurface);
|
||||
}
|
||||
@@ -459,7 +469,7 @@ byte VL_GetPixel (int x, int y)
|
||||
ptr = VL_LockSurface(curSurface);
|
||||
if(ptr == NULL) return 0;
|
||||
|
||||
col = ((byte *) curSurface->pixels)[y * curPitch + x];
|
||||
col = ((byte *) curSurface->pixels)[(y + screenYoffset) * curPitch + x + screenXoffset];
|
||||
|
||||
VL_UnlockSurface(curSurface);
|
||||
|
||||
@@ -486,7 +496,7 @@ void VL_Hlin (unsigned x, unsigned y, unsigned width, int color)
|
||||
ptr = VL_LockSurface(curSurface);
|
||||
if(ptr == NULL) return;
|
||||
|
||||
memset(ptr + y * curPitch + x, color, width);
|
||||
memset(ptr + (y + screenYoffset) * curPitch + x + screenXoffset, color, width);
|
||||
|
||||
VL_UnlockSurface(curSurface);
|
||||
}
|
||||
@@ -511,7 +521,7 @@ void VL_Vlin (int x, int y, int height, int color)
|
||||
ptr = VL_LockSurface(curSurface);
|
||||
if(ptr == NULL) return;
|
||||
|
||||
ptr += y * curPitch + x;
|
||||
ptr += (y + screenYoffset) * curPitch + x + screenXoffset;
|
||||
|
||||
while (height--)
|
||||
{
|
||||
|
||||
@@ -16,6 +16,7 @@ extern SDL_Surface *screen, *screenBuffer, *curSurface;
|
||||
extern boolean fullscreen, usedoublebuffering;
|
||||
extern unsigned screenWidth, screenHeight, screenBits, screenPitch, bufferPitch, curPitch;
|
||||
extern unsigned scaleFactor;
|
||||
extern int screenXoffset, screenYoffset;
|
||||
|
||||
extern boolean screenfaded;
|
||||
extern unsigned bordercolor;
|
||||
@@ -53,7 +54,7 @@ void VL_Vlin (int x, int y, int height, int color);
|
||||
void VL_BarScaledCoord (int scx, int scy, int scwidth, int scheight, int color);
|
||||
void inline VL_Bar (int x, int y, int width, int height, int color)
|
||||
{
|
||||
VL_BarScaledCoord(scaleFactor*x, scaleFactor*y,
|
||||
VL_BarScaledCoord(scaleFactor*x + screenXoffset, scaleFactor*y + screenYoffset,
|
||||
scaleFactor*width, scaleFactor*height, color);
|
||||
}
|
||||
void inline VL_ClearScreen(int color)
|
||||
@@ -73,7 +74,7 @@ void VL_MemToScreenScaledCoord (byte *source, int origwidth, int origheight, in
|
||||
void inline VL_MemToScreen (byte *source, int width, int height, int x, int y)
|
||||
{
|
||||
VL_MemToScreenScaledCoord(source, width, height,
|
||||
scaleFactor*x, scaleFactor*y);
|
||||
scaleFactor*x + screenXoffset, scaleFactor*y + screenYoffset);
|
||||
}
|
||||
|
||||
void VL_MaskedToScreen (byte *source, int width, int height, int x, int y);
|
||||
@@ -85,7 +86,7 @@ void inline VL_LatchToScreen (SDL_Surface *source, int xsrc, int ysrc,
|
||||
int width, int height, int xdest, int ydest)
|
||||
{
|
||||
VL_LatchToScreenScaledCoord(source,xsrc,ysrc,width,height,
|
||||
scaleFactor*xdest,scaleFactor*ydest);
|
||||
scaleFactor*xdest + screenXoffset,scaleFactor*ydest + screenYoffset);
|
||||
}
|
||||
void inline VL_LatchToScreenScaledCoord (SDL_Surface *source, int scx, int scy)
|
||||
{
|
||||
@@ -94,5 +95,5 @@ void inline VL_LatchToScreenScaledCoord (SDL_Surface *source, int scx, int scy)
|
||||
void inline VL_LatchToScreen (SDL_Surface *source, int x, int y)
|
||||
{
|
||||
VL_LatchToScreenScaledCoord(source,0,0,source->w,source->h,
|
||||
scaleFactor*x,scaleFactor*y);
|
||||
scaleFactor*x + screenXoffset,scaleFactor*y + screenYoffset);
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
#include <stdlib.h>
|
||||
#include <sys/ksys.h>
|
||||
#include <string.h>
|
||||
|
||||
extern unsigned screenWidth;
|
||||
extern unsigned screenHeight;
|
||||
|
||||
void kolibri_set_win_max(void){
|
||||
unsigned multip1, multip2;
|
||||
ksys_pos_t screen_size = _ksys_screen_size();
|
||||
|
||||
screen_size.y++;
|
||||
screen_size.x++;
|
||||
|
||||
multip1 = (screen_size.y)/240;
|
||||
multip2 = (screen_size.y)/200;
|
||||
|
||||
do{
|
||||
screenWidth = 320 * multip1;
|
||||
screenHeight = 240 * multip1;
|
||||
|
||||
if(screenWidth<=screen_size.x){
|
||||
break;
|
||||
}
|
||||
|
||||
screenWidth = 320 * multip2;
|
||||
screenHeight = 200 * multip2;
|
||||
|
||||
if(screenWidth<=screen_size.y){
|
||||
break;
|
||||
}
|
||||
|
||||
multip1--;
|
||||
multip2--;
|
||||
|
||||
}while(multip1>0 && multip2>0);
|
||||
}
|
||||
@@ -134,6 +134,8 @@ Victory (void)
|
||||
CA_CacheGrChunk (BJCOLLAPSE3PIC);
|
||||
CA_CacheGrChunk (BJCOLLAPSE4PIC);
|
||||
|
||||
if(screenXoffset || screenYoffset)
|
||||
VL_ClearScreen(0);
|
||||
VWB_Bar (0, 0, 320, 200, VIEWCOLOR);
|
||||
VWB_DrawPic (124, 44, BJCOLLAPSE1PIC);
|
||||
VW_UpdateScreen ();
|
||||
@@ -165,6 +167,8 @@ Victory (void)
|
||||
CA_CacheGrChunk (C_TIMECODEPIC);
|
||||
#endif
|
||||
|
||||
if(screenXoffset || screenYoffset)
|
||||
VL_ClearScreen(0);
|
||||
VWB_Bar (0, 0, 320, screenHeight / scaleFactor - STATUSLINES + 1, VIEWCOLOR);
|
||||
if (bordercol != VIEWCOLOR)
|
||||
DrawStatusBorder (VIEWCOLOR);
|
||||
@@ -312,6 +316,8 @@ void
|
||||
PG13 (void)
|
||||
{
|
||||
VW_FadeOut ();
|
||||
if(screenXoffset || screenYoffset)
|
||||
VL_ClearScreen(0);
|
||||
VWB_Bar (0, 0, 320, 200, 0x82); // background
|
||||
|
||||
CA_CacheGrChunk (PG13PIC);
|
||||
@@ -559,6 +565,8 @@ LevelCompleted (void)
|
||||
|
||||
CacheLump (LEVELEND_LUMP_START, LEVELEND_LUMP_END);
|
||||
ClearSplitVWB (); // set up for double buffering in split screen
|
||||
if(screenXoffset || screenYoffset)
|
||||
VL_ClearScreen(0);
|
||||
VWB_Bar (0, 0, 320, screenHeight / scaleFactor - STATUSLINES + 1, VIEWCOLOR);
|
||||
|
||||
if (bordercol != VIEWCOLOR)
|
||||
|
||||
@@ -1369,7 +1369,7 @@ boolean SetViewSize (unsigned width, unsigned height)
|
||||
{
|
||||
viewscreenx = (screenWidth-viewwidth) / 2;
|
||||
viewscreeny = (screenHeight-scaleFactor*STATUSLINES-viewheight)/2;
|
||||
screenofs = viewscreeny*screenWidth+viewscreenx;
|
||||
screenofs = viewscreeny*bufferPitch+viewscreenx;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1721,7 +1721,6 @@ void CheckParameters(int argc, char *argv[])
|
||||
}
|
||||
else IFARG("--nosound")
|
||||
SD_Started=true;
|
||||
#ifndef _KOLIBRI
|
||||
else IFARG("--windowed")
|
||||
fullscreen = false;
|
||||
else IFARG("--windowed-mouse")
|
||||
@@ -1729,7 +1728,8 @@ void CheckParameters(int argc, char *argv[])
|
||||
fullscreen = false;
|
||||
forcegrabmouse = true;
|
||||
}
|
||||
#endif
|
||||
else IFARG("--fullscreen")
|
||||
fullscreen = true;
|
||||
else IFARG("--res")
|
||||
{
|
||||
if(i + 2 >= argc)
|
||||
@@ -1971,13 +1971,10 @@ void CheckParameters(int argc, char *argv[])
|
||||
==========================
|
||||
*/
|
||||
|
||||
extern void kolibri_set_win_max(void);
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
#ifdef _KOLIBRI
|
||||
_ksys_setcwd(dirname(argv[0]));
|
||||
kolibri_set_win_max();
|
||||
#endif
|
||||
|
||||
#if defined(_arch_dreamcast)
|
||||
|
||||
@@ -3066,6 +3066,8 @@ IntroScreen (void)
|
||||
void
|
||||
ClearMScreen (void)
|
||||
{
|
||||
if(screenXoffset || screenYoffset)
|
||||
VL_ClearScreen(0); // clear letterbox margins
|
||||
#ifndef SPEAR
|
||||
VWB_Bar (0, 0, 320, 200, BORDCOLOR);
|
||||
#else
|
||||
|
||||
@@ -424,6 +424,8 @@ void PageLayout (boolean shownumber)
|
||||
//
|
||||
// clear the screen
|
||||
//
|
||||
if(screenXoffset || screenYoffset)
|
||||
VL_ClearScreen(0);
|
||||
VWB_Bar (0,0,320,200,BACKCOLOR);
|
||||
VWB_DrawPic (0,0,H_TOPWINDOWPIC);
|
||||
VWB_DrawPic (0,8,H_LEFTWINDOWPIC);
|
||||
@@ -642,6 +644,8 @@ void ShowArticle (char *article)
|
||||
oldfontnumber = fontnumber;
|
||||
fontnumber = 0;
|
||||
CA_CacheGrChunk(STARTFONT);
|
||||
if(screenXoffset || screenYoffset)
|
||||
VL_ClearScreen(0);
|
||||
VWB_Bar (0,0,320,200,BACKCOLOR);
|
||||
CacheLayoutGraphics ();
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
/*OUTPUT_FORMAT("binary")*/
|
||||
/* SEARCH_DIR("=/lib") */
|
||||
/* SEARCH_DIR("=/mingw32/lib") */
|
||||
ENTRY(__start)
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x000000:
|
||||
{
|
||||
LONG(0x554e454D);
|
||||
LONG(0x32305445);
|
||||
LONG(1);
|
||||
LONG(__start);
|
||||
LONG(___iend);
|
||||
LONG(___memsize);
|
||||
LONG(___stacktop);
|
||||
LONG(___cmdline);
|
||||
LONG(___pgmname); /* full path */
|
||||
LONG(__subsystem__);
|
||||
LONG(__idata_start)
|
||||
LONG(__idata_end)
|
||||
LONG(_main)
|
||||
|
||||
*(.init)
|
||||
*(.text)
|
||||
*(SORT(.text$*))
|
||||
*(.text.*)
|
||||
*(.glue_7t)
|
||||
*(.glue_7)
|
||||
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0);
|
||||
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0);
|
||||
*(.fini)
|
||||
/* ??? Why is .gcc_exc here? */
|
||||
*(.gcc_exc)
|
||||
PROVIDE (etext = .);
|
||||
*(.gcc_except_table)
|
||||
}
|
||||
|
||||
.rdata ALIGN(16) :
|
||||
{
|
||||
*(.rdata)
|
||||
*(SORT(.rdata$*))
|
||||
___RUNTIME_PSEUDO_RELOC_LIST__ = .;
|
||||
__RUNTIME_PSEUDO_RELOC_LIST__ = .;
|
||||
*(.rdata_runtime_pseudo_reloc)
|
||||
___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;
|
||||
__RUNTIME_PSEUDO_RELOC_LIST_END__ = .;
|
||||
}
|
||||
.CRT ALIGN(16) :
|
||||
{
|
||||
___crt_xc_start__ = . ;
|
||||
*(SORT(.CRT$XC*)) /* C initialization */
|
||||
___crt_xc_end__ = . ;
|
||||
___crt_xi_start__ = . ;
|
||||
*(SORT(.CRT$XI*)) /* C++ initialization */
|
||||
___crt_xi_end__ = . ;
|
||||
___crt_xl_start__ = . ;
|
||||
*(SORT(.CRT$XL*)) /* TLS callbacks */
|
||||
/* ___crt_xl_end__ is defined in the TLS Directory support code */
|
||||
___crt_xp_start__ = . ;
|
||||
*(SORT(.CRT$XP*)) /* Pre-termination */
|
||||
___crt_xp_end__ = . ;
|
||||
___crt_xt_start__ = . ;
|
||||
*(SORT(.CRT$XT*)) /* Termination */
|
||||
___crt_xt_end__ = . ;
|
||||
}
|
||||
|
||||
.data ALIGN(16) :
|
||||
{
|
||||
PROVIDE ( __data_start__ = .) ;
|
||||
*(.data)
|
||||
*(.data2)
|
||||
*(SORT(.data$*))
|
||||
*(.jcr)
|
||||
__CRT_MT = .;
|
||||
LONG(1);
|
||||
PROVIDE ( __data_end__ = .) ;
|
||||
*(.data_cygwin_nocopy)
|
||||
___iend = . ;
|
||||
}
|
||||
|
||||
.eh_frame BLOCK(16) :
|
||||
{
|
||||
PROVIDE (___EH_FRAME_BEGIN__ = .) ;
|
||||
*(.eh_frame*)
|
||||
___FRAME_END__ = . ;
|
||||
LONG(0);
|
||||
}
|
||||
|
||||
.idata ALIGN(16):
|
||||
{
|
||||
__idata_start = .;
|
||||
SORT(*)(.idata$2)
|
||||
SORT(*)(.idata$3)
|
||||
/* These zeroes mark the end of the import list. */
|
||||
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
|
||||
SORT(*)(.idata$4)
|
||||
SORT(*)(.idata$5)
|
||||
SORT(*)(.idata$6)
|
||||
SORT(*)(.idata$7)
|
||||
__idata_end = . ;
|
||||
}
|
||||
|
||||
bss ALIGN(16):
|
||||
{
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
. = ALIGN(16);
|
||||
___cmdline = .;
|
||||
. = . + 256;
|
||||
___pgmname = .;
|
||||
. = . + 1024 + 16;
|
||||
___stacktop = .;
|
||||
___memsize = . ;
|
||||
}
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.debug$S)
|
||||
*(.debug$T)
|
||||
*(.debug$F)
|
||||
*(.drectve)
|
||||
*(.note.GNU-stack)
|
||||
*(.comment)
|
||||
/* *(.eh_frame) */
|
||||
*(.debug_abbrev)
|
||||
*(.debug_info)
|
||||
*(.debug_line)
|
||||
*(.debug_frame)
|
||||
*(.debug_loc)
|
||||
*(.debug_pubnames)
|
||||
*(.debug_aranges)
|
||||
*(.debug_ranges)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -305,7 +305,12 @@ int audio_thread(void *param)
|
||||
};
|
||||
active = 1;
|
||||
sync_audio(hBuff, buffsize);
|
||||
sound_state = PLAY;
|
||||
/* Do NOT clobber a stop/pause command that arrived (e.g. a
|
||||
* seek set PLAY_2_STOP) while we were restarting the buffer -
|
||||
* only advance the PREPARE/resume path to PLAY. Otherwise the
|
||||
* decoder's "wait for STOP" seek handshake would wait forever. */
|
||||
if(sound_state == PREPARE || sound_state == PAUSE_2_PLAY)
|
||||
sound_state = PLAY;
|
||||
|
||||
/* breaktrough */
|
||||
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Полная сборка FPlay (медиаплеер KolibriOS).
|
||||
# Full build for the FPlay KolibriOS media player.
|
||||
#
|
||||
# Поднимает окружение kos32-тулчейна (PATH, fasm, путь к либам) и собирает
|
||||
# ВСЕ объекты заново + линкует + objcopy в MENUET-бинарь. Голый `make` этого
|
||||
# не делает: в Makefile нет -L и он ждёт тулчейн уже в PATH.
|
||||
#
|
||||
# Запуск из Git Bash / MSYS:
|
||||
# ./build.sh - полная сборка (all)
|
||||
# ./build.sh clean - удалить .o, бинарь, .map
|
||||
#
|
||||
# Пути можно переопределить переменными окружения, если тулчейн лежит иначе:
|
||||
# TOOLCHAIN_BIN=... LIB_DIR=... FASM=... ./build.sh
|
||||
#
|
||||
set -u
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Расположение инструментов (значения по умолчанию = как на этой машине)
|
||||
# ---------------------------------------------------------------------------
|
||||
TOOLCHAIN_BIN="${TOOLCHAIN_BIN:-/c/MinGW/msys/1.0/home/autobuild/tools/win32/bin}"
|
||||
LIB_DIR="${LIB_DIR:-/c/MinGW/msys/1.0/home/autobuild/tools/win32/lib}"
|
||||
FASM="${FASM:-/c/Kolibri/Infrastructure/C--/fasm.exe}"
|
||||
|
||||
# Каталог скрипта = корень исходников fplay; работаем относительно него.
|
||||
cd "$(dirname "$0")" || { echo "ERROR: cannot cd to script dir"; exit 1; }
|
||||
SDK_DIR="$(cd ../../sdk && pwd)" || { echo "ERROR: SDK dir (../../sdk) not found"; exit 1; }
|
||||
|
||||
export PATH="$TOOLCHAIN_BIN:$PATH"
|
||||
|
||||
CC=kos32-gcc
|
||||
LD=kos32-ld
|
||||
OBJCOPY=kos32-objcopy
|
||||
NAME=fplay
|
||||
|
||||
# fasm: явный путь, иначе из PATH
|
||||
if [ -x "$FASM" ]; then FASM_CMD="$FASM"; else FASM_CMD="fasm"; fi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Флаги (идентичны Makefile проекта)
|
||||
# ---------------------------------------------------------------------------
|
||||
CFLAGS="-U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fno-ident -std=c99 -fomit-frame-pointer -mno-ms-bitfields"
|
||||
DEFINES="-DDEBUG=1 -D_GNU_SOURCE -DHAVE_VAAPI -DPACKAGE_NAME=\"Fplay-vaapi\""
|
||||
INCLUDES="-I. -I$SDK_DIR/sources/newlib/libc/include -I$SDK_DIR/sources/ffmpeg/ffmpeg-2.8"
|
||||
INCLUDES="$INCLUDES -I$SDK_DIR/sources/freetype/include -I$SDK_DIR/sources/vaapi/libva-1.6.2"
|
||||
|
||||
LIBS="-lavdevice.dll -lavformat.dll -lavcodec.dll -lavutil.dll -lswscale.dll"
|
||||
LIBS="$LIBS -lswresample.dll -lsound -lpixlib3 -lfreetype.dll -lva.dll -lgcc -lc.dll"
|
||||
|
||||
LDFLAGS="-static --subsystem native --stack 0x200000 -Map fplay.map -Tapp-dynamic.lds --image-base 0"
|
||||
|
||||
# Исходники
|
||||
C_SOURCES="audio.c decoder.c fplay.c vaapi.c video.c utils.c \
|
||||
winlib/button.c winlib/caption.c winlib/fontlib.c \
|
||||
winlib/frame.c winlib/panel.c winlib/window.c"
|
||||
ASM_SOURCES="opendial.asm skin/skin.asm"
|
||||
|
||||
# Объекты в том порядке линковки, что использует проект
|
||||
OBJECTS="opendial.o audio.o decoder.o fplay.o vaapi.o video.o utils.o \
|
||||
skin/skin.o winlib/button.o winlib/caption.o winlib/fontlib.o \
|
||||
winlib/frame.o winlib/panel.o winlib/window.o"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# clean
|
||||
# ---------------------------------------------------------------------------
|
||||
if [ "${1:-}" = "clean" ]; then
|
||||
rm -f $OBJECTS "$NAME" fplay.map
|
||||
echo "cleaned: objects, $NAME, fplay.map"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Проверка инструментов
|
||||
# ---------------------------------------------------------------------------
|
||||
command -v "$CC" >/dev/null 2>&1 || { echo "ERROR: $CC not found (TOOLCHAIN_BIN=$TOOLCHAIN_BIN)"; exit 1; }
|
||||
command -v "$LD" >/dev/null 2>&1 || { echo "ERROR: $LD not found (TOOLCHAIN_BIN=$TOOLCHAIN_BIN)"; exit 1; }
|
||||
command -v "$OBJCOPY" >/dev/null 2>&1 || { echo "ERROR: $OBJCOPY not found (TOOLCHAIN_BIN=$TOOLCHAIN_BIN)"; exit 1; }
|
||||
command -v "$FASM_CMD" >/dev/null 2>&1 || { echo "ERROR: fasm not found (FASM=$FASM)"; exit 1; }
|
||||
[ -d "$LIB_DIR" ] || { echo "ERROR: LIB_DIR not found: $LIB_DIR"; exit 1; }
|
||||
|
||||
echo "SDK_DIR = $SDK_DIR"
|
||||
echo "toolchain = $TOOLCHAIN_BIN"
|
||||
echo
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Компиляция всех объектов заново (полная сборка)
|
||||
# ---------------------------------------------------------------------------
|
||||
fail=0
|
||||
|
||||
for src in $C_SOURCES; do
|
||||
obj="${src%.c}.o"
|
||||
printf ' CC %s\n' "$src"
|
||||
$CC $CFLAGS $DEFINES $INCLUDES -o "$obj" "$src" || { echo " ^^ FAILED: $src"; fail=1; }
|
||||
done
|
||||
|
||||
for src in $ASM_SOURCES; do
|
||||
obj="${src%.asm}.o"
|
||||
printf ' ASM %s\n' "$src"
|
||||
"$FASM_CMD" "$src" "$obj" || { echo " ^^ FAILED: $src"; fail=1; }
|
||||
done
|
||||
|
||||
if [ $fail -ne 0 ]; then
|
||||
echo
|
||||
echo "COMPILE FAILED - see errors above"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Линковка + objcopy в бинарь MENUET
|
||||
# ---------------------------------------------------------------------------
|
||||
echo
|
||||
printf ' LINK %s\n' "$NAME"
|
||||
$LD $LDFLAGS -L"$LIB_DIR" -o "$NAME" $OBJECTS $LIBS || { echo "LINK FAILED"; exit 1; }
|
||||
|
||||
printf ' BIN %s\n' "$NAME"
|
||||
$OBJCOPY "$NAME" -O binary || { echo "OBJCOPY FAILED"; exit 1; }
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Итог
|
||||
# ---------------------------------------------------------------------------
|
||||
size=$(stat -c %s "$NAME" 2>/dev/null || wc -c < "$NAME")
|
||||
hdr=$(head -c 6 "$NAME" 2>/dev/null)
|
||||
echo
|
||||
echo "BUILD OK"
|
||||
echo " file : $(pwd)/$NAME"
|
||||
echo " size : $size bytes"
|
||||
echo " header: $hdr"
|
||||
[ "$hdr" = "MENUET" ] || echo " WARNING: header is not MENUET - check app-dynamic.lds"
|
||||
@@ -14,6 +14,11 @@
|
||||
#include "sound.h"
|
||||
#include "fplay.h"
|
||||
|
||||
/* 0 = decode everything, 1 = skip non-reference frames. Driven by the A/V
|
||||
* sync loop in video.c (render_time) - the picture falling behind the audio
|
||||
* clock raises it, catching up clears it. */
|
||||
volatile int g_skip_level = 0;
|
||||
|
||||
static struct decoder ffmpeg_decoder;
|
||||
static struct decoder* init_ffmpeg_decoder(vst_t *vst);
|
||||
|
||||
@@ -107,28 +112,31 @@ static vframe_t *get_input_frame(vst_t *vst)
|
||||
|
||||
static void put_output_frame(vst_t *vst, vframe_t *vframe)
|
||||
{
|
||||
mutex_lock(&vst->output_lock);
|
||||
if(list_empty(&vst->output_list))
|
||||
list_add_tail(&vframe->list, &vst->output_list);
|
||||
else
|
||||
{
|
||||
vframe_t *cur;
|
||||
vframe_t *cur;
|
||||
int inserted = 0;
|
||||
|
||||
cur = list_first_entry(&vst->output_list,vframe_t,list);
|
||||
if(vframe->pts < cur->pts)
|
||||
list_add_tail(&vframe->list, &vst->output_list);
|
||||
else
|
||||
mutex_lock(&vst->output_lock);
|
||||
|
||||
/* Keep the list sorted by pts: walk from the tail, insert after the first
|
||||
* frame not newer than ours (>= keeps equal-pts frames in arrival order);
|
||||
* no match = ours is the earliest (or the list is empty) - new head.
|
||||
* The previous version added pre-head frames to the TAIL (unsorted) and,
|
||||
* worse, a frame whose pts equalled every queued one matched nothing and
|
||||
* was added to NO list at all - each such frame leaked one of the 4
|
||||
* decoder vframes for good, and four of them froze the video (happens
|
||||
* with broken/duplicate container timestamps). */
|
||||
list_for_each_entry_reverse(cur, &vst->output_list, list)
|
||||
{
|
||||
if(vframe->pts >= cur->pts)
|
||||
{
|
||||
list_for_each_entry_reverse(cur,&vst->output_list,list)
|
||||
{
|
||||
if(vframe->pts > cur->pts)
|
||||
{
|
||||
list_add(&vframe->list, &cur->list);
|
||||
break;
|
||||
};
|
||||
};
|
||||
list_add(&vframe->list, &cur->list);
|
||||
inserted = 1;
|
||||
break;
|
||||
};
|
||||
};
|
||||
if(!inserted)
|
||||
list_add(&vframe->list, &vst->output_list);
|
||||
|
||||
vst->frames_count++;
|
||||
mutex_unlock(&vst->output_lock);
|
||||
};
|
||||
@@ -150,6 +158,12 @@ int decode_video(vst_t* vst)
|
||||
if( get_packet(&vst->q_video, &pkt) == 0 )
|
||||
return 0;
|
||||
|
||||
/* Adaptive frame skipping: when the picture keeps falling behind the audio
|
||||
* clock (set from render_time in video.c), ask the codec to skip the
|
||||
* non-reference frames so decode gets lighter and the video keeps pace;
|
||||
* back to full quality once it has caught up. */
|
||||
vst->vCtx->skip_frame = g_skip_level ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
|
||||
|
||||
frameFinished = 0;
|
||||
|
||||
mutex_lock(&vst->gpu_lock);
|
||||
|
||||
+873
-385
File diff suppressed because it is too large.
Load diff
@@ -49,6 +49,7 @@ struct render
|
||||
uint32_t layout;
|
||||
bitmap_t *bitmap[4];
|
||||
bitmap_t *last_bitmap;
|
||||
vframe_t *last_frame; /* last decoded frame, kept for redraw on resize */
|
||||
|
||||
uint32_t ctx_format;
|
||||
int target;
|
||||
@@ -160,8 +161,11 @@ struct vstate
|
||||
struct decoder *decoder;
|
||||
int snd_format;
|
||||
volatile int frames_count;
|
||||
/* written by the reader thread (=1) and the audio thread (=0); keep it in
|
||||
* its own word (not a shared bitfield) so those writes don't race on a
|
||||
* read-modify-write of neighbouring flags */
|
||||
volatile int audio_timer_valid;
|
||||
unsigned int has_sound:1;
|
||||
unsigned int audio_timer_valid:1;
|
||||
unsigned int blit_bitmap:1; /* hardware RGBA blitter */
|
||||
unsigned int blit_texture:1; /* hardware RGBA blit and scale */
|
||||
unsigned int blit_planar:1; /* hardbare YUV blit and scale */
|
||||
@@ -171,6 +175,7 @@ struct vstate
|
||||
#define DECODER_THREAD 1
|
||||
#define AUDIO_THREAD 2
|
||||
#define VIDEO_THREAD 4
|
||||
#define READER_THREAD 8
|
||||
|
||||
extern volatile int threads_running;
|
||||
extern astream_t astream;
|
||||
@@ -189,6 +194,7 @@ int audio_thread(void *param);
|
||||
void set_audio_volume(int left, int right);
|
||||
|
||||
int video_thread(void *param);
|
||||
int read_thread(void *param);
|
||||
void flush_video(vst_t* vst);
|
||||
|
||||
int init_video_decoder(vst_t *vst);
|
||||
|
||||
@@ -137,9 +137,11 @@ dd filefilter.end - filefilter
|
||||
db 'mpg',0
|
||||
db 'mpeg',0
|
||||
db 'mkv',0
|
||||
db 'mp3',0
|
||||
db 'mp4',0
|
||||
db 'webm',0
|
||||
db 'wmv',0
|
||||
db 'vob',0
|
||||
.end:
|
||||
db 0
|
||||
|
||||
|
||||
+980
-47
File diff suppressed because it is too large.
Load diff
@@ -277,7 +277,22 @@ int draw_progress(progress_t *prg, int background)
|
||||
};
|
||||
};
|
||||
|
||||
len = prg->current*prg->ctrl.w/(prg->max - prg->min);
|
||||
/* max<=1 means the duration is unknown: keep the fill bar EMPTY rather
|
||||
* than showing a bogus full bar. Otherwise compute and CLAMP the fill in
|
||||
* float before the int conversion (with an unknown duration the unclamped
|
||||
* product would overflow len and run the fill loop past the pixmap). */
|
||||
if(prg->max <= 1.0f)
|
||||
len = 0;
|
||||
else
|
||||
{
|
||||
float flen = prg->current*prg->ctrl.w/(prg->max - prg->min);
|
||||
|
||||
if(flen < 0.0f)
|
||||
flen = 0.0f;
|
||||
if(flen > prg->ctrl.w)
|
||||
flen = prg->ctrl.w;
|
||||
len = (int)flen;
|
||||
}
|
||||
|
||||
src = res_prg_level;
|
||||
|
||||
@@ -473,6 +488,12 @@ int sld_proc(ctrl_t *ctrl, uint32_t msg, uint32_t arg1, uint32_t arg2)
|
||||
slider_t *sld = (slider_t*)ctrl;
|
||||
int pos;
|
||||
|
||||
/* the window is too narrow for the volume slider - the panel (parent)
|
||||
* spans the window, so its width is the window width; skip drawing AND
|
||||
* interaction (hover would otherwise flip the panel layout) */
|
||||
if(ctrl->parent->w < 320)
|
||||
return 0;
|
||||
|
||||
switch( msg )
|
||||
{
|
||||
case MSG_PAINT:
|
||||
|
||||
@@ -99,11 +99,13 @@ void update_caption_size(window_t *win)
|
||||
cpt->close_btn->ctrl.rc.r = cpt->close_btn->ctrl.rc.l +
|
||||
cpt->close_btn->ctrl.w;
|
||||
|
||||
cpt->minimize_btn->ctrl.rc.l = win->w - 27 - 18 - 5;
|
||||
/* Order (left -> right): minimize, fullscreen, close.
|
||||
* minimize is the leftmost of the three, fullscreen sits in the middle. */
|
||||
cpt->minimize_btn->ctrl.rc.l = win->w - 27 - 18 - 18 - 5 - 5;
|
||||
cpt->minimize_btn->ctrl.rc.r = cpt->minimize_btn->ctrl.rc.l +
|
||||
cpt->minimize_btn->ctrl.w;
|
||||
|
||||
cpt->full_btn->ctrl.rc.l = win->w - 27 - 18 -18 - 5 - 5;
|
||||
cpt->full_btn->ctrl.rc.l = win->w - 27 - 18 - 5;
|
||||
cpt->full_btn->ctrl.rc.r = cpt->full_btn->ctrl.rc.l +
|
||||
cpt->full_btn->ctrl.w;
|
||||
};
|
||||
|
||||
@@ -83,7 +83,11 @@ int draw_text_ext(void *pixmap, uint32_t pitch, FT_Face face, char *text, rect_t
|
||||
x = rc->l << 6;
|
||||
y = rc->b;
|
||||
|
||||
w = (rc->r - rc->l) << 6;
|
||||
/* right edge in 26.6 fixed point; x is an absolute position, so the
|
||||
* fit check below must compare against the edge, not the width -
|
||||
* otherwise any text placed at a large x (e.g. right-aligned) would
|
||||
* fail the very first check and nothing would be drawn */
|
||||
w = rc->r << 6;
|
||||
|
||||
while( ch = *text++ )
|
||||
{
|
||||
@@ -96,13 +100,15 @@ int draw_text_ext(void *pixmap, uint32_t pitch, FT_Face face, char *text, rect_t
|
||||
x += delta.x ;
|
||||
}
|
||||
|
||||
if( x + face->glyph->advance.x > w)
|
||||
break;
|
||||
|
||||
/* load FIRST, then check the fit with THIS glyph's advance - the old
|
||||
* order tested against the stale advance of the previous glyph */
|
||||
err = FT_Load_Glyph( face, glyph_index, FT_LOAD_DEFAULT );
|
||||
if ( err )
|
||||
continue;
|
||||
|
||||
if( x + face->glyph->advance.x > w)
|
||||
break;
|
||||
|
||||
err = FT_Render_Glyph( face->glyph, FT_RENDER_MODE_NORMAL );
|
||||
if ( err )
|
||||
continue;
|
||||
@@ -118,6 +124,37 @@ int draw_text_ext(void *pixmap, uint32_t pitch, FT_Face face, char *text, rect_t
|
||||
};
|
||||
|
||||
|
||||
int text_width_ext(FT_Face face, char *text)
|
||||
{
|
||||
FT_UInt glyph_index;
|
||||
FT_Bool use_kerning = FT_HAS_KERNING( face );
|
||||
FT_UInt previous = 0;
|
||||
int x = 0;
|
||||
char ch;
|
||||
|
||||
while( ch = *text++ )
|
||||
{
|
||||
glyph_index = FT_Get_Char_Index( face, ansi2utf32(ch) );
|
||||
|
||||
if( use_kerning && previous && glyph_index )
|
||||
{
|
||||
FT_Vector delta;
|
||||
FT_Get_Kerning( face, previous, glyph_index, FT_KERNING_DEFAULT, &delta );
|
||||
x += delta.x;
|
||||
}
|
||||
if( FT_Load_Glyph( face, glyph_index, FT_LOAD_DEFAULT ) )
|
||||
continue;
|
||||
|
||||
x += face->glyph->advance.x;
|
||||
previous = glyph_index;
|
||||
}
|
||||
/* round UP: truncating loses the fractional part, the string then does
|
||||
* not quite fit into the measured width and the renderer's fit check
|
||||
* silently drops the last glyph ("3:20" -> "3:2") */
|
||||
return (x + 63) >> 6; /* 26.6 fixed point -> pixels */
|
||||
}
|
||||
|
||||
|
||||
int init_fontlib()
|
||||
{
|
||||
int err;
|
||||
|
||||
@@ -32,6 +32,7 @@ extern int res_stop_btn_pressed[];
|
||||
//extern int res_minimize_btn_pressed[];
|
||||
|
||||
void update_panel_size(window_t *win);
|
||||
static void render_time_text(panel_t *panel);
|
||||
|
||||
int panel_proc(ctrl_t *ctrl, uint32_t msg, uint32_t arg1, uint32_t arg2);
|
||||
|
||||
@@ -220,6 +221,10 @@ void draw_panel(panel_t *panel)
|
||||
send_message(child, MSG_PAINT, 0, 0);
|
||||
child = (ctrl_t*)child->link.next;
|
||||
};
|
||||
|
||||
/* a full panel repaint just erased the time text in the pixmap; put it
|
||||
* back so it does not blink out until the next second ticks over */
|
||||
render_time_text(panel);
|
||||
};
|
||||
|
||||
int panel_proc(ctrl_t *ctrl, uint32_t msg, uint32_t arg1, uint32_t arg2)
|
||||
@@ -261,6 +266,12 @@ int panel_proc(ctrl_t *ctrl, uint32_t msg, uint32_t arg1, uint32_t arg2)
|
||||
}
|
||||
break;
|
||||
|
||||
case MSG_WHEELUP:
|
||||
case MSG_WHEELDOWN:
|
||||
/* let the window handle the wheel (volume) wherever it is over
|
||||
* the panel, not only above a particular child control */
|
||||
return send_message(get_parent_window(ctrl), msg, arg1, arg2);
|
||||
|
||||
case MSG_COMMAND:
|
||||
switch((short)arg1)
|
||||
{
|
||||
@@ -293,3 +304,106 @@ void blit_panel(panel_t *panel)
|
||||
panel->ctrl.w, panel->ctrl.h, ctx->pixmap_pitch);
|
||||
};
|
||||
|
||||
extern int win_font;
|
||||
int draw_text_ext(void *pixmap, uint32_t pitch, int face, char *text, rect_t *rc, int color);
|
||||
int text_width_ext(int face, char *text);
|
||||
|
||||
/* elapsed / total time, bottom-right of the panel, in the same white as the
|
||||
* window-caption text. Rendered straight into the panel pixmap (like the
|
||||
* caption text) so it blits cleanly with no per-digit artefacts; the
|
||||
* panel-body gradient is restored under it first so old text is erased. */
|
||||
#define TIME_COLOR 0xFFFFFF /* white - same as the caption title text */
|
||||
#define TIME_MAXW 120
|
||||
#define TIME_Y0 25
|
||||
#define TIME_Y1 44
|
||||
#define TIME_BASE 40
|
||||
|
||||
static void fmt_time(char *buf, int sec)
|
||||
{
|
||||
int h, m, s;
|
||||
|
||||
if(sec < 0) /* clamp BEFORE splitting into h/m/s */
|
||||
sec = 0;
|
||||
|
||||
h = sec / 3600;
|
||||
m = (sec / 60) % 60;
|
||||
s = sec % 60;
|
||||
|
||||
if(h)
|
||||
sprintf(buf, "%d:%02d:%02d", h, m, s);
|
||||
else
|
||||
sprintf(buf, "%d:%02d", m, s);
|
||||
}
|
||||
|
||||
/* last shown values, so a full panel repaint can restore the text instead of
|
||||
* leaving a blank until the next second ticks over */
|
||||
static int time_elapsed = -1;
|
||||
static int time_total = 0;
|
||||
|
||||
/* render the cached time into the panel pixmap (no blit) */
|
||||
static void render_time_text(panel_t *panel)
|
||||
{
|
||||
ctx_t *ctx = &panel->ctx;
|
||||
int *pixmap = (int*)ctx->pixmap_data;
|
||||
int pitch4 = ctx->pixmap_pitch / 4;
|
||||
int panw = panel->ctrl.w;
|
||||
char buf[48], es[20], ts[20];
|
||||
rect_t rc;
|
||||
int x, y, x0, x1, tw;
|
||||
|
||||
if(time_elapsed < 0) /* nothing shown yet */
|
||||
return;
|
||||
if(panw < 260) /* too narrow: would clash with the left */
|
||||
return;
|
||||
|
||||
fmt_time(es, time_elapsed);
|
||||
if(time_total > 0)
|
||||
{
|
||||
fmt_time(ts, time_total);
|
||||
sprintf(buf, "%s / %s", es, ts);
|
||||
}
|
||||
else
|
||||
strcpy(buf, es); /* duration unknown: elapsed only */
|
||||
|
||||
x1 = panw - 12;
|
||||
x0 = x1 - TIME_MAXW;
|
||||
|
||||
/* restore the panel-body gradient under the text (one colour per row) */
|
||||
for(y = TIME_Y0; y < TIME_Y1; y++)
|
||||
{
|
||||
int c = res_panel_body[y];
|
||||
int *row = pixmap + y*pitch4;
|
||||
for(x = x0; x < x1; x++)
|
||||
row[x] = c;
|
||||
}
|
||||
|
||||
tw = text_width_ext(win_font, buf); /* right-align to x1 */
|
||||
if(tw > TIME_MAXW)
|
||||
tw = TIME_MAXW;
|
||||
|
||||
rc.l = x1 - tw;
|
||||
rc.t = TIME_Y0;
|
||||
rc.r = x1;
|
||||
rc.b = TIME_BASE;
|
||||
draw_text_ext(ctx->pixmap_data, ctx->pixmap_pitch, win_font, buf, &rc, TIME_COLOR);
|
||||
}
|
||||
|
||||
void draw_panel_time(panel_t *panel, int elapsed, int total)
|
||||
{
|
||||
ctx_t *ctx = &panel->ctx;
|
||||
int panw = panel->ctrl.w;
|
||||
int x0 = panw - 12 - TIME_MAXW;
|
||||
|
||||
time_elapsed = elapsed;
|
||||
time_total = total;
|
||||
|
||||
render_time_text(panel);
|
||||
|
||||
if(panw < 260)
|
||||
return;
|
||||
|
||||
Blit(ctx->pixmap_data, panel->draw.l + x0, panel->draw.t + TIME_Y0,
|
||||
x0, TIME_Y0, TIME_MAXW, TIME_Y1 - TIME_Y0,
|
||||
panw, PANEL_HEIGHT, ctx->pixmap_pitch);
|
||||
}
|
||||
|
||||
@@ -637,6 +637,18 @@ void update_rect(ctrl_t *ctrl)
|
||||
int ctx_w, ctx_h;
|
||||
int src_x, src_y;
|
||||
|
||||
/* In fullscreen the caption and panel are hidden, so no control should
|
||||
* blit itself onto the screen - otherwise e.g. the fullscreen button
|
||||
* repaints over the video after the switch. Walk up to the root window
|
||||
* and bail out while it is fullscreen. */
|
||||
{
|
||||
ctrl_t *root = ctrl;
|
||||
while(root->parent)
|
||||
root = root->parent;
|
||||
if(((window_t*)root)->win_state == FULLSCREEN)
|
||||
return;
|
||||
}
|
||||
|
||||
src_x = ctrl->rc.l - ctrl->ctx->offset_x;
|
||||
src_y = ctrl->rc.t - ctrl->ctx->offset_y;
|
||||
|
||||
|
||||
@@ -107,7 +107,9 @@ void init_winlib(void);
|
||||
|
||||
void draw_caption(caption_t *cpt);
|
||||
void draw_panel(panel_t *panel);
|
||||
void draw_panel_time(panel_t *panel, int elapsed, int total);
|
||||
void blit_caption(caption_t *cpt);
|
||||
void blit_panel(panel_t *panel);
|
||||
int init_caption(window_t *win);
|
||||
int init_panel(window_t *win);
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# build artifacts (uPDF / MuPDF 1.19 KolibriOS port)
|
||||
# note: build/uPDF (the final binary) is intentionally NOT ignored - it ships
|
||||
build/obj/
|
||||
build/*.log
|
||||
build/updfnew_test
|
||||
|
||||
# compiled objects, static libs, linker output anywhere in the tree
|
||||
*.o
|
||||
*.a
|
||||
*.kex
|
||||
@@ -1,674 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
@@ -1,64 +0,0 @@
|
||||
ABOUT
|
||||
|
||||
MuPDF is a lightweight PDF and XPS viewer and parser/rendering library.
|
||||
|
||||
The renderer in MuPDF is tailored for high quality anti-aliased graphics. It
|
||||
renders text with metrics and spacing accurate to within fractions of a pixel
|
||||
for the highest fidelity in reproducing the look of a printed page on screen.
|
||||
|
||||
MuPDF is also small, fast, and yet complete. We support PDF 1.7 with
|
||||
transparency, encryption, hyperlinks, annotations, search and many other bells
|
||||
and whistles. MuPDF can also read XPS documents (OpenXPS / ECMA-388).
|
||||
|
||||
We don't support interactive features such as form filling, javascript and
|
||||
transitions. MuPDF is written modularly, so such features can be added on by
|
||||
integrators if they so desire.
|
||||
|
||||
LICENSE
|
||||
|
||||
MuPDF is Copyright 2006-2011 Artifex Software, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
Foundation, either version 3 of the License, or (at your option) any later
|
||||
version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with
|
||||
this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
For commercial licensing please contact sales@artifex.com.
|
||||
|
||||
COMPILING
|
||||
|
||||
If you are compiling from source you will need several third party libraries:
|
||||
freetype2, jbig2dec, libjpeg, openjpeg, and zlib. We have prepared a package
|
||||
(mupdf-thirdparty.zip) that you can unzip in the mupdf source tree if you don't
|
||||
have them installed on your system.
|
||||
|
||||
You must unpack mupdf-thirdparty.zip to build using the Visual Studio project.
|
||||
|
||||
DOWNLOAD
|
||||
|
||||
The latest development source is available directly from the git repository:
|
||||
|
||||
git clone http://mupdf.com/repos/mupdf.git
|
||||
|
||||
INSTALLING
|
||||
|
||||
Typing "make prefix=/usr/local install" will install the binaries, man-pages,
|
||||
static libraries and header files on your system.
|
||||
|
||||
REPORTING BUGS AND PROBLEMS
|
||||
|
||||
The MuPDF developers hang out on IRC in the #ghostscript channel on irc.freenode.net.
|
||||
|
||||
Report bugs on the ghostscript bugzilla, with MuPDF as the selected component.
|
||||
|
||||
http://bugs.ghostscript.com/
|
||||
|
||||
If you are reporting a problem with PDF parsing, please include the problematic
|
||||
file as an attachment.
|
||||
@@ -1,23 +0,0 @@
|
||||
CC = kos32-gcc
|
||||
LD = kos32-ld
|
||||
|
||||
SDK_DIR = $(abspath ../../../sdk)
|
||||
LDFLAGS = -static -nostdlib -T $(SDK_DIR)/sources/newlib/app.lds --image-base 0
|
||||
|
||||
CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -fno-ident -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32
|
||||
|
||||
INCLUDES = -I $(SDK_DIR)/sources/newlib/libc/include -I $(SDK_DIR)/sources/freetype/include -I $(SDK_DIR)/sources/zlib -I ../fitz -I ../pdf
|
||||
LIBPATH = -L $(SDK_DIR)/lib -L /home/autobuild/tools/win32/mingw32/lib -L ../lib
|
||||
|
||||
APPS_SRC := kolibri.c kos_main.c pdfapp.c
|
||||
|
||||
default: $(patsubst %.c,%.o,$(APPS_SRC))
|
||||
$(LD) $(LDFLAGS) $(LIBPATH) --subsystem native -o updf kolibri.o pdfapp.o kos_main.o -lmupdf -lfitz -lgcc -lfitz -ldraw -ljpeg -ljbig2dec -lfreetype -lopenjpeg -lz.dll -lc.dll
|
||||
objcopy updf -O binary
|
||||
|
||||
|
||||
%.o : %.c Makefile $(APPS_SRC)
|
||||
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $<
|
||||
|
||||
clean:
|
||||
rm *.o
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1 @@
|
||||
┬┬┬еееддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддеее┬┬┬еееююю∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ююююююеееддд∙∙∙ЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄюююдддддд∙∙∙ёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёюююдддддд∙∙∙ёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёюююдддддд∙∙∙ёёёёёёёёё{░╬;{а;{а;{а;{а;{а;{аЛ╣╘ёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёюююдддддд∙∙∙ЁЁЁЁЁЁЁЁЁ;{а;{а;{а;{а;{а;{а;{а;{аЛ╣╘ЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁЁюююдддддд∙∙∙ЁЁЁЁЁЁЁЁЁ;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а{░╬ЁЁЁЁЁЁЁЁЁюююдддддд∙∙∙яяяяяяяяя;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аяяяяяяяяяюююдддддд∙∙∙яяяяяяяяя;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аяяяяяяяяяюююдддддд∙∙∙яяяяяяяяя;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аяяяяяяяяяюююдддддд∙∙∙ююююююююю;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аююююююююююююдддддд∙∙∙ююююююююю;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аююююююююююююдддддд∙∙∙эээээээээ;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аэээээээээюююдддддд∙∙∙эээээээээ;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аэээээээээюююдддддд∙∙∙эээээээээ;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аэээээээээюююдддддд∙∙∙ььььььььь;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{аьььььььььюююдддддд∙∙∙ььььььььь{░╬;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а;{а{░╬ьььььььььюююдддддд∙∙∙ыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыюююдддддд∙∙∙ыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыюююдддддд∙∙∙ыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыюююддддддюююъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъюююдддЬЬЬууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууЬЬЬ┬┬┬ЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬ┬┬┬┬┬┬еееддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддеее┬┬┬еееююю∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ююююююеееддд∙∙∙ЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄюююдддддд∙∙∙ёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёюююдддддд∙∙∙ёёёёёёёёёёёёёёёёёёёёё╫╤Т└╖UНЖ4НЖ4НЖ4НЖ4└╖U╫╤Тёёёёёёёёёёёёёёёёёёёёёюююдддддд∙∙∙ёёёёёёёёёёёёёёёьы╨▒иAНЖ4▒иA═╞z█╓Ю█╓Ю═╞z▒иAНЖ4▒иAьы╨ёёёёёёёёёёёёёёёюююдддддд∙∙∙ЁЁЁЁЁЁЁЁЁЁЁЁьы╨ЩС8ЩС8╫╤ТЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█╫╤ТЩС8ЩС8ьы╨ЁЁЁЁЁЁЁЁЁЁЁЁюююдддддд∙∙∙ЁЁЁЁЁЁЁЁЁЁЁЁ▒иAЩС8ф▀╖ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ф▀╖ЩС8▒иAЁЁЁЁЁЁЁЁЁЁЁЁюююдддддд∙∙∙яяяяяяяяя╫╤ТНЖ4╫╤ТЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█╫╤ТНЖ4╫╤Тяяяяяяяяяюююдддддд∙∙∙яяяяяяяяя╗▒HпжAЁю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌пжA╗▒Hяяяяяяяяяюююдддддд∙∙∙яяяяяяяяяНЖ4═╞xЁю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌═╞xНЖ4яяяяяяяяяюююдддддд∙∙∙юююююююююНЖ4┘╒ЭЁю┌НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4Ёю┌┘╒ЭНЖ4ююююююююююююдддддд∙∙∙юююююююююНЖ4┘╒ЭЁю┌НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4Ёю┌┘╒ЭНЖ4ююююююююююююдддддд∙∙∙эээээээээНЖ4═╞xЁю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌═╞xНЖ4эээээээээюююдддддд∙∙∙эээээээээ╗▒HпжAЁю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌пжA╗▒Hэээээээээюююдддддд∙∙∙эээээээээ╓╨СНЖ4╓╨СЁю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌╓╨СНЖ4╓╨Сэээээээээюююдддддд∙∙∙ььььььььььььпжAЧП8у▀┤яэ┌яэ┌яэ┌яэ┌яэ┌яэ┌яэ┌яэ┌у▀┤ЧП8пжAььььььььььььюююдддддд∙∙∙ььььььььььььыъ═ЧП8ЧП8╘╨Ряэ┌яэ┌яэ┌яэ┌яэ┌яэ┌╘╨РЧП8ЧП8ыъ═ььььььььььььюююдддддд∙∙∙ыыыыыыыыыыыыыыыыъ═пжAМД3пжA╠┼w┌╒Ы┌╒Ы╠┼wпжAМД3пжAыъ═ыыыыыыыыыыыыыыыюююдддддд∙∙∙ыыыыыыыыыыыыыыыыыыыыы╘╨Р┐╢TМД3МД3МД3МД3┐╢T╘╨Рыыыыыыыыыыыыыыыыыыыыыюююдддддд∙∙∙ыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыыюююддддддюююъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъъюююдддЬЬЬууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууЬЬЬ┬┬┬ЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬ┬┬┬┬┬┬еееддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддеее┬┬┬еееююю∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ююююююеееддд∙∙∙ЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄюююдддддд∙∙∙ёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёёюююдддддд∙∙∙ёёёёёёёёёёёёёёёёёёёёё╫╤Т└╖UНЖ4НЖ4НЖ4НЖ4└╖U╫╤Тёёёёёёёёёёёёёёёёёёёёёюююдддддд∙∙∙ёёёёёёёёёёёёёёёьы╨▒иAНЖ4▒иA═╞z█╓Ю█╓Ю═╞z▒иAНЖ4▒иAьы╨ёёёёёёёёёёёёёёёюююдддддд∙∙∙ЁЁЁЁЁЁЁЁЁЁЁЁьы╨ЩС8ЩС8╫╤ТЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█ЄЁ█╫╤ТЩС8ЩС8ьы╨ЁЁЁЁЁЁЁЁЁЁЁЁюююдддддд∙∙∙ЁЁЁЁЁЁЁЁЁЁЁЁ▒иAЩС8ф▀╖ЄЁ█ЄЁ█ЄЁ█НЖ4НЖ4ЄЁ█ЄЁ█ЄЁ█ф▀╖ЩС8▒иAЁЁЁЁЁЁЁЁЁЁЁЁюююдддддд∙∙∙яяяяяяяяя╫╤ТНЖ4╫╤ТЄЁ█ЄЁ█ЄЁ█ЄЁ█НЖ4НЖ4ЄЁ█ЄЁ█ЄЁ█ЄЁ█╫╤ТНЖ4╫╤Тяяяяяяяяяюююдддддд∙∙∙яяяяяяяяя╗▒HпжAЁю┌Ёю┌Ёю┌Ёю┌Ёю┌НЖ4НЖ4Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌пжA╗▒Hяяяяяяяяяюююдддддд∙∙∙яяяяяяяяяНЖ4═╞xЁю┌Ёю┌Ёю┌Ёю┌Ёю┌НЖ4НЖ4Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌═╞xНЖ4яяяяяяяяяюююдддддд∙∙∙юююююююююНЖ4┘╒ЭЁю┌НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4Ёю┌┘╒ЭНЖ4ююююююююююююдддддд∙∙∙юююююююююНЖ4┘╒ЭЁю┌НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4НЖ4Ёю┌┘╒ЭНЖ4ююююююююююююдддддд∙∙∙эээээээээНЖ4═╞xЁю┌Ёю┌Ёю┌Ёю┌Ёю┌НЖ4НЖ4Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌═╞xНЖ4эээээээээюююдддддд∙∙∙эээээээээ╗▒HпжAЁю┌Ёю┌Ёю┌Ёю┌Ёю┌НЖ4НЖ4Ёю┌Ёю┌Ёю┌Ёю┌Ёю┌пжA╗▒Hэээээээээюююдддддд∙∙∙эээээээээ╓╨СНЖ4╓╨СЁю┌Ёю┌Ёю┌Ёю┌НЖ4НЖ4Ёю┌Ёю┌Ёю┌Ёю┌╓╨СНЖ4╓╨Сэээээээээюююдддддд∙∙∙ьLine truncated
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
@@ -1 +0,0 @@
|
||||
┬┬┬еееддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддеее┬┬┬еееюююўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўюююееедддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇеееnnnnnnnnnnnnnnnnnn░░░ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇnnnnnnnnnnnnnnnnnnnnnnnn░░░ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnеееЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnЇЇЇЇЇЇЇЇЇЇЇЇддддддєєєєєєєєєєєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєєєєєєєєєєєддддддЄЄЄЄЄЄЄЄЄЄЄЄnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄеееnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnеееЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄдддееещщщььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььщщщеее┬┬┬еееддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддеее┬┬┬┬┬┬еееддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддееедддеееюююўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўюююееедддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ┬┬┬ШШШnnnnnnnnnnnnШШШ┬┬┬ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇьььЗЗЗnnnЗЗЗ▒▒▒╩╩╩╩╩╩▒▒▒ЗЗЗnnnЗЗЗьььЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇьььvvvvvv┬┬┬ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ┬┬┬vvvvvvьььЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЗЗЗvvv███ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ███vvvЗЗЗЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇ┬┬┬nnn┬┬┬ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ┬┬┬nnn┬┬┬ЇЇЇЇЇЇЇЇЇЇЇЇддддддєєєєєєєєєєєєПППЖЖЖєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєЖЖЖПППєєєєєєєєєєєєддддддєєєєєєєєєєєєnnn░░░єєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєє░░░nnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnn╔╔╔єєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєє╔╔╔nnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnn╔╔╔єєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєє╔╔╔nnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnn░░░єєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєє░░░nnnєєєєєєєєєєєєддддддєєєєєєєєєєєєПППЖЖЖєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєєЖЖЖПППєєєєєєєєєєєєддддддєєєєєєєєєєєє┴┴┴nnn┴┴┴єєєєєєєєєєєєєєєєєєєєєєєєєєєєєє┴┴┴nnn┴┴┴єєєєєєєєєєєєддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЖЖЖuuu┘┘┘ЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄ┘┘┘uuuЖЖЖЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄъъъuuuuuu└└└ЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄ└└└uuuuuuъъъЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄъъъЖЖЖmmmЖЖЖппп╚╚╚╚╚╚пппЖЖЖmmmЖЖЖъъъЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄ└└└ЧЧЧmmmmmmmmmmmmЧЧЧ└└└ЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄддддддЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄдддееещщщььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььььщщщеее┬┬┬еееддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддеееддддддеееддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддддеее┬┬┬еееюююўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўюююееедддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ┬┬┬ШШШnnnnnnnnnnnnШШШ┬┬┬ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇьььЗЗЗnnnЗЗЗ▒▒▒╩╩╩╩╩╩▒▒▒ЗЗЗnnnЗЗЗьььЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇьььvvvvvv┬┬┬ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ┬┬┬vvvvvvьььЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЗЗЗvvv███ЇЇЇЇЇЇЇЇЇnnnnnnЇЇЇЇЇЇЇЇЇ███vvvЗЗЗЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇддддддЇЇЇЇЇЇЇЇЇЇЇЇ┬┬┬nnn┬┬┬ЇЇЇЇЇЇЇЇЇЇЇЇnnnnnnЇЇЇЇЇЇЇЇЇЇЇЇ┬┬┬nnn┬┬┬ЇЇЇЇЇЇЇЇЇЇЇЇддддддєєєєєєєєєєєєПППЖЖЖєєєєєєєєєєєєєєєnnnnnnєєєєєєєєєєєєєєєЖЖЖПППєєєєєєєєєєєєддддддєєєєєєєєєєєєnnn░░░єєєєєєєєєєєєєєєnnnnnnєєєєєєєєєєєєєєє░░░nnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnn╔╔╔єєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєє╔╔╔nnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnn╔╔╔єєєnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnєєє╔╔╔nnnєєєєєєєєєєєєддддддєєєєєєєєєєєєnnn░░░єєєєєєєєєєєєєєєnnnnnnєєєєєєєєєєєєєєє░░░nnnєєєєєєєєєєєєддддддєєєєєєєєєєєєПППЖЖЖєєєєєєєєєєєєєєєnnnnnnєєєєєєєєєєєєєєєЖЖЖПППєєєєєєєєєєєєддддддєєєєєєєєєєєє┴┴┴nnn┴┴┴єєєєєєєєєєєєnnnnnnєєєєєєєєєєєє┴┴┴nnn┴┴┴єєєєєєєєєєєєддддддЄЄЄЄLine truncated
|
||||
@@ -512,3 +512,12 @@ int kos_get_key()
|
||||
asm volatile("int $0x40":"=a"(__ret):"0"(2));
|
||||
if(!(__ret & 0xFF)) return (__ret>>8)&0xFF; else return 0;
|
||||
}
|
||||
|
||||
// Raw result of fn 2: bits 0-7 = status (0 = key present),
|
||||
// bits 8-15 = ASCII code, bits 16-23 = layout-independent scancode.
|
||||
unsigned kos_get_key_full()
|
||||
{
|
||||
unsigned __ret;
|
||||
asm volatile("int $0x40":"=a"(__ret):"0"(2));
|
||||
return __ret;
|
||||
}
|
||||
@@ -182,4 +182,5 @@ int kos_random(int num);
|
||||
int kos_get_mouse_wheels(void);
|
||||
void kos_screen_max(int* x, int* y);
|
||||
int kos_get_key();
|
||||
unsigned kos_get_key_full();
|
||||
void kos_text(int x, int y, int color, const char* text, int len);
|
||||
+860
-183
File diff suppressed because it is too large.
Load diff
+303
-1070
File diff suppressed because it is too large.
Load diff
@@ -1,104 +1,69 @@
|
||||
/*
|
||||
* Utility object for handling a pdf application / view
|
||||
* Takes care of PDF loading and displaying and navigation,
|
||||
* uses a number of callbacks to the GUI app.
|
||||
* uPDF glue layer for MuPDF 1.19 (KolibriOS port).
|
||||
* Bridges the KolibriOS GUI (kos_main.c) to the fz_context-based API.
|
||||
* Keeps the same function names the GUI expects, so the continuous-scroll,
|
||||
* scrollbar, drag-pan and selection code needs only minimal changes.
|
||||
*/
|
||||
|
||||
#define MINRES 54
|
||||
#define MAXRES 300
|
||||
#ifndef PDFAPP_H
|
||||
#define PDFAPP_H
|
||||
|
||||
#include "mupdf/fitz.h"
|
||||
|
||||
typedef struct pdfapp_s pdfapp_t;
|
||||
|
||||
enum { ARROW, HAND, WAIT };
|
||||
|
||||
extern void winwarn(pdfapp_t*, char *s);
|
||||
extern void winerror(pdfapp_t*, fz_error error);
|
||||
extern void wintitle(pdfapp_t*, char *title, char param[]);
|
||||
extern void winresize(pdfapp_t*, int w, int h);
|
||||
extern void winrepaint(pdfapp_t*);
|
||||
extern void winrepaintsearch(pdfapp_t*);
|
||||
extern char *winpassword(pdfapp_t*, char *filename);
|
||||
extern void winopenuri(pdfapp_t*, char *s);
|
||||
extern void wincursor(pdfapp_t*, int curs);
|
||||
extern void windocopy(pdfapp_t*);
|
||||
extern void winreloadfile(pdfapp_t*);
|
||||
extern void windrawstring(pdfapp_t*, int x, int y, char *s);
|
||||
extern void winclose(pdfapp_t*);
|
||||
extern void winhelp(pdfapp_t*);
|
||||
|
||||
struct pdfapp_s
|
||||
{
|
||||
/* current document params */
|
||||
char *doctitle;
|
||||
pdf_xref *xref;
|
||||
pdf_outline *outline;
|
||||
/* MuPDF state */
|
||||
fz_context *ctx;
|
||||
fz_document *doc;
|
||||
fz_page *page; /* current page object */
|
||||
fz_pixmap *image; /* current page rendered as BGRA */
|
||||
fz_stext_page *stext; /* current page text, for selection */
|
||||
fz_matrix ctm; /* page-space -> device(pixmap) transform */
|
||||
|
||||
int pagecount;
|
||||
fz_glyph_cache *cache;
|
||||
char *doctitle;
|
||||
|
||||
/* current view params */
|
||||
int resolution;
|
||||
int rotate;
|
||||
fz_pixmap *image;
|
||||
int grayscale;
|
||||
/* view state */
|
||||
int pagecount;
|
||||
int pageno; /* 1-based */
|
||||
float resolution; /* dpi; 72 == 100% */
|
||||
int rotate; /* degrees */
|
||||
int grayscale;
|
||||
int ss_factor; /* supersampling factor (1 = off) for sharper text */
|
||||
|
||||
/* current page params */
|
||||
int pageno;
|
||||
fz_rect page_bbox;
|
||||
float page_rotate;
|
||||
fz_display_list *page_list;
|
||||
fz_text_span *page_text;
|
||||
pdf_link *page_links;
|
||||
/* scroll offset (managed by the GUI) */
|
||||
int panx, pany;
|
||||
|
||||
/* snapback history */
|
||||
int hist[256];
|
||||
int histlen;
|
||||
int marks[10];
|
||||
/* text selection, in page space */
|
||||
fz_point sel_a, sel_b;
|
||||
int sel_valid;
|
||||
|
||||
/* window system sizes */
|
||||
int winw, winh;
|
||||
int scrw, scrh;
|
||||
int shrinkwrap;
|
||||
|
||||
/* event handling state */
|
||||
char number[256];
|
||||
int numberlen;
|
||||
|
||||
int ispanning;
|
||||
int panx, pany;
|
||||
|
||||
int iscopying;
|
||||
int selx, sely;
|
||||
/* TODO - While sely keeps track of the relative change in
|
||||
* cursor position between two ticks/events, beyondy shall keep
|
||||
* track of the relative change in cursor position from the
|
||||
* point where the user hits a scrolling limit. This is ugly.
|
||||
* Used in pdfapp.c:pdfapp_onmouse.
|
||||
*/
|
||||
int beyondy;
|
||||
fz_bbox selr;
|
||||
|
||||
/* search state */
|
||||
int isediting;
|
||||
char search[512];
|
||||
int hit;
|
||||
int hitlen;
|
||||
|
||||
/* client context storage */
|
||||
void *userdata;
|
||||
/* legacy fields the GUI still sets during init */
|
||||
int scrw, scrh, shrinkwrap, fd, reload;
|
||||
};
|
||||
|
||||
/* lifecycle */
|
||||
void pdfapp_init(pdfapp_t *app);
|
||||
void pdfapp_open(pdfapp_t *app, char *filename, int fd, int reload);
|
||||
void pdfapp_close(pdfapp_t *app);
|
||||
|
||||
char *pdfapp_version(pdfapp_t *app);
|
||||
char *pdfapp_usage(pdfapp_t *app);
|
||||
/* rendering */
|
||||
void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage, int repaint);
|
||||
fz_pixmap *pdfapp_renderpage(pdfapp_t *app, int pageno);
|
||||
|
||||
/* input: zoom/rotate/grayscale/navigation, same key codes as before
|
||||
( + - L R c g G [ ] ) */
|
||||
void pdfapp_onkey(pdfapp_t *app, int c);
|
||||
void pdfapp_onmouse(pdfapp_t *app, int x, int y, int btn, int modifiers, int state);
|
||||
void pdfapp_oncopy(pdfapp_t *app, unsigned short *ucsbuf, int ucslen);
|
||||
void pdfapp_onresize(pdfapp_t *app, int w, int h);
|
||||
|
||||
void pdfapp_invert(pdfapp_t *app, fz_bbox rect);
|
||||
void pdfapp_inverthit(pdfapp_t *app);
|
||||
/* snap the current zoom to exactly 100% if it is within ~7% of it */
|
||||
void pdfapp_snapzoom(pdfapp_t *app);
|
||||
|
||||
/* selection: a/b are in page space; the GUI supplies them from clicks */
|
||||
void pdfapp_invertselection(pdfapp_t *app); /* toggle highlight in image */
|
||||
char *pdfapp_copyselection(pdfapp_t *app); /* fz-allocated UTF-8, or NULL */
|
||||
|
||||
/* map a device pixel (relative to the current image) to a page-space point */
|
||||
fz_point pdfapp_devtopage(pdfapp_t *app, int px, int py);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
# Build the uPDF KolibriOS application (GUI) against the MuPDF 1.19 libs.
|
||||
# Prereq: build_kos.sh, build_third.sh, link.sh (libs in build/obj).
|
||||
set -e
|
||||
export PATH="/c/MinGW/msys/1.0/home/autobuild/tools/win32/bin:$PATH"
|
||||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||||
SRC="$HERE/../mupdf-1.19.0-source"
|
||||
APP="$HERE/../apps"
|
||||
SDK=/c/Kolibri/git/contrib/sdk
|
||||
TOOL=/c/MinGW/msys/1.0/home/autobuild/tools/win32
|
||||
OBJ="$HERE/obj"
|
||||
|
||||
INC="-I $SRC/include -I $HERE/shim -I $SDK/sources/newlib/libc/include -I $SDK/sources/freetype/include"
|
||||
CF="-c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_WIN32 -U__MINGW32__ -UWIN32"
|
||||
|
||||
echo "compiling app..."
|
||||
kos32-gcc $CF $INC -o "$OBJ/app_kolibri.o" "$APP/kolibri.c"
|
||||
kos32-gcc $CF $INC -o "$OBJ/app_pdfapp.o" "$APP/pdfapp.c"
|
||||
kos32-gcc $CF $INC -o "$OBJ/app_kos_main.o" "$APP/kos_main.c"
|
||||
|
||||
echo "linking uPDF..."
|
||||
kos32-ld -static -nostdlib -T "$SDK/sources/newlib/app.lds" --image-base 0 --subsystem native \
|
||||
-L "$SDK/lib" -L "$TOOL/lib" \
|
||||
-o "$HERE/uPDF" \
|
||||
"$OBJ/app_kos_main.o" "$OBJ/app_pdfapp.o" "$OBJ/app_kolibri.o" "$OBJ/kosshim.o" \
|
||||
"$OBJ/libmupdf.a" "$OBJ/libthird.a" \
|
||||
-lc.dll -lgcc
|
||||
kos32-objcopy "$HERE/uPDF" -O binary
|
||||
echo "built: build/uPDF ($(wc -c < "$HERE/uPDF") bytes) magic=$(head -c 8 "$HERE/uPDF")"
|
||||
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
# Experimental KolibriOS build of MuPDF 1.19.0 (PDF-only, minimal deps).
|
||||
# Compiles fitz + pdf core with kos32-gcc, reports what fails.
|
||||
set -u
|
||||
export PATH="/c/MinGW/msys/1.0/home/autobuild/tools/win32/bin:$PATH"
|
||||
|
||||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||||
SRC="$HERE/../mupdf-1.19.0-source"
|
||||
SDK=/c/Kolibri/git/contrib/sdk
|
||||
OBJ="$HERE/obj"
|
||||
mkdir -p "$OBJ"
|
||||
|
||||
# PDF only. #if-style features are set to 0; #ifdef-style OUTPUT features
|
||||
# (DOCX/ODT/OCR) must stay UNDEFINED to be disabled - do not pass them.
|
||||
# TOFU (+SIL) drops all non-CJK Noto fonts; TOFU_CJK/SYMBOL/EMOJI drop the rest,
|
||||
# leaving only the base14 URW fonts we actually ship.
|
||||
DEFS="-DFZ_ENABLE_XPS=0 -DFZ_ENABLE_SVG=0 -DFZ_ENABLE_CBZ=0 -DFZ_ENABLE_IMG=0 \
|
||||
-DFZ_ENABLE_HTML=0 -DFZ_ENABLE_EPUB=0 -DFZ_ENABLE_ICC=0 -DFZ_ENABLE_JPX=0 \
|
||||
-DFZ_ENABLE_JS=0 -DTOFU -DTOFU_CJK -DTOFU_SYMBOL -DTOFU_EMOJI -DTOFU_SIL"
|
||||
|
||||
INC="-I $SRC/include -I $SRC/source/fitz -I $SRC/generated -I $HERE/shim \
|
||||
-I $SDK/sources/newlib/libc/include \
|
||||
-I $SDK/sources/freetype/include \
|
||||
-I $SRC/thirdparty/zlib \
|
||||
-I $SRC/thirdparty/jbig2dec \
|
||||
-I $SRC/thirdparty/libjpeg \
|
||||
-I $SRC/scripts/libjpeg \
|
||||
-I $SRC/thirdparty/gumbo-parser/src"
|
||||
|
||||
CFLAGS="-c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_WIN32 -U__MINGW32__ -UWIN32"
|
||||
|
||||
# sources we do NOT want:
|
||||
# harfbuzz.c - no harfbuzz (PDF needs no text shaping)
|
||||
# output-docx.c - DOCX writer, needs the 'extract' thirdparty (disabled)
|
||||
SKIP="harfbuzz.c output-docx.c"
|
||||
|
||||
ok=0; fail=0
|
||||
: > "$HERE/fail.log"
|
||||
for dir in fitz pdf; do
|
||||
for f in "$SRC/source/$dir"/*.c; do
|
||||
base=$(basename "$f")
|
||||
case " $SKIP " in *" $base "*) continue;; esac
|
||||
if kos32-gcc $CFLAGS $DEFS $INC -o "$OBJ/${dir}_${base%.c}.o" "$f" 2>>"$HERE/fail.log"; then
|
||||
ok=$((ok+1))
|
||||
else
|
||||
fail=$((fail+1))
|
||||
echo "FAIL $dir/$base" | tee -a "$HERE/fail.log" >/dev/null
|
||||
echo "FAIL $dir/$base"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# gumbo-parser (HTML5 parser used by fitz/xml.c) - pure C, 11 files
|
||||
GINC="-I $SRC/thirdparty/gumbo-parser/src -I $SDK/sources/newlib/libc/include"
|
||||
for f in "$SRC/thirdparty/gumbo-parser/src"/*.c; do
|
||||
base=$(basename "$f")
|
||||
if kos32-gcc $CFLAGS $GINC -o "$OBJ/gumbo_${base%.c}.o" "$f" 2>>"$HERE/fail.log"; then
|
||||
ok=$((ok+1))
|
||||
else
|
||||
fail=$((fail+1)); echo "FAIL gumbo/$base"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "=== compiled OK: $ok, FAILED: $fail ==="
|
||||
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# Compile MuPDF 1.19.0 thirdparty deps + base14 font resources for KolibriOS.
|
||||
# File lists are read straight from the upstream Makelists so we build exactly
|
||||
# MuPDF's chosen subset. Reports failures; does not archive yet.
|
||||
set -u
|
||||
export PATH="/c/MinGW/msys/1.0/home/autobuild/tools/win32/bin:$PATH"
|
||||
|
||||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||||
SRC="$HERE/../mupdf-1.19.0-source"
|
||||
SDK=/c/Kolibri/git/contrib/sdk
|
||||
OBJ="$HERE/obj"
|
||||
mkdir -p "$OBJ"
|
||||
|
||||
CFLAGS="-c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_WIN32 -U__MINGW32__ -UWIN32"
|
||||
NEWLIB="-I $SDK/sources/newlib/libc/include"
|
||||
: > "$HERE/fail_third.log"
|
||||
ok=0; fail=0
|
||||
|
||||
# pull "VAR += path" lists from Makelists
|
||||
srclist() { grep "^$1 " "$SRC/Makelists" | sed "s#^$1 += *##"; }
|
||||
|
||||
compile() { # tag, cflags, file(relative to SRC)
|
||||
local tag="$1" cf="$2" f="$SRC/$3"
|
||||
local base=$(basename "$3")
|
||||
if kos32-gcc $CFLAGS $cf -o "$OBJ/${tag}_${base%.c}.o" "$f" 2>>"$HERE/fail_third.log"; then
|
||||
ok=$((ok+1))
|
||||
else
|
||||
fail=$((fail+1)); echo "FAIL $tag/$base"
|
||||
fi
|
||||
}
|
||||
|
||||
FT="$NEWLIB -I $SRC/thirdparty/freetype/include -I $SRC/scripts/freetype \
|
||||
-DFT2_BUILD_LIBRARY -DFT_CONFIG_MODULES_H=\"slimftmodules.h\" -DFT_CONFIG_OPTIONS_H=\"slimftoptions.h\""
|
||||
ZL="$NEWLIB -I $SRC/thirdparty/zlib"
|
||||
JB="$NEWLIB -I $SRC/include -I $SRC/thirdparty/jbig2dec -DHAVE_STDINT_H -DJBIG_EXTERNAL_MEMENTO_H=\"mupdf/memento.h\""
|
||||
JP="$NEWLIB -I $SRC/thirdparty/libjpeg -I $SRC/scripts/libjpeg"
|
||||
RS="$NEWLIB -I $SRC/include"
|
||||
|
||||
echo "--- freetype ---"; for f in $(srclist FREETYPE_SRC); do compile freetype "$FT" "$f"; done
|
||||
echo "--- zlib ---"; for f in $(srclist ZLIB_SRC); do compile zlib "$ZL" "$f"; done
|
||||
echo "--- jbig2dec ---"; for f in $(srclist JBIG2DEC_SRC); do compile jbig2dec "$JB" "$f"; done
|
||||
echo "--- libjpeg ---"; for f in $(srclist LIBJPEG_SRC); do compile libjpeg "$JP" "$f"; done
|
||||
echo "--- resources (base14 fonts) ---"
|
||||
for f in $(cd "$SRC" && ls generated/resources/fonts/urw/*.cff.c); do compile res "$RS" "$f"; done
|
||||
|
||||
echo "=== thirdparty compiled OK: $ok, FAILED: $fail ==="
|
||||
@@ -0,0 +1,21 @@
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/source/fitz/directory.c:27:0:
|
||||
C:/Kolibri/git/contrib/sdk/sources/newlib/libc/include/sys/stat.h:136:0: warning: "S_ISDIR" redefined
|
||||
#define S_ISDIR(m) (((m)&_IFMT) == _IFDIR)
|
||||
^
|
||||
In file included from c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\include\mupdf\fitz.h:32:0,
|
||||
from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/source/fitz/directory.c:23:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\include\mupdf\fitz\system.h:182:0: note: this is the location of the previous definition
|
||||
#define S_ISDIR(mode) ((mode) & S_IFDIR)
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/source/fitz/noto.c:66:0: warning: "TOFU_SYMBOL" redefined
|
||||
#define TOFU_SYMBOL
|
||||
^
|
||||
<command-line>:0:0: note: this is the location of the previous definition
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/source/fitz/noto.c:67:0: warning: "TOFU_EMOJI" redefined
|
||||
#define TOFU_EMOJI
|
||||
^
|
||||
<command-line>:0:0: note: this is the location of the previous definition
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/source/pdf/pdf-parse.c: In function 'pdf_to_date':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/source/pdf/pdf-parse.c:188:8: warning: implicit declaration of function 'timegm' [-Wimplicit-function-declaration]
|
||||
utc = timegm(&tm);
|
||||
^
|
||||
@@ -0,0 +1,357 @@
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:22:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c: In function 'FT_MulDiv_No_Round':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c:502:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c: In function 'FT_Matrix_Multiply_Scaled':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c:744:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c: In function 'FT_Matrix_Check':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c:814:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c: In function 'FT_Vector_Transform_Scaled':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c:839:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c: In function 'FT_Vector_NormLen':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c:935:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c: In function 'ft_corner_orientation':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c:1040:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c: In function 'ft_corner_is_flat':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c:1085:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:27:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_Rewind':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:99:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_Reset':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:123:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_Done':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:138:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_Prepare':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:335:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_Add':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:373:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:29:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftlcdfil.c: In function 'ft_lcd_padding':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftlcdfil.c:392:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:31:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_service_list_lookup':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:129:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_validator_init':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:142:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_validator_run':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:152:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_validator_error':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:170:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Stream_Free':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:270:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_glyphslot_free_bitmap':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:341:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_glyphslot_preset_bitmap':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:498:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_glyphslot_set_bitmap':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:510:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Done_GlyphSlot':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:683:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Match_Size':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:2991:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_synthesize_vertical_metrics':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:3019:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Select_Metrics':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:3088:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Request_Metrics':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:3196:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Lookup_Renderer':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:4365:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Get_Module_Interface':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:5023:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_module_get_service':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:5068:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_property_string_set':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:5250:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:34:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftrfork.c: In function 'FT_Raccess_Guess':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftrfork.c:477:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:36:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_OpenMemory':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:44:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_Close':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:52:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_Seek':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:87:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_Skip':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:98:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_Pos':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:105:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReadAt':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:159:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_Read':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:114:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_TryRead':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:188:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReleaseFrame':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:230:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_EnterFrame':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:313:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ExtractFrame':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:210:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ExitFrame':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:347:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_GetChar':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:363:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_GetUShort':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:382:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_GetUShortLE':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:401:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_GetUOffset':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:419:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_GetULong':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:437:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_GetULongLE':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:455:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReadChar':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:492:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReadUShort':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:537:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:34:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftrfork.c: In function 'FT_Raccess_Get_HeaderInfo':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftrfork.c:167:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:36:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReadUShortLE':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:582:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReadUOffset':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:627:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReadULong':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:672:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReadULongLE':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:717:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c: In function 'FT_Stream_ReadFields':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftstream.c:864:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:22:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c: In function 'FT_Hypot':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftcalc.c:164:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:38:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c: In function 'ft_mem_alloc':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c:61:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:27:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_New':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:82:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:31:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Stream_New':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:253:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'ft_glyphslot_alloc_bitmap':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:528:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_New_GlyphSlot':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:642:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_Render_Glyph_Internal':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:4790:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:38:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c: In function 'ft_mem_qalloc':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c:87:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c: In function 'ft_mem_qrealloc':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c:165:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c: In function 'ft_mem_realloc':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c:109:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:27:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_CreateExtra':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:185:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_CheckPoints':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:285:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c: In function 'FT_GlyphLoader_CheckSubGlyphs':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftgloadr.c:319:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:31:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_CMap_Done':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:3673:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c: In function 'FT_CMap_New':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftobjs.c:3725:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:34:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftrfork.c: In function 'FT_Raccess_Get_DataOffsets':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftrfork.c:328:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
In file included from C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftbase.c:38:0:
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c: In function 'ft_mem_free':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c:174:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c: In function 'ft_mem_dup':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c:192:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c: In function 'ft_mem_strdup':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c:205:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c: In function 'ft_mem_strcpyn':
|
||||
c:\kolibri\git\contrib\media\updfnew\mupdf-1.19.0-source\thirdparty\freetype\src\base\ftutil.c:222:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c: In function 'ft_debug_init':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c:277:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
ft_debug_init( void )
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c: In function 'FT_Trace_Get_Count':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c:287:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c: In function 'FT_Trace_Get_Name':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c:296:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c: In function 'FT_Trace_Disable':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c:300:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
FT_Trace_Disable( void )
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c: In function 'FT_Trace_Enable':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftdebug.c:312:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftsystem.c: In function 'FT_Stream_Open':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftsystem.c:282:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftsystem.c: In function 'FT_New_Memory':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftsystem.c:318:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftsystem.c: In function 'FT_Done_Memory':
|
||||
C:/Kolibri/git/contrib/media/uPDFnew/build/../mupdf-1.19.0-source/thirdparty/freetype/src/base/ftsystem.c:330:3: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
|
||||
}
|
||||
^
|
||||
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* KolibriOS libc gap-fillers for the MuPDF 1.19 port.
|
||||
* The dynamic libc.dll does not export these, and MuPDF 1.19 (unlike 0.9)
|
||||
* pulls them in. Implemented self-contained, no extra dependencies.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
/* ---- process control -------------------------------------------------- */
|
||||
|
||||
void abort(void)
|
||||
{
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int atexit(void (*fn)(void))
|
||||
{
|
||||
(void)fn; /* KolibriOS app exits via exit(); no handler chain */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ---- string/number ---------------------------------------------------- */
|
||||
|
||||
long long atoll(const char *s)
|
||||
{
|
||||
long long v = 0;
|
||||
int neg = 0;
|
||||
while (*s == ' ' || *s == '\t') s++;
|
||||
if (*s == '-') { neg = 1; s++; }
|
||||
else if (*s == '+') s++;
|
||||
while (*s >= '0' && *s <= '9')
|
||||
v = v * 10 + (*s++ - '0');
|
||||
return neg ? -v : v;
|
||||
}
|
||||
|
||||
/* ---- filesystem ------------------------------------------------------- */
|
||||
|
||||
/* KolibriOS paths are already absolute (/hd0/1/...); just copy through. */
|
||||
char *realpath(const char *path, char *resolved)
|
||||
{
|
||||
if (!resolved)
|
||||
return NULL;
|
||||
strcpy(resolved, path);
|
||||
return resolved;
|
||||
}
|
||||
|
||||
/* ---- time ------------------------------------------------------------- */
|
||||
|
||||
/* Convert a broken-down UTC time to seconds since the Unix epoch.
|
||||
Used by MuPDF only to parse PDF /CreationDate style strings. */
|
||||
time_t timegm(struct tm *tm)
|
||||
{
|
||||
static const int mdays[12] =
|
||||
{ 0,31,59,90,120,151,181,212,243,273,304,334 };
|
||||
long year = tm->tm_year + 1900;
|
||||
long days;
|
||||
long leaps;
|
||||
|
||||
leaps = (year - 1969) / 4 - (year - 1901) / 100 + (year - 1601) / 400;
|
||||
days = (year - 1970) * 365 + leaps + mdays[tm->tm_mon % 12] + (tm->tm_mday - 1);
|
||||
if (tm->tm_mon >= 2 &&
|
||||
((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
|
||||
days += 1; /* this year's Feb 29 (leaps only counts through Jan 1) */
|
||||
|
||||
return (time_t)(((days * 24 + tm->tm_hour) * 60 + tm->tm_min) * 60 + tm->tm_sec);
|
||||
}
|
||||
|
||||
/* ---- thread-local storage (single-threaded stub) ---------------------- */
|
||||
/* Pulled in via newlib's gthread reentrancy layer. We never spawn threads
|
||||
in the viewer, so a fixed key with no real storage is sufficient. */
|
||||
|
||||
unsigned int tls_alloc(void)
|
||||
{
|
||||
return 0x80; /* any nonzero key */
|
||||
}
|
||||
|
||||
int tls_free(unsigned int key)
|
||||
{
|
||||
(void)key;
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
# Archive the compiled MuPDF 1.19 objects into static libs and link the
|
||||
# render pipeline test, proving the PDF-only engine links for KolibriOS.
|
||||
# Prereq: run build_kos.sh and build_third.sh first (populate obj/).
|
||||
set -e
|
||||
export PATH="/c/MinGW/msys/1.0/home/autobuild/tools/win32/bin:$PATH"
|
||||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||||
SRC="$HERE/../mupdf-1.19.0-source"
|
||||
SDK=/c/Kolibri/git/contrib/sdk
|
||||
TOOL=/c/MinGW/msys/1.0/home/autobuild/tools/win32
|
||||
OBJ="$HERE/obj"
|
||||
|
||||
NEWLIB="-I $SDK/sources/newlib/libc/include"
|
||||
|
||||
# KolibriOS libc gap-fillers (abort/atexit/atoll/timegm/realpath/tls_*)
|
||||
kos32-gcc -c -O2 -fno-ident -U__WIN32__ -U_WIN32 $NEWLIB -o "$OBJ/kosshim.o" "$HERE/kosshim.c"
|
||||
# link-test driver
|
||||
kos32-gcc -c -O2 -fno-ident -U__WIN32__ -U_WIN32 -I "$SRC/include" $NEWLIB -o "$OBJ/linktest.o" "$HERE/linktest.c"
|
||||
|
||||
# static libraries: the port's deliverable for the GUI wrapper
|
||||
rm -f "$OBJ/libmupdf.a" "$OBJ/libthird.a"
|
||||
kos32-ar rcs "$OBJ/libmupdf.a" "$OBJ"/fitz_*.o "$OBJ"/pdf_*.o "$OBJ"/gumbo_*.o "$OBJ"/res_*.o
|
||||
kos32-ar rcs "$OBJ/libthird.a" "$OBJ"/freetype_*.o "$OBJ"/zlib_*.o "$OBJ"/jbig2dec_*.o "$OBJ"/libjpeg_*.o
|
||||
|
||||
kos32-ld -static -nostdlib -T "$SDK/sources/newlib/app.lds" --image-base 0 \
|
||||
-L "$SDK/lib" -L "$TOOL/lib" \
|
||||
-o "$HERE/updfnew_test" \
|
||||
"$OBJ/linktest.o" "$OBJ/kosshim.o" "$OBJ/libmupdf.a" "$OBJ/libthird.a" \
|
||||
-lc.dll -lgcc
|
||||
# real KolibriOS apps then need: kos32-objcopy updfnew_test -O binary
|
||||
echo "linked OK -> build/updfnew_test ($(wc -c < "$HERE/updfnew_test") bytes)"
|
||||
echo "libs: $(wc -c < "$OBJ/libmupdf.a") libmupdf.a $(wc -c < "$OBJ/libthird.a") libthird.a"
|
||||
@@ -0,0 +1,46 @@
|
||||
/* Minimal MuPDF 1.19 link test for KolibriOS: exercises the whole
|
||||
render pipeline so the linker must resolve every core symbol.
|
||||
Not meant to run as-is; this validates that the port LINKS. */
|
||||
|
||||
#include <mupdf/fitz.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int render_first_page(const char *path)
|
||||
{
|
||||
fz_context *ctx;
|
||||
fz_document *doc;
|
||||
fz_pixmap *pix;
|
||||
fz_matrix ctm;
|
||||
int pages;
|
||||
|
||||
ctx = fz_new_context(NULL, NULL, FZ_STORE_UNLIMITED);
|
||||
if (!ctx)
|
||||
return 1;
|
||||
|
||||
fz_try(ctx)
|
||||
{
|
||||
fz_register_document_handlers(ctx);
|
||||
doc = fz_open_document(ctx, path);
|
||||
pages = fz_count_pages(ctx, doc);
|
||||
ctm = fz_scale(1.0f, 1.0f);
|
||||
pix = fz_new_pixmap_from_page_number(ctx, doc, 0, ctm, fz_device_rgb(ctx), 0);
|
||||
fz_save_pixmap_as_png(ctx, pix, "out.png");
|
||||
fz_drop_pixmap(ctx, pix);
|
||||
fz_drop_document(ctx, doc);
|
||||
}
|
||||
fz_catch(ctx)
|
||||
{
|
||||
fprintf(stderr, "mupdf error: %s\n", fz_caught_message(ctx));
|
||||
fz_drop_context(ctx);
|
||||
return 2;
|
||||
}
|
||||
fz_drop_context(ctx);
|
||||
return pages;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
if (argc < 2)
|
||||
return 1;
|
||||
return render_first_page(argv[1]);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
/* stub: MuPDF PDF-only port needs no harfbuzz shaping */
|
||||
@@ -0,0 +1 @@
|
||||
/* stub: MuPDF PDF-only port needs no harfbuzz shaping */
|
||||
Binary file not shown.
@@ -1,29 +0,0 @@
|
||||
# BUILD ONLY LIBRARIES
|
||||
|
||||
mkdir lib
|
||||
|
||||
cd SYSCALL/src
|
||||
make
|
||||
cd ../..
|
||||
|
||||
cd fitz
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd pdf
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd libopenjpeg
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd libjbig2dec
|
||||
make
|
||||
cd ..
|
||||
|
||||
cd draw
|
||||
make
|
||||
cd ..
|
||||
|
||||
sleep 100
|
||||
@@ -1,6 +0,0 @@
|
||||
These resources are from Adobe and are covered by their
|
||||
own copyright and license.
|
||||
|
||||
http://opensource.adobe.com/wiki/display/cmap/CMap+Resources
|
||||
http://opensource.adobe.com/wiki/display/pdfmapping/Mapping+Resources+for+PDF
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
@@ -1,90 +0,0 @@
|
||||
%!PS-Adobe-3.0 Resource-CMap
|
||||
%%DocumentNeededResources: ProcSet (CIDInit)
|
||||
%%DocumentNeededResources: CMap (B5-H)
|
||||
%%IncludeResource: ProcSet (CIDInit)
|
||||
%%IncludeResource: CMap (B5-H)
|
||||
%%BeginResource: CMap (B5-V)
|
||||
%%Title: (B5-V Adobe CNS1 0)
|
||||
%%Version: 10.003
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
|
||||
%%Copyright: All rights reserved.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistribution and use in source and binary forms, with or
|
||||
%%Copyright: without modification, are permitted provided that the
|
||||
%%Copyright: following conditions are met:
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions of source code must retain the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer.
|
||||
%%Copyright:
|
||||
%%Copyright: Redistributions in binary form must reproduce the above
|
||||
%%Copyright: copyright notice, this list of conditions and the following
|
||||
%%Copyright: disclaimer in the documentation and/or other materials
|
||||
%%Copyright: provided with the distribution.
|
||||
%%Copyright:
|
||||
%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
|
||||
%%Copyright: of its contributors may be used to endorse or promote
|
||||
%%Copyright: products derived from this software without specific prior
|
||||
%%Copyright: written permission.
|
||||
%%Copyright:
|
||||
%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
%%Copyright: -----------------------------------------------------------
|
||||
%%EndComments
|
||||
|
||||
/CIDInit /ProcSet findresource begin
|
||||
|
||||
12 dict begin
|
||||
|
||||
begincmap
|
||||
|
||||
/B5-H usecmap
|
||||
|
||||
/CIDSystemInfo 3 dict dup begin
|
||||
/Registry (Adobe) def
|
||||
/Ordering (CNS1) def
|
||||
/Supplement 0 def
|
||||
end def
|
||||
|
||||
/CMapName /B5-V def
|
||||
/CMapVersion 10.003 def
|
||||
/CMapType 1 def
|
||||
|
||||
/UIDOffset 910 def
|
||||
/XUID [1 10 25381] def
|
||||
|
||||
/WMode 1 def
|
||||
|
||||
12 begincidrange
|
||||
<a14b> <a14b> 13646
|
||||
<a15a> <a15a> 13743
|
||||
<a15c> <a15c> 13745
|
||||
<a15d> <a15e> 130
|
||||
<a161> <a162> 134
|
||||
<a165> <a166> 138
|
||||
<a169> <a16a> 142
|
||||
<a16d> <a16e> 146
|
||||
<a171> <a172> 150
|
||||
<a175> <a176> 154
|
||||
<a179> <a17a> 158
|
||||
<a1e3> <a1e3> 13647
|
||||
endcidrange
|
||||
endcmap
|
||||
CMapName currentdict /CMap defineresource pop
|
||||
end
|
||||
end
|
||||
|
||||
%%EndResource
|
||||
%%EOF
|
||||
Loaded 100 of 6042 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user