Compare commits

...
Author SHA1 Message Date
IgorA 1ed8821346 file panel data has been transferred to structures
Test PR / Build (en_US) (pull_request) Successful in 3m16s
Test PR / Build (es_ES) (pull_request) Successful in 3m19s
Test PR / Build (ru_RU) (pull_request) Successful in 3m23s
load icon indices from 'icon2ext.ini'
fix the menu's response to mouse clicks
2026-10-05 09:01:52 +03:00
IgorA 7c9ad9dde9 new icons
Test PR / Build (es_ES) (pull_request) Successful in 2m24s
Test PR / Build (en_US) (pull_request) Successful in 2m27s
Test PR / Build (ru_RU) (pull_request) Successful in 2m30s
2026-09-28 09:12:58 +03:00
IgorA c8cf7a834f small fixes
Test PR / Build (es_ES) (pull_request) Successful in 2m27s
Test PR / Build (ru_RU) (pull_request) Successful in 2m31s
Test PR / Build (en_US) (pull_request) Successful in 2m32s
2026-09-26 14:50:55 +03:00
IgorA 3b8dc9662d - fix in editbox (add lost variable mouse_flag)
Test PR / Build (en_US) (pull_request) Successful in 2m29s
Test PR / Build (es_ES) (pull_request) Successful in 2m14s
Test PR / Build (ru_RU) (pull_request) Successful in 2m21s
- add main menu (use klib.obj)
- add compile flag USE_STATIC_LIBS (for box_lib.obj)
2026-09-25 14:33:13 +03:00
IgorA a8412100b4 kfm:
Test PR / Build (es_ES) (pull_request) Successful in 2m29s
Test PR / Build (ru_RU) (pull_request) Successful in 2m34s
Test PR / Build (en_US) (pull_request) Successful in 2m41s
- system numbers have been replaced by constants
- replacement of the old function 64 with 68
- use the editbox, scrollbars from box_lib
- using sortlib
2026-09-22 11:32:35 +03:00
IgorA f711f9286b optimize import: (#689)
Build system / Build (es_ES) (push) Successful in 2m58s
Build system / Build (en_US) (push) Successful in 3m12s
Build system / Build (ru_RU) (push) Successful in 3m15s
Build system / Publish Images (push) Successful in 3m43s
color_dialog, fspeed, hdd_info, mgb, skincfg, zsea

Reviewed-on: #689
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: IgorA <aie85playm@gmail.com>
2026-09-13 20:31:16 +00:00
Leency 7802c7b18a fat: fix stack imbalance on fatal hd_extend_file error (#631)
Build system / Build (en_US) (push) Successful in 3m6s
Build system / Build (es_ES) (push) Successful in 3m17s
Build system / Build (ru_RU) (push) Successful in 3m23s
Build system / Publish Images (push) Successful in 3m19s
The FAT/device error path in fat_Write jumped to the shared one-dword
epilogue with four dwords live, so ret returned into the error-code
slot and faulted in ring 0. Give the path its own named label.

Reviewed-on: #631
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-09-12 21:25:21 +00:00
Leency 8a94db94a5 remove comments
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 17s
Test PR / Build (en_US) (pull_request) Successful in 2m18s
Test PR / Build (es_ES) (pull_request) Successful in 2m21s
Test PR / Build (ru_RU) (pull_request) Successful in 2m22s
Build system / Build (en_US) (push) Successful in 2m53s
Build system / Build (es_ES) (push) Successful in 2m56s
Build system / Build (ru_RU) (push) Successful in 3m0s
Build system / Publish Images (push) Successful in 4m58s
2026-09-11 18:51:30 +00:00
LeencyandClaude Opus 5 513af11464 kernel/net: raise the socket buffer size to 128 KiB
Summary: SOCKET_BUFFER_SIZE was 32 KiB, which caps a single TCP connection
at roughly 1 MB/s over a typical internet path regardless of the available
bandwidth.

Подробно:
The receive buffer size is the upper bound on the window a socket can
advertise, and a TCP connection cannot go faster than window / RTT. At the
old 4096*8 = 32 KiB, a path with a 32 ms round trip is limited to about
1 MB/s no matter how fast the link underneath is. Raising the buffer to
4096*32 = 128 KiB moves that ceiling to roughly 4 MB/s on the same path.

Nothing else needs adjusting: request_r_scale is derived from
SOCKET_BUFFER_SIZE in tcp_usreq, so the window scale we request grows with
the buffer automatically, and both tcp_output and tcp_respond clamp the
scaled value to the 16-bit header field. The constant keeps satisfying the
documented requirement of 4096*(power of two >= 8).

The cost is memory: each stream socket maps a send and a receive ring, so a
TCP socket now reserves 256 KiB of physical memory instead of 64 KiB (and
twice that in address space, since the rings are mirror-mapped). For a
browser holding a handful of connections open this is a few megabytes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 18:51:30 +00:00
Egor00f e0e8a35364 libc.obj: time.h using _ksys_get_clock, but this function not defined (#688)
Build system / Build (en_US) (push) Successful in 3m30s
Build system / Build (ru_RU) (push) Successful in 3m30s
Build system / Build (es_ES) (push) Successful in 3m38s
Build system / Publish Images (push) Successful in 3m13s
f2ea10c1cd/programs/develop/ktcc/libc.obj/include/time.h (L8)
Reviewed-on: #688
Co-authored-by: Egor00f <y.yarin@inbox.ru>
2026-09-08 20:41:45 +00:00
Matou1306 f2ea10c1cd fs/ext: Support INCOMPAT_EXTENTS, RO_COMPAT_DIR_NLINK, RO_COMPAT_HUGE_FILE. (#603)
Build system / Build (en_US) (push) Successful in 3m14s
Build system / Build (ru_RU) (push) Successful in 3m18s
Build system / Build (es_ES) (push) Successful in 3m23s
Build system / Publish Images (push) Successful in 3m40s
Extents writing support.
In addition, the file system can now write to file systems with dir_nlink, as long as the target directory doesn't have the index flag enabled (directories exceeding 64k subdirectories). It also supports huge_file, as long as the huge_file inode flag is not enabled on the file itself (files > 2TB).
This Pull Request depends on #584

What currently works:

- Merging a new allocation into the last extent when contiguous (.extentNext fast path)
- Adding a new extent entry into an existing leaf/root node that still has room (.addNewExtent)
- Creating the very first extent in an empty root (.newExtentRoot)
- Checksum maintenance via calc_extent_block_csum on writes to index/leaf blocks
- Truncation, including freeing leaves and collapsing an index entry back up the tree (.trim_tree/.trim_index), down to setting currentDepth = 0 when the whole tree empties
- Increasing the height of the tree and allocating new leaves.

Reviewed-on: #603
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Matou1306 <mathieubotros@gmail.com>
2026-09-07 11:41:41 +00:00
Leency 302bf7e221 board: toggle kernel/user log with Tab (#682)
Build system / Build (ru_RU) (push) Successful in 3m56s
Build system / Build (en_US) (push) Successful in 4m1s
Build system / Build (es_ES) (push) Successful in 4m3s
Build system / Publish Images (push) Successful in 4m22s
Reviewed-on: #682
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-09-07 11:20:29 +00:00
IgorA a3af661ed6 libs/libimg: added support for saving 8-bit images in PNG format (#599)
Build system / Build (ru_RU) (push) Successful in 4m7s
Build system / Build (en_US) (push) Successful in 4m15s
Build system / Build (es_ES) (push) Successful in 4m23s
Build system / Publish Images (push) Successful in 4m10s
Еxample of an 8-bit png image with a palette https://git.kolibrios.org/KolibriOS/kolibrios/src/branch/main/programs/develop/libraries/TinyGL/asm_fork/examples/text_2.png

Reviewed-on: #599
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: IgorA <aie85playm@gmail.com>
2026-09-07 11:14:21 +00:00
b00bl1k e74f989500 programs/system/terminal: switch to the serial driver (#638)
Build system / Build (es_ES) (push) Successful in 5m59s
Build system / Build (en_US) (push) Successful in 6m15s
Build system / Build (ru_RU) (push) Successful in 6m15s
Build system / Publish Images (push) Successful in 4m44s
Reworks Terminal to use the drivers/serial API instead of using UART registers directly, enabling virtual COM port (VCP) support in addition to physical ports.

- port field now accepts a numeric port id instead of a COMx name
- syscalls use `SF_*`/`SSF_*` named constants

Closes #604

Reviewed-on: #638
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Alexey Ryabov <alex@b00bl1k.ru>
2026-09-07 10:37:40 +00:00
Leency 4fe3987e39 drivers/usbstor: limit one SCSI transfer to 240 sectors (#686)
Build system / Build (es_ES) (push) Successful in 4m3s
Build system / Build (en_US) (push) Successful in 4m3s
Build system / Build (ru_RU) (push) Successful in 4m5s
Build system / Publish Images (push) Successful in 4m8s
max_sectors_at_time only bounded a slice by the 16-bit transfer length
field of READ(10)/WRITE(10), i.e. 32 MB, so whatever the caller asked
for went to the device as a single command. The kernel disk cache hands
the driver up to CACHE_MAX_ALLOC_SIZE (4 MB) at once, so reading any
file larger than 4 MB produced one 4 MB bulk transfer.

USB sticks do not see such commands from other systems and some of them
wedge their firmware on it: the queue halts with XactErr and an
exhausted error counter, the device stops answering, drops off the bus
and re-enumerates in the middle of the operation. Observed on two
different sticks, reproducible on every file over 4 MB.

Cap a slice at 240 sectors (120 KB), the limit Linux usb-storage uses
for the same reason. The splitting loop was already there.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #686
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-09-07 07:45:25 +00:00
Sweetbread 060ec1a5d0 chore: codeowners
Test PR / Build (es_ES) (pull_request) Successful in 2m30s
Test PR / Build (en_US) (pull_request) Successful in 2m43s
Test PR / Build (ru_RU) (pull_request) Successful in 2m55s
Build system / Build (es_ES) (push) Successful in 4m49s
Build system / Build (en_US) (push) Successful in 4m57s
Build system / Build (ru_RU) (push) Successful in 4m56s
Build system / Publish Images (push) Successful in 3m57s
2026-09-03 11:59:18 +00:00
Sweetbread 882f1f0242 ci: use builtin GITEA_TOKEN
Test PR / Build (en_US) (pull_request) Successful in 1m52s
Test PR / Build (es_ES) (pull_request) Successful in 1m59s
Test PR / Build (ru_RU) (pull_request) Successful in 2m3s
Build system / Build (en_US) (push) Successful in 3m3s
Build system / Build (es_ES) (push) Successful in 3m6s
Build system / Build (ru_RU) (push) Successful in 3m10s
Build system / Publish Images (push) Successful in 3m47s
2026-09-03 11:48:08 +00:00
Leency 02070aa233 zeroconf: do not report IP conflict when device is gone (#677)
Build system / Build (en_US) (push) Successful in 3m30s
Build system / Build (es_ES) (push) Successful in 3m34s
Build system / Build (ru_RU) (push) Successful in 3m37s
Build system / Publish Images (push) Successful in 4m5s
Sysfn 76 returns -1 for a missing device. The ARP conflict counter
check in .maintain_link treats any change of the value as a new
conflict, so when a device disappeared the counter jumped 0 -> -1 -> 0
across the reconnect and a bogus "IP address conflict" notification
popped up on every replug of a USB network device.

Skip the check when the query fails.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #677
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-09-03 10:12:36 +00:00
Burer d0244f1513 apps/oberon07: migrate submodule to gitea (#680)
Build system / Build (en_US) (push) Successful in 3m34s
Build system / Build (es_ES) (push) Successful in 3m49s
Build system / Build (ru_RU) (push) Successful in 3m54s
Build system / Publish Images (push) Successful in 4m37s
Reviewed-on: #680
Reviewed-by: Егор Ярин <y.yarin@inbox.ru>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
2026-09-03 10:06:44 +00:00
Leency 44465b3cc2 zeroconf: restart DHCP after network device removal (#676)
Build system / Build (ru_RU) (push) Successful in 4m23s
Build system / Build (en_US) (push) Successful in 4m40s
Build system / Build (es_ES) (push) Successful in 4m47s
Build system / Publish Images (push) Successful in 5m3s
Sysfn 74 returns -1 for a missing device, not 0, so the device-presence
check in .maintain_link never took the .link_down path and the interface
stayed in connected state forever. As a result DHCP was never restarted
when a device reappeared on the same slot (e.g. an Android phone
re-enumerating in RNDIS tethering mode with a new random MAC), leaving
the interface with a stale IP and a dead gateway.

Compare against 1 (Ethernet), the same way the .link_up? path already
does, so a vanished device properly resets the interface state and DHCP
runs again on reconnect.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #676
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-09-03 09:51:49 +00:00
Egor00f 1df9d8496d libshell & shell: use shell_api.h (#657)
Build system / Build (es_ES) (push) Successful in 3m46s
Build system / Build (en_US) (push) Successful in 3m55s
Build system / Build (ru_RU) (push) Successful in 4m27s
Build system / Publish Images (push) Successful in 5m28s
Use `shell_api.h` and the buffer structure in `shell` and `libshell` to avoid magic numbers and sync

Reviewed-on: #657
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
2026-09-02 08:25:57 +00:00
Leency 7917972a37 ac97snd: fix bug to play Cactus mp3
Build system / Build (en_US) (push) Successful in 3m16s
Build system / Publish Images (push) Successful in 15m36s
Test PR / Build (en_US) (pull_request) Successful in 1m54s
Test PR / Build (ru_RU) (pull_request) Successful in 2m4s
Test PR / Build (es_ES) (pull_request) Successful in 2m8s
Build system / Build (es_ES) (push) Successful in 3m9s
Build system / Build (ru_RU) (push) Successful in 3m13s
2026-09-01 22:48:45 +03:00
Burerandkolibrios-bot Bot 8334324d9c chore/submodules: bump kterm to upstream (#670)
Build system / Build (en_US) (push) Successful in 4m11s
Build system / Build (es_ES) (push) Successful in 4m19s
Build system / Build (ru_RU) (push) Successful in 4m26s
Build system / Publish Images (push) Successful in 5m10s
Co-authored-by: kolibri-bot <bot@kolibrios.org>
Reviewed-on: #670
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
2026-09-01 14:33:53 +00:00
2757ea7d3e libs/boxlib: rewrite editbox.asm (fix #652) (#662)
Build system / Build (en_US) (push) Successful in 3m35s
Build system / Build (es_ES) (push) Successful in 3m39s
Build system / Build (ru_RU) (push) Successful in 3m48s
Build system / Publish Images (push) Successful in 6m56s
Rewrite of the editbox widget. Binary layout and public API unchanged.

- much more readable code
- scroll step = actual chars that fit in the field (`visibleCount`, ex-`shift_old`), not hardcoded 8 (fixes #652)
- `edit_box` formalized as a fasm `struct` with named fields; unions add readable aliases (`caretPos`, `textLen`, `selectColor`, ...) to the old names
- `txCol` -> `txColor` (`BColor` union with per-channel access)
- clipboard: payload described by `BClipBuf` struct, content validated before paste, fixed paste arithmetic and a memory leak on read
- restored Ctrl+C
- fixed `not cx` truncation (buffer overflow), stale redraw in insert mode, division with uninitialized edx
- control flow untangled into procedures, net -94 lines

---------

Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-by: ZReticules <my_mailbox_228@mail.ru>
Reviewed-on: #662
Reviewed-by: IgorA <22+igora@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: The Bird of Hermes <zlo.shustrik@mail.ru>
2026-09-01 14:26:21 +00:00
Burer bf8ae67dbf ci: restore functionality of old autobuilds system (#671)
Build system / Build (es_ES) (push) Successful in 3m35s
Build system / Publish Images (push) Successful in 4m48s
Build system / Build (ru_RU) (push) Successful in 3m39s
Build system / Build (en_US) (push) Successful in 3m44s
Restores what the new ci/ folder lost compared to the old autobuild server:
- `ci/latest` symlink to the newest build
- bare `kolibri.img` at `<lang>/data/data/kolibri.img` - the path emulators (v86) hardcode
- `distr.tar.gz` (distribution kit)
- build tree unpacked into `ci/<version>/<lang>/data/` for per-program downloads
- `sha256sums.txt` and `build.log` per language

Reviewed-on: #671
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Burer <burer@kolibrios.org>
2026-09-01 15:02:56 +03:00
Leency 69bd99e991 kernel: check kernel_alloc result in font.inc (#663)
Build system / Build (en_US) (push) Successful in 2m27s
Build system / Build (ru_RU) (push) Successful in 2m32s
Build system / Build (es_ES) (push) Successful in 2m39s
Build system / Publish Images (push) Successful in 1m59s
This avoid taskbar and other apps crash when no free mem.

Reviewed-on: #663
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-08-31 12:21:10 +00:00
weronika-saturday 3bde56821f data/skins: Zune skin from WindowsXP for KolibriOS (#665)
Build system / Publish Images (push) Successful in 3m3s
Build system / Build (es_ES) (push) Successful in 2m21s
Build system / Build (en_US) (push) Successful in 2m24s
Build system / Build (ru_RU) (push) Successful in 2m27s
Today is the 20th anniversary of Microsoft’s Zune player.
I ported the theme of Zune from Windows XP.
This is my first experience in creating skins for KolibriOS.

Reviewed-on: #665
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Alexey Ryabov <alex@b00bl1k.ru>
Co-authored-by: Weronika Saturday <saturdayweronika@gmail.com>
2026-08-30 06:53:56 +00:00
Leency 2c22604f39 kernel_free, not free_kernel_space: the rings' physical pages must return to the bitmap too. (#664)
Build system / Build (ru_RU) (push) Successful in 2m32s
Build system / Publish Images (push) Successful in 1m53s
Build system / Build (en_US) (push) Successful in 2m25s
Build system / Build (es_ES) (push) Successful in 2m28s
The mirror mapping is safe - release_pages frees each frame once.

Reviewed-on: #664
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-08-28 20:37:27 +00:00
Leency de952921ee drivers/usb: xHCI (USB3) controller driver (#666)
Build system / Build (en_US) (push) Successful in 2m10s
Build system / Build (es_ES) (push) Successful in 2m12s
Build system / Build (ru_RU) (push) Successful in 2m19s
Build system / Publish Images (push) Successful in 2m7s
Serves PCI class 0C0330: LS/FS/HS devices on USB2 ports, SuperSpeed on
USB3 ports. The kernel stack knows only USB2 speeds, so SuperSpeed is
reported as high-speed and handled inside the driver. Falls back to
polling when the controller has no usable interrupt line.

Tested: flash drives, an external SSD, mice, keyboards.
Reviewed-on: #666
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-08-28 12:25:38 +00:00
Leency 7f44db1b7f free3d04: use libimg and clean png file to decrease file size (30 KB => 16.5 KB) (#667)
Build system / Build (en_US) (push) Successful in 3m55s
Build system / Build (ru_RU) (push) Successful in 4m6s
Build system / Build (es_ES) (push) Successful in 4m13s
Build system / Publish Images (push) Successful in 3m3s
Reviewed-on: #667
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-08-28 10:21:27 +00:00
Doczom f143ca1928 Kernel/disk.inc: fixed getting the disk partition number #651
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 18s
Test PR / Build (en_US) (pull_request) Successful in 2m17s
Test PR / Build (ru_RU) (pull_request) Successful in 2m18s
Test PR / Build (es_ES) (pull_request) Successful in 2m24s
Build system / Build (en_US) (push) Successful in 2m47s
Build system / Build (es_ES) (push) Successful in 2m50s
Build system / Build (ru_RU) (push) Successful in 2m52s
Build system / Publish Images (push) Successful in 2m49s
2026-08-22 10:47:21 +00:00
Matou1306andBurer 931071a0e9 kernel/fs: new SF's 70.11 (create symlink) and 70.12 (read symlink) with EXT driver support (#570)
Build system / Build (es_ES) (push) Successful in 2m33s
Build system / Build (en_US) (push) Successful in 2m39s
Build system / Build (ru_RU) (push) Successful in 2m43s
Build system / Publish Images (push) Successful in 3m28s
Tested the changes on qemu and umka and everything appears to be working fine

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #570
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Егор Ярин <y.yarin@inbox.ru>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Matou <mathieubotros@gmail.com>
2026-08-21 10:30:06 +00:00
Matou1306andBurer bed9528756 fs/ext: support flex-bg writing and update new blocks allocation selection (#584)
Build system / Build (en_US) (push) Successful in 2m27s
Build system / Build (es_ES) (push) Successful in 2m29s
Build system / Build (ru_RU) (push) Successful in 2m35s
Build system / Publish Images (push) Successful in 2m5s
Update `extfsExtentAlloc` to take edi as a goal block to start allocation at the previous block's group, falling back to the file's inode block group if edi is zero.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #584
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Matou <mathieubotros@gmail.com>
2026-08-18 07:02:57 +00:00
Egor00f 570a432a84 libc.obj: fix _ksys_read_dir (#650)
Build system / Build (en_US) (push) Successful in 2m26s
Build system / Build (es_ES) (push) Successful in 2m32s
Build system / Build (ru_RU) (push) Successful in 2m35s
Build system / Publish Images (push) Successful in 2m31s
and update `libc.obj`: update `opendir` for new `_ksys_read_dir`

Thanks to @Burer for spotting this mistake.

Reviewed-on: #650
Co-authored-by: Egor00f <y.yarin@inbox.ru>
2026-08-17 17:24:24 +00:00
Leency 1215116155 add netsurf app that download and run (or only run) the NeSurf (#648)
Build system / Build (en_US) (push) Successful in 2m11s
Build system / Build (es_ES) (push) Successful in 2m14s
Build system / Build (ru_RU) (push) Successful in 2m22s
Build system / Publish Images (push) Successful in 2m1s
+ update icon path, add to menu

Reviewed-on: #648
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-08-17 16:32:03 +00:00
Egor00f e470ef5db5 libc.obj: fix opendir (#645)
Build system / Build (en_US) (push) Successful in 2m14s
Build system / Build (ru_RU) (push) Successful in 2m26s
Build system / Build (es_ES) (push) Successful in 2m30s
Build system / Publish Images (push) Successful in 2m31s
Changes:
- [x] ignore `EOF` error
- [x] fix buf size
  `520` and `264` were mixed up
- [x] Separate checks for `malloc` and `_ksys_read_dir`
- [x] fix some potential errors
- [x] update `dir_example.c`
  + it may have page fail if run it from `shell`, because it try call `con_set_flags`
  + fix `mkdir` test
  + show `opendir` error

Reviewed-on: #645
Co-authored-by: Egor00f <y.yarin@inbox.ru>
2026-08-17 15:42:54 +00:00
Burerandkolibrios-bot Bot 24d1b5877a chore/submodules: bump kterm to upstream (#644)
Build system / Build (es_ES) (push) Successful in 2m15s
Build system / Build (ru_RU) (push) Successful in 2m22s
Build system / Build (en_US) (push) Successful in 2m27s
Build system / Publish Images (push) Successful in 1m52s
Co-authored-by: kolibri-bot <bot@kolibrios.org>
Reviewed-on: #644
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-08-14 16:12:31 +00:00
Burer aa8913ea33 games/dino: binary size optimization (fix #537) (#632)
Build system / Build (en_US) (push) Successful in 3m8s
Build system / Build (es_ES) (push) Successful in 3m7s
Build system / Build (ru_RU) (push) Successful in 3m9s
Build system / Publish Images (push) Successful in 2m29s
- Size (fit into 8192 bytes or 16 IMG sectors):
  - Drop `ulist` in favor of static arrays
  - Dropping `malloc`/`free`/`exit`; `sprintf`, `pow`, `strlen` and 64-bit division no longer pull in libc and libtcc1
  - Dead code removed

- Rendering:
  - libimg dropped. `png2h.py` turns the original PNG into a palette-indexed atlas; the blit writes a 32bpp buffer, sysfn 65 puts it on screen - the same call `img_draw` made. No runtime PNG decode, output pixel-identical. The buffer ends at the ground line: 18% fewer pixels per frame

- Bugs fixed:
  - Every fourth pterodactyl was invisible and unhittable: `getRandomNumber` is inclusive, so `yPosArr[3]` read the next field (999) and the bird spawned off-screen
  - Releasing the jump key never shortened the first jump: gated on a flag set only after the intro; Chrome gates on the loop being scheduled
  - Flap rate `1000/6` truncated to 166, `minSpeed` 8.5 to 8 - birds came earlier than in Chrome
  - Hardcoded caption height clipped the window on every non-default skin
  - A maximum jump left the buffer and cut off the dino's head; the playfield is centered now
  - Obstacles and clouds leaked: nodes were freed, their data never

- Localization:
  - Caption localized to EN/RU/ES via `CONFIG_LANG`, fits every skin in the tree

Reviewed-on: #632
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
2026-08-14 13:51:14 +00:00
Leency 647f35ea10 XDPascal: smart linking (#646)
Build system / Build (es_ES) (push) Successful in 2m28s
Build system / Build (en_US) (push) Successful in 2m32s
Build system / Build (ru_RU) (push) Successful in 2m39s
Build system / Publish Images (push) Successful in 2m35s
XDPascal для Колибри и Винды. С примерами.

Компиляторы убирают из бинарника недостижимые процедуры: два прохода,
на первом строится граф вызовов, на втором код мёртвых процедур не пишется.
Бинарники меньше в 1.5-5 раз. Ключ -nosmart отключает, вывод при этом
побайтово совпадает со старым компилятором.

Также снимаются кавычки с аргументов командной строки: без этого
make.bat не работал со сборкой не через Delphi.

xdpw_2020 - прежний компилятор, xdpw_2026 - новый.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #646
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-08-13 11:54:35 +00:00
Doczom f44ceb560c macros/format: fixed the flag for having an import table in KX format
Test PR / Build (es_ES) (pull_request) Successful in 2m36s
Test PR / Build (en_US) (pull_request) Successful in 2m38s
Test PR / Build (ru_RU) (pull_request) Successful in 2m40s
Build system / Build (ru_RU) (push) Successful in 3m10s
Build system / Build (en_US) (push) Successful in 3m13s
Build system / Build (es_ES) (push) Successful in 3m16s
Build system / Publish Images (push) Successful in 2m23s
2026-08-11 21:28:53 +05:00
Burer 6defa11a9e kernel/docs, programs: rename SF 51 and SF 77 constants (fix #321) (#640)
Test PR / Build (en_US) (pull_request) Successful in 4m7s
Build system / Build (en_US) (push) Successful in 4m28s
Test PR / Build (es_ES) (pull_request) Successful in 4m21s
Build system / Build (es_ES) (push) Successful in 4m39s
Build system / Build (ru_RU) (push) Successful in 4m43s
Test PR / Build (ru_RU) (pull_request) Successful in 1m24s
Build system / Publish Images (push) Successful in 2m0s
| SF | SSF | Old Name | Name Name |
|---|---|---|---|
| 51 | — | `SF_CREATE_THREAD` | `SF_THREAD_CONTROL` |
| 77 | — | `SF_FUTEX` | `SF_POSIX` |
| 77 | 0 | `SSF_CREATE` | `SSF_FUTEX_CREATE` |
| 77 | 1 | `SSF_DESTROY` | `SSF_FUTEX_DESTROY` |
| 77 | 2 | `SSF_WAIT` | `SSF_FUTEX_WAIT` |
| 77 | 3 | `SSF_WAKE` | `SSF_FUTEX_WAKE` |
| 77 | 10 | `SSF_FILE_READ` | `SSF_FD_READ` |
| 77 | 11 | `SSF_FILE_WRITE` | `SSF_FD_WRITE` |
| 77 | 13 | `SSF_PIPE_CREATE` | `SSF_FD_PIPE2` |

Reviewed-on: #640
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-08-09 19:08:15 +00:00
LeencyandBurer 944d74f013 drivers/hdaudio: add ring buffer for unsolicited events (#455)
Build system / Build (es_ES) (push) Successful in 2m15s
Build system / Build (ru_RU) (push) Successful in 2m19s
Build system / Build (en_US) (push) Successful in 2m23s
Build system / Publish Images (push) Successful in 1m46s
I had an issue with 100% cpu load caused by this commit be847c5e1f
This PC is HP dc5800. Its audio card is PCI\VEN_8086&DEV_293E&REV_02 (ICH9 - 82801I) with build-in speaker.

So I Gemini wrote some code for me:

> This code implements a circular buffer to temporarily store unsolicited events, allowing the interrupt handler to quickly save data and immediately release the CPU. Now, instead of placing a direct load on the system, a background timer periodically "picks up" the accumulated events from this buffer and processes them safely.

Now it fixed on my PC. Also I've tested it on two machines and it also works well. Please take a look.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #455
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-08-08 15:46:02 +00:00
Leency 2bebbcbdc3 kernel/fs: narrow the UTF16to8 input to ax (#633)
Build system / Build (es_ES) (push) Successful in 2m9s
Build system / Build (ru_RU) (push) Successful in 2m13s
Build system / Build (en_US) (push) Successful in 2m18s
Build system / Publish Images (push) Successful in 2m32s
Load characters with lodsw only ever set ax. Anything left in the high half - including what this routine's own three-byte branch leaves there - would then push every following character into a longer form: an ASCII name off a Joliet CD came out as overlong three-byte sequences from the second character on. Narrow the input here, so every caller is safe.

Reviewed-on: #633
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-08-08 15:30:25 +00:00
4ds-devandBurer 201e8b2de3 apps/cedit: menu for managing supported languages, universal language configs (#554)
Build system / Build (en_US) (push) Successful in 2m4s
Build system / Build (es_ES) (push) Successful in 2m10s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Publish Images (push) Successful in 2m15s
- all languages are configured via cedit.ini (the “edit” button in the “languages” menu)
- build/run/debug commands are also configured via cedit.ini
- new languages can be added via cedit.ini
- zator language has been added

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #554
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Alexey Ryabov <alex@b00bl1k.ru>
Co-authored-by: 4ds-dev <4ds.dev@gmail.com>
2026-08-07 07:57:14 +00:00
Burer 0390ad41e4 apps/klavisha: move to iso (#635)
Build system / Build (es_ES) (push) Successful in 2m17s
Build system / Build (en_US) (push) Successful in 2m25s
Build system / Build (ru_RU) (push) Successful in 2m31s
Build system / Publish Images (push) Successful in 1m53s
Klavisha takes 11 sectors in IMG, and is included only in RU build.
I propose move it to ISO to free space on IMG and make it more consisntent.

Reviewed-on: #635
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Alexey <alex@b00bl1k.ru>
2026-08-07 07:44:31 +00:00
b00bl1k 2515d1fa37 drivers/serial: implement serial ports enumeration (#629)
Build system / Build (es_ES) (push) Successful in 3m22s
Build system / Build (en_US) (push) Successful in 3m31s
Build system / Build (ru_RU) (push) Successful in 3m39s
Build system / Publish Images (push) Successful in 2m15s
This PR adds a new enum_ports call to the serial driver's control API that lets user-mode programs list the serial ports currently registered in the system.

It also updates debug output strings, changes the USB FTDI driver's service procedure name, and removes duplicated code from the baud rate calculation.

Reviewed-on: #629
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Alexey Ryabov <alex@b00bl1k.ru>
2026-08-07 04:40:23 +00:00
Egor00f da0e6f492b libc.obj: export missed vfprintf (#634)
Build system / Build (en_US) (push) Successful in 2m36s
Build system / Build (es_ES) (push) Successful in 2m38s
Build system / Build (ru_RU) (push) Successful in 2m41s
Build system / Publish Images (push) Successful in 2m9s
The `vfprintf` function is declared in the header files, but is not exported in the library.

Reviewed-on: #634
Co-authored-by: Egor00f <y.yarin@inbox.ru>
2026-08-06 13:52:14 +00:00
Egor00f 3c2bdfb418 Обновить programs/develop/ktcc/libc.obj/source/stdio/puts.c
Test PR / Build (es_ES) (pull_request) Successful in 1m50s
Test PR / Build (ru_RU) (pull_request) Successful in 1m56s
Test PR / Build (en_US) (pull_request) Successful in 1m58s
Build system / Build (en_US) (push) Successful in 2m10s
Build system / Build (es_ES) (push) Successful in 2m13s
Build system / Build (ru_RU) (push) Successful in 2m17s
Build system / Publish Images (push) Successful in 2m22s
2026-08-05 17:24:27 +00:00
Egor00f 67770ec3f4 libc.obj: implement console output via SHELL (#354)
Test PR / Build (ru_RU) (pull_request) Successful in 1m49s
Test PR / Build (en_US) (pull_request) Successful in 1m54s
Test PR / Build (es_ES) (pull_request) Successful in 1m57s
Adding console I/O via the `SHELL`.

Demonstration of [http_tcp_demo.c](https://git.kolibrios.org/KolibriOS/kolibrios/src/branch/main/programs/develop/ktcc/libc.obj/samples/http_tcp_demo.c):
<video src="attachments/847d7d19-3d67-480d-80c8-6d678af61a43" title="Запись экрана от 2026-03-07 13-55-50.mp4" controls></video>

- [x] output
- [x] multithread
  - [x] add mutex
  - [x] multithread tests

Reviewed-on: #354
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
2026-08-04 12:49:19 +05:00
Egor00f 76294451d2 libc.obj: implement console output via SHELL (#354)
Build system / Build (en_US) (push) Successful in 3m18s
Build system / Build (es_ES) (push) Successful in 3m21s
Build system / Build (ru_RU) (push) Successful in 2m28s
Build system / Publish Images (push) Successful in 2m39s
Adding console I/O via the `SHELL`.

Demonstration of [http_tcp_demo.c](https://git.kolibrios.org/KolibriOS/kolibrios/src/branch/main/programs/develop/ktcc/libc.obj/samples/http_tcp_demo.c):
<video src="attachments/847d7d19-3d67-480d-80c8-6d678af61a43" title="Запись экрана от 2026-03-07 13-55-50.mp4" controls></video>

- [x] output
- [x] multithread
  - [x] add mutex
  - [x] multithread tests

Reviewed-on: #354
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
2026-08-04 07:10:36 +00:00
LeencyandClaude Opus 5 031fe62338 kernel/net: fix the TCP keepalive timer expiry handler (#621)
Build system / Build (es_ES) (push) Successful in 2m12s
Build system / Build (en_US) (push) Successful in 2m18s
Build system / Build (ru_RU) (push) Successful in 2m18s
Build system / Publish Images (push) Successful in 1m40s
Summary: the keepalive handler compared the wrong field against the TCB
state constants, and walked into freed memory when the socket it killed was
released by tcp_disconnect.

Details:
Two independent defects in the same branch of tcp_timer_640ms.

First, the state test read TCP_SOCKET.state. That field is the inherited
SOCKET.state, an SS_* bitmask, not the TCB state machine; comparing it
against TCPS_ESTABLISHED compared a bitmask against an enum and decided
nothing meaningful. The TCB state lives in t_state. The comparison is also
changed from `ja` to `jae`, so only embryonic connections -- those whose
handshake never completed within TCP_time_keep_init -- are torn down here.
A synchronized connection now always falls through to .dont_kill, where it
either gets a keepalive probe (SO_KEEPALIVE set) or simply rearms the timer,
as in BSD. Previously an idle but perfectly healthy connection could be
dropped without the application ever asking for keepalives.

Second, the kill path did

        push    eax
        call    tcp_disconnect
        pop     eax
        jmp     .loop

and .loop dereferences SOCKET.NextPtr of that socket. But tcp_disconnect
jumps straight to tcp_close for a not-yet-synchronized connection, and
tcp_close calls socket_free -- so NextPtr was read out of freed kernel heap
and the timer thread continued its walk down a dangling pointer. The
successor is now saved before the call and the loop resumes at .check_only,
which is exactly what the timed-wait branch at the end of the same loop
already does.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #621
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-08-03 18:28:35 +00:00
LeencyandClaude Opus 5 8766bfc546 kernel/net: free TCP sockets closed before the handshake completes (#620)
Build system / Build (en_US) (push) Successful in 3m21s
Build system / Build (es_ES) (push) Successful in 3m23s
Build system / Build (ru_RU) (push) Successful in 1m37s
Build system / Publish Images (push) Successful in 2m16s
Summary: socket_close() skipped both tcp_disconnect and socket_free for any
TCP socket that was not yet in the SS_ISCONNECTED state, leaking the socket
structure and leaving it on the net_sockets list forever.

Details:
The SS_ISCONNECTED gate in socket_close covered only fully established
connections. A socket closed while in SYN_SENT, SYN_RECEIVED or LISTEN, or
one that never connected at all, fell through to a bare `ret`: it was
neither disconnected nor freed. The 4 KiB socket structure and its two ring
buffers stayed allocated, the socket kept its place on net_sockets, its
timers kept being decremented by tcp_timer_640ms, and SOCKET.TID kept
pointing at a thread that was about to exit. A browser or any other
application that opens connections which fail to establish (refused,
filtered, or simply cancelled by the user) leaked one socket per attempt.

The gate is not needed: tcp_disconnect dispatches on the TCB state itself
and jumps straight to tcp_close -- which calls socket_free -- whenever
t_state is below TCPS_ESTABLISHED. Dropping the test therefore routes the
not-yet-synchronized cases to exactly the cleanup they were missing, and
leaves the established path untouched. The SS_ISDISCONNECTING test is kept,
so a second close() on a socket already shutting down is still a no-op.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #620
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-08-03 18:08:29 +00:00
hidnplayr 2db92868a9 Updated IPv4 routing to perform best guess instead of hardcoded default device, until we have full routing. (#613)
Build system / Build (ru_RU) (push) Successful in 2m8s
Build system / Build (en_US) (push) Successful in 2m12s
Build system / Build (es_ES) (push) Successful in 2m17s
Build system / Publish Images (push) Successful in 1m49s
#612

Reviewed-on: #613
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: hidnplayr <hidnplayr@gmail.com>
2026-08-02 16:54:07 +00:00
IgorA 4bdee82489 apps/palitra: small improvements (#626)
Build system / Build (es_ES) (push) Successful in 2m15s
Build system / Build (ru_RU) (push) Successful in 2m20s
Build system / Build (en_US) (push) Successful in 2m27s
Build system / Publish Images (push) Successful in 2m56s
- redraw sliders while moving the mouse,
- slider redrawing optimized

Reviewed-on: #626
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: IgorA <aie85playm@gmail.com>
2026-08-02 14:00:20 +00:00
Burer b9fe23b7b2 drivers: add serial and usbftdi to img (#628)
Build system / Build (en_US) (push) Successful in 2m21s
Build system / Build (es_ES) (push) Successful in 2m6s
Build system / Build (ru_RU) (push) Successful in 2m5s
Build system / Publish Images (push) Successful in 1m52s
By the request of @b00bl1k.

Reviewed-on: #628
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: b00bl1k <alex@b00bl1k.ru>
2026-08-02 09:01:07 +00:00
b00bl1k d33a03c2e4 kernel/AHCI: preserve ebx/esi/edi in ahci_irq_handler
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 18s
Test PR / Build (en_US) (pull_request) Successful in 2m12s
Test PR / Build (ru_RU) (pull_request) Successful in 2m15s
Test PR / Build (es_ES) (pull_request) Successful in 2m18s
Build system / Build (es_ES) (push) Successful in 2m20s
Build system / Build (en_US) (push) Successful in 2m23s
Build system / Build (ru_RU) (push) Successful in 2m25s
Build system / Publish Images (push) Successful in 2m23s
2026-08-01 15:58:09 +05:00
LeencyandClaude Opus 5 35f35b39e7 kernel/net: scale the window before clamping it in tcp_respond
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 20s
Test PR / Build (en_US) (pull_request) Successful in 1m51s
Test PR / Build (es_ES) (pull_request) Successful in 1m56s
Test PR / Build (ru_RU) (pull_request) Successful in 2m0s
Build system / Build (en_US) (push) Successful in 2m7s
Build system / Build (es_ES) (push) Successful in 2m13s
Build system / Build (ru_RU) (push) Successful in 2m21s
Build system / Publish Images (push) Successful in 1m46s
Summary: tcp_respond clamped the free receive space to 65535 and only then
applied RCV_SCALE, so scaled ACKs and keepalives advertised a window far
smaller than the one actually available.

Подробно:
The window field of a TCP header is 16 bits wide and, when window scaling is
in effect, carries the free space shifted right by RCV_SCALE. The two
operations therefore have to happen in that order: shift first, then clamp
the result to TCP_max_win.

tcp_respond did the opposite. With a receive buffer larger than 64 KiB and
RCV_SCALE = 2, free space of 128 KiB was first cut down to 65535 and then
shifted to 16383, announcing 64 KiB instead of the full 128 KiB. The larger
the buffer and the scale factor, the worse the under-advertisement -- the
window only ever shrank, so the effect was lost throughput rather than
corruption, but it silently defeated window scaling on exactly the responses
that carry the window most often.

tcp_output already gets this right (it compares against TCP_max_win shl
RCV_SCALE before writing the field); tcp_respond now agrees with it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 17:45:52 +00:00
Leency a020a2c434 kernel/net: fix wild write in tcp_set_persist
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 18s
Test PR / Build (es_ES) (pull_request) Successful in 2m27s
Test PR / Build (ru_RU) (pull_request) Successful in 2m31s
Test PR / Build (en_US) (pull_request) Successful in 2m34s
Build system / Build (en_US) (push) Successful in 2m10s
Build system / Build (es_ES) (push) Successful in 2m14s
Build system / Build (ru_RU) (push) Successful in 2m20s
Build system / Publish Images (push) Successful in 1m45s
tcp_set_persist takes the socket pointer in eax and uses ebx as a
scratch register to compute the RTO:

        mov     ebx, [eax + TCP_SOCKET.t_srtt]
        shr     ebx, 2
        add     ebx, [eax + TCP_SOCKET.t_rttvar]
        shr     ebx, 1
        mov     cl, [eax + TCP_SOCKET.t_rxtshift]
        shl     ebx, cl

By the time the persist timer is armed ebx therefore holds the timeout
value, not the socket. The flag store nevertheless went through ebx, so
it wrote to the linear address <RTO> + TCP_SOCKET.timer_flags -- an
unmapped low address -- instead of setting timer_flag_persist on the
socket.

Any TCP connection whose peer advertises a zero window takes this path
from tcp_output.enter_persist and faults the kernel:

        K : Page fault
        K : EBX : 0000000A
        K : EIP : 80037DF3   (tcp_set_persist, the flag store)
        K : Process - forced terminate PID: 00000005

Observed with NetSurf on a HTTP/2 connection to www.redhat.com, where
twelve multiplexed streams closed the receive window. Store the flag
through eax, which tcpt_rangeset leaves untouched.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 17:32:55 +00:00
Leency 77d600c663 open: finally fix file association (#594)
Build system / Build (en_US) (push) Successful in 2m10s
Build system / Build (es_ES) (push) Successful in 2m21s
Build system / Build (ru_RU) (push) Successful in 2m21s
Build system / Publish Images (push) Successful in 3m16s
htm association with Netfurf never worked normally before!

Reviewed-on: #594
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-30 02:34:26 +00:00
LeencyandClaude Opus 5 f7dd4033ba kernel/net: honour the window scale factor advertised by the peer (#619)
Build system / Build (es_ES) (push) Successful in 2m21s
Build system / Build (en_US) (push) Successful in 2m24s
Build system / Build (ru_RU) (push) Successful in 2m28s
Build system / Publish Images (push) Successful in 3m24s
Summary: the received window scale option was stored into SND_SCALE, which
the connection setup code then immediately overwrote with zero, so every
peer window was interpreted unscaled.

Details:
RFC 1323 negotiation is completed in two places -- the SYN_RECEIVED branch
and the active-open branch of tcp_input. Both do

        mov     ax, word[ebx + TCP_SOCKET.requested_s_scale]
        mov     word[ebx + TCP_SOCKET.SND_SCALE], ax

relying on the declared order of the four adjacent bytes SND_SCALE,
RCV_SCALE, requested_s_scale, request_r_scale to move both factors at once.
requested_s_scale, however, was never filled in: the option parser wrote the
peer's shift count into SND_SCALE directly, and that value was then clobbered
by the word move with the zero left in requested_s_scale by socket_alloc.

The result was that SND_SCALE ended up 0 on every connection while
TF_RCVD_SCALE was set, so a peer advertising, say, 64 KiB with a shift of 7
was read as advertising 512 bytes. Sending to any modern host was throttled
to a fraction of the real window.

The parser now stores into requested_s_scale, where the setup code expects
it, and clamps the value to TCP_max_winshift (14) as required by RFC 1323 --
a peer sending a larger shift must not be allowed to make our SND_WND
computation shift out of range.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #619
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-30 02:26:39 +00:00
b00bl1k 0ca124d6cb Update CONTRIBUTING guidelines (#598)
Build system / Build (en_US) (push) Successful in 2m12s
Build system / Build (ru_RU) (push) Successful in 2m20s
Build system / Build (es_ES) (push) Successful in 2m23s
Build system / Publish Images (push) Successful in 1m58s
It would be helpful for reviewers if contributors included an `Assisted-by` tag in commits prepared with the help of AI tools.

Reviewed-on: #598
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: Alexey Ryabov <alex@b00bl1k.ru>
2026-07-25 07:35:46 +00:00
Burer 7365a98326 apps/cmm: take the c-- programs and the compiler config from their repositories (#585)
Build system / Build (es_ES) (push) Successful in 2m32s
Build system / Build (ru_RU) (push) Successful in 2m40s
Build system / Build (en_US) (push) Successful in 2m46s
Build system / Publish Images (push) Successful in 2m27s
Reviewed-on: #585
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
2026-07-25 07:27:02 +00:00
Matou1306 9941a5dfc9 fs/ext: fix bug in ext_setFileEnd (#595)
Build system / Build (es_ES) (push) Successful in 2m15s
Build system / Build (en_US) (push) Successful in 2m19s
Build system / Build (ru_RU) (push) Successful in 2m22s
Build system / Publish Images (push) Successful in 2m28s
Discovered this bug when working on truncating a file with EXTENTS flag.
Basically ebx was getting cloberred which resulted in loading an incorrect address into eax.

Reviewed-on: #595
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: Matou <mathieubotros@gmail.com>
2026-07-25 06:31:49 +00:00
Leency 041029b406 kernel/AHCI: use IRQ instead of delay (#597)
Build system / Build (ru_RU) (push) Successful in 2m16s
Build system / Build (en_US) (push) Successful in 2m21s
Build system / Build (es_ES) (push) Successful in 2m24s
Build system / Publish Images (push) Successful in 1m53s
This change was proceeded by request of Rhimad, author of original AHCI driver.
Tested on real hardware.Reviewed-on: #597
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: rgimad <3+rgimad@noreply.localhost>
2026-07-23 19:28:52 +00:00
LeencyandBurer 7c4d3f57e6 apps/bbench - CPU, graphics, memory and disk benchmark for KolibriOS (#561)
Build system / Build (en_US) (push) Successful in 2m19s
Build system / Build (es_ES) (push) Successful in 2m22s
Build system / Build (ru_RU) (push) Successful in 2m30s
Build system / Publish Images (push) Successful in 2m32s
- Add `bbench` to IMG and System Panel
  - Universal benchmark with 17 tests for CPU, graphics, memory and disk
  - Tests can be toggled and configured
  - Generates derailed reports in HTML
- Remove `MGB` and `FSPEED` from System Panel, move them from IMG to ISO

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #561
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-23 13:51:18 +00:00
LeencyandBurer 00fb7afe33 libs/libimg: fix progressive jpeg 4:2:0 shear when width mod 16 = 8 (#590)
Build system / Build (en_US) (push) Successful in 3m5s
Build system / Build (es_ES) (push) Successful in 3m5s
Build system / Build (ru_RU) (push) Successful in 3m8s
Build system / Publish Images (push) Successful in 2m3s
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #590
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: IgorA <22+igora@noreply.localhost>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-22 08:09:55 +00:00
Leency db846b5eee AddDevice: class EF subclass 04 protocol 01
Test PR / Build (en_US) (pull_request) Successful in 1m54s
Test PR / Build (es_ES) (pull_request) Successful in 1m59s
Test PR / Build (ru_RU) (pull_request) Successful in 2m7s
Build system / Build (es_ES) (push) Successful in 2m6s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Build (en_US) (push) Successful in 2m20s
Build system / Publish Images (push) Successful in 2m32s
2026-07-21 17:51:53 +00:00
Leency 686f18772a final update 2026-07-21 17:51:53 +00:00
Leency 9b7292f3e7 update 2 2026-07-21 17:51:53 +00:00
Leency e41362fb04 full support Huawei E3372h-153 modem 2026-07-21 17:51:53 +00:00
Leency bbc0f1262c usbnet: upload drivers usbcdc and usbrndis 2026-07-21 17:51:53 +00:00
Leency 5fb16b1d81 data/common: stl=/sys/3d/view3ds (#591)
Build system / Build (en_US) (push) Successful in 2m15s
Build system / Build (ru_RU) (push) Successful in 2m18s
Build system / Build (es_ES) (push) Successful in 2m22s
Build system / Publish Images (push) Successful in 2m22s
Reviewed-on: #591
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-21 16:34:17 +00:00
LeencyandBurer 8a48f089d8 libs/http.obj: fix content_received overcount on chunked transfers (#569)
Build system / Build (en_US) (push) Successful in 2m25s
Build system / Build (ru_RU) (push) Successful in 2m27s
Build system / Build (es_ES) (push) Successful in 2m30s
Build system / Publish Images (push) Successful in 2m46s
For chunked responses HTTP_receive added the whole buffer tail to
content_received every time it consumed a chunkline. When several
chunks arrived in one TCP segment, the same bytes were counted once
per chunkline (observed: content_received = 42 MB for an 83 KB page);
the value only became exact at got_all_data. A client trusting the
counter mid-transfer read far past the buffer and page-faulted.
In plain buffered mode recompute the exact value from the pointers
instead: min(chunk_ptr, write_ptr) - content_ptr, the same formula
.got_all_data_chunked uses. Data below chunk_ptr is decoded and
contiguous; bytes in [chunk_ptr, write_ptr) are still raw (unconsumed
chunkline + partial chunk). Stream/ring modes keep the running add:
there data is consumed as it arrives, so the incremental count is
correct.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #569
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-21 10:02:50 +00:00
14162d4139 apps/kiv: loading icons from shared memory, libs/libimg: crop function (#573)
Build system / Build (en_US) (push) Successful in 2m20s
Build system / Build (ru_RU) (push) Successful in 2m27s
Build system / Build (es_ES) (push) Successful in 2m31s
Build system / Publish Images (push) Successful in 2m27s
add 3 icons: save as, edit in other app, crop
libimg: add new function 'img_crop'

---------

Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Reviewed-on: #573
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: IgorA <aie85playm@gmail.com>
2026-07-21 07:55:52 +00:00
Leency 3b854ef2c6 kernel: fix extended_primary_loader build (undefined low_memory_error)
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 36s
Test PR / Build (en_US) (pull_request) Successful in 3m8s
Test PR / Build (es_ES) (pull_request) Successful in 2m47s
Test PR / Build (ru_RU) (pull_request) Successful in 1m28s
Build system / Build (es_ES) (push) Successful in 2m23s
Build system / Build (en_US) (push) Successful in 2m27s
Build system / Build (ru_RU) (push) Successful in 2m33s
Build system / Publish Images (push) Successful in 2m21s
2026-07-21 07:39:19 +00:00
Leency 2c5f6bc39a fixes 2026-07-21 07:39:19 +00:00
Leency 09af6357d4 kernel: refine boot screen options, show message that <=8 MB memory is not enough 2026-07-21 07:39:19 +00:00
Leency 4b4bd9bdde tinygl lib: fix black-color artifacts
Test PR / Build (es_ES) (pull_request) Successful in 3m38s
Test PR / Build (en_US) (pull_request) Successful in 3m43s
Test PR / Build (ru_RU) (pull_request) Successful in 1m33s
Build system / Build (en_US) (push) Successful in 2m50s
Build system / Build (es_ES) (push) Successful in 2m55s
Build system / Build (ru_RU) (push) Successful in 2m57s
Build system / Publish Images (push) Successful in 2m25s
2026-07-19 19:28:52 +00:00
Burerandkolibrios-bot Bot f373a738d7 chore/submodules: bump cmm to upstream (#581)
Build system / Build (ru_RU) (push) Successful in 2m38s
Build system / Build (en_US) (push) Successful in 2m44s
Build system / Build (es_ES) (push) Successful in 2m51s
Build system / Publish Images (push) Successful in 2m18s
Co-authored-by: kolibri-bot <bot@kolibrios.org>
Reviewed-on: #581
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-07-19 16:23:45 +00:00
Burer c7f0da5cd6 ci/cd: check submodules hourly, and let the bump PR actually get tested (#577)
Build system / Build (en_US) (push) Successful in 2m12s
Build system / Build (ru_RU) (push) Successful in 2m16s
Build system / Build (es_ES) (push) Successful in 2m18s
Build system / Publish Images (push) Successful in 1m55s
Reviewed-on: #577
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-07-19 15:39:09 +00:00
LeencyandBurer 8c48f1d18b apps/fplay: major player updates, performance, usability and UI improvements, bugfixes (#560)
Build system / Build (en_US) (push) Successful in 2m55s
Build system / Build (es_ES) (push) Successful in 3m1s
Build system / Build (ru_RU) (push) Successful in 3m8s
Build system / Publish Images (push) Successful in 1m50s
Very briefly:
- feat: add playback timer and MP3 album art support
- feat: async file reading with adaptive cache for smoother playback
- feat: smart frame skipping (preserves sync, prevents lags on slow drives)
- feat: add OSD volume and Tab info overlay
- feat: mouse wheel volume control, and basic hotkeys
- feat: support >2GB files, automatic HW acceleration check
- fix: crash/memory corruption on videos without audio or with unknown duration
- fix: freeze issues and audio-video desync after seeking
- fix: correct playback speed for silent videos and playback of files with corrupted timestamps
- fix: auto-hide volume slider in narrow windows and restore window controls layout

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #560
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-19 06:32:00 +00:00
LeencyandBurer bb58df2d87 apps/pcidev: calculate window height based on device count (#562)
Build system / Build (en_US) (push) Successful in 3m35s
Build system / Build (es_ES) (push) Successful in 3m50s
Build system / Build (ru_RU) (push) Successful in 3m53s
Build system / Publish Images (push) Successful in 3m30s
Currently: pcidev gets all screen height
After fix: pcidev pre-calculate window height based on device count

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #562
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-19 06:18:32 +00:00
LeencyandBurer 3922240df3 libimg/png: fix page fault when unpacked image data ends at page boundary (#568)
Build system / Build (es_ES) (push) Successful in 3m35s
Build system / Build (ru_RU) (push) Successful in 3m42s
Build system / Build (en_US) (push) Successful in 3m48s
Build system / Publish Images (push) Successful in 2m13s
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #568
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: IgorA <22+igora@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-18 10:54:25 +00:00
Matou1306 42b2a07033 fs/ext: Implement features 64-bit, metadata_csum, and metadata_csum_seed (#506)
Build system / Build (en_US) (push) Successful in 2m13s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Build (es_ES) (push) Successful in 2m18s
Build system / Publish Images (push) Successful in 1m56s
Implemented reading filesystems with 64 bit feature for partitions < 16TB (for standard 4kb block size)

Reading support for all ext4 filesystems built with default features.
Mount filesystems with metadata_csum / metadata_csum_seed and check csum, in case it doesn't match the mount fails.

Reviewed-on: #506
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Matou <mathieubotros@gmail.com>
2026-07-17 10:25:14 +00:00
LeencyandBurer 91be820f96 apps/updf: update 2.1 (#559)
Build system / Build (ru_RU) (push) Successful in 2m9s
Build system / Build (en_US) (push) Successful in 2m14s
Build system / Build (es_ES) (push) Successful in 2m16s
Build system / Publish Images (push) Successful in 3m9s
- Supersampling for crisp text, with automatic disabling on low-end CPUs (<1 GHz via fn 18.5)
- snap to a clear 100% (±7%)
- Zoom field in the toolbar with manual percentage input
- UI tweaks/bug fixes

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #559
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
2026-07-17 04:06:39 +00:00
Burer 7da3b2e5a4 apps/cmm: include compiler as submodule (#572)
Build system / Build (en_US) (push) Successful in 3m44s
Build system / Build (es_ES) (push) Successful in 3m43s
Build system / Build (ru_RU) (push) Successful in 3m46s
Build system / Publish Images (push) Successful in 1m47s
Reviewed-on: #572
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-07-15 12:39:40 +00:00
Leency 7cf136e214 apps/view3ds: add STL support based on convert_stl_3ds.inc by IgorA (#566)
Build system / Build (en_US) (push) Successful in 2m39s
Build system / Build (ru_RU) (push) Successful in 2m45s
Build system / Build (es_ES) (push) Successful in 2m47s
Build system / Publish Images (push) Successful in 1m49s
Reviewed-on: #566
Reviewed-by: IgorA <22+igora@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-14 04:59:27 +00:00
Leency e641f6c400 drivers/audio: add es1371, fix hang in infinity (#571)
Build system / Build (en_US) (push) Successful in 3m51s
Build system / Build (es_ES) (push) Successful in 4m6s
Build system / Build (ru_RU) (push) Successful in 4m16s
Build system / Publish Images (push) Successful in 2m59s
- add es1371 sound driver
- fix hang in infinity
- remove garbage ensoniq.asm
- add "Multimedia audio controller detected with PciId=VEN:DEV", same as vidintel does

Tested with 3 cards.

Reviewed-on: #571
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-14 04:53:19 +00:00
Leency d9b207867c data/icons.ini: transform format to icon2ext.ini (fix #226) (#534)
Build system / Build (en_US) (push) Successful in 2m37s
Build system / Build (ru_RU) (push) Successful in 2m38s
Build system / Publish Images (push) Successful in 2m19s
Build system / Build (es_ES) (push) Successful in 2m41s
Before:
```ini
doc=3
docx=3
exc=3
inf=3
log=3
ob07=3
ob7=3
odt=3
rtf=3
txt=3
wtx=3
```
Now:
```ini
3=doc,docx,exc,inf,log,ob07,odt,rtf,txt,wtx
```

Reviewed-on: #534
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-12 06:00:32 +00:00
LeencyandBurer 50d0d2e347 kernel/taskman: free leaked handle-table objects on process exit (#567)
Build system / Build (es_ES) (push) Successful in 2m9s
Build system / Build (en_US) (push) Successful in 2m13s
Build system / Build (ru_RU) (push) Successful in 2m16s
Build system / Publish Images (push) Successful in 1m45s
I wrote an autotest for Netsurf. After 130 test run the system could not
create any new process anymore. Now this is fixed. Result:
916 OK, 0 CRASH, 0 HANG

Futexes (sysfn 77) live in the per-process handle table (PROC.htab)
and are allocated from the kernel's small-object heap via
create_object. The only code path that ever frees one is
destroy_object, which runs solely on an explicit FUTEX_DESTROY call --
and real programs never make it: newlib-based applications create a
dozen or so futexes at startup for their internal locks (malloc,
stdio) and simply exit, expecting the kernel to clean up. Nothing
does: destroy_process tears down HDLLs and page tables but never
walks the handle table.

Each leaked futex pins 48 bytes of the kernel malloc arena, and that
arena is a single fixed 128 KB block (init_malloc has no grow path).
After roughly two thousand leaked handles -- a few hundred to a few
thousand application launches within one uptime -- kernel malloc()
starts failing system-wide. The first visible casualty is
load_library: it can no longer allocate a DLLDESCR, so every dll.obj
load in every new process fails from that point on ("cannot load
library"), which is easy to mistake for a userland problem.

Reproduced by repeatedly launching a newlib application: the arena
filled with ~1750 48-byte chunks carrying the 'FUTX' magic (confirmed
by dumping the live arena; mst.topsize had dropped to 32 bytes with
free physical memory and kernel heap space still abundant), and dll
loading died after ~130 launches.

Fix: in destroy_process, after destroy_all_hdlls, walk the process's
handle table and free every live object. Free slots hold small
free-list indices and the reserved stdin/stdout/stderr handles hold
small values, so a bounds check against OS_BASE skips them; live
slots hold kernel pointers and are additionally verified by the
'FUTX' magic. If other object kinds are ever added to the handle
table, they will need their own destructors here -- the magic check
makes this walk skip them safely rather than crash.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #567
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-11 18:44:32 +00:00
Leency c6b6615f84 data/icons18.png: reduce number of colors without visible degradation (#565)
Build system / Build (es_ES) (push) Successful in 2m7s
Build system / Publish Images (push) Successful in 2m3s
Build system / Build (en_US) (push) Successful in 2m14s
Build system / Build (ru_RU) (push) Successful in 2m17s
Colors count 1285 > 1045
Thanks Burer for creating decolor.htm tool

Reviewed-on: #565
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-11 16:36:27 +00:00
Leency c8d95df883 kernel/timers: fix priority-inversion livelock in timer_hs/cancel_timer_hs (#564)
Build system / Build (es_ES) (push) Successful in 2m4s
Build system / Build (en_US) (push) Successful in 2m7s
Build system / Build (ru_RU) (push) Successful in 2m14s
Build system / Publish Images (push) Successful in 2m20s
I wrote an autotest that runs Netsurf a lot of times. While running this
test I always faced the hang issue. First thought was about network
and sockets but QEMU debug through telnet revealed the issue in timers.
Now there is no hang after this fix.

timer_hs and cancel_timer_hs hold the global timer-list lock
(lock_timer_list/unlock_timer_list) across a short critical section
of plain list-pointer stores, without disabling interrupts. If the
owning thread is preempted inside that window, it can never be
scheduled again while a higher-priority thread is runnable: the
scheduler is strictly priority-based and osloop's check_timers (top
priority) busy-waits for the same lock via change_task, which never
descends to a lower-priority ring while its own ring has a runnable
thread. The result is a permanent, whole-system livelock -- not a
one-off race, but a deterministic outcome whenever the preemption
lands inside the section.

Reproduced by driving thousands of blocking TCP connects (each one
calls timer_hs for its connect timeout) through a browser under QEMU,
where interrupts tend to land on translation-block boundaries right
after the lock's cmpxchg. Confirmed via the QEMU monitor: osloop
spinning forever in lock_timer_list while the lock owner sat, fully
preempted, one instruction into timer_hs's critical section.

Fix: wrap the lock/insert-or-remove/unlock sequence in
timer_hs and cancel_timer_hs with pushfd/cli ... popfd, making it
atomic with respect to preemption. The wait loop inside
lock_timer_list is unaffected -- change_task manages IF on its own,
so spinning there with interrupts off cannot itself hang anything.

Reviewed-on: #564
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-committed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-07-11 14:33:15 +00:00
DoczomandBurer 6d02b10132 apps/macros.inc: add new macro "format" (#538)
Build system / Build (es_ES) (push) Successful in 2m38s
Build system / Build (en_US) (push) Successful in 2m46s
Build system / Build (ru_RU) (push) Successful in 2m49s
Build system / Publish Images (push) Successful in 1m47s
A new macro "format" has been added, adding the implementation of MENUET01, MENUET02 and KX formats.
task: #245

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #538
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Co-authored-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-committed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-07-10 15:01:24 +03:00
Doczom 13a9b877f3 App/mp3info: fixed Page fault error #546 (#553)
Build system / Build (es_ES) (push) Successful in 11m53s
Build system / Build (ru_RU) (push) Successful in 11m56s
Build system / Build (en_US) (push) Successful in 12m1s
Build system / Publish Images (push) Successful in 1m51s
Fixed an error when opening a program without transferring the file path.

#546

Reviewed-on: #553
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-committed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-07-06 10:50:35 +00:00
Leency 1ef640de56 apps/updf: update 2.0 based on mupdf 1.19.0 (#552)
Build system / Build (en_US) (push) Successful in 2m14s
Build system / Build (es_ES) (push) Successful in 2m20s
Build system / Build (ru_RU) (push) Successful in 2m24s
Build system / Publish Images (push) Successful in 1m50s
- continuous scrolling through pages
- add scroll-bar
- drag page by holding right mouse button
- colored icons
- select and copy text in UTF-8
- much faster and more capable
- ui improvements

Reviewed-on: #552
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-06 06:25:26 +00:00
Matou1306 91f5df9c53 fs/ext: Fix encoding for surrogate pairs (#535)
Build system / Build (en_US) (push) Successful in 2m15s
Build system / Build (ru_RU) (push) Successful in 2m17s
Build system / Build (es_ES) (push) Successful in 2m22s
Build system / Publish Images (push) Successful in 1m56s
Replaced `utf8to16` calls with `unicode.utfX.encode/decode`.
Created umka test 87 similar to xfs' t011

Reviewed-on: #535
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Matou <mathieubotros@gmail.com>
Co-committed-by: Matou <mathieubotros@gmail.com>
2026-07-06 05:39:57 +00:00
Leency adc9753e1f drivers/audio: add C-Media CMI8738/CMI8338 audio driver (#550)
Build system / Build (es_ES) (push) Successful in 2m46s
Build system / Build (ru_RU) (push) Successful in 2m49s
Build system / Build (en_US) (push) Successful in 2m52s
Build system / Publish Images (push) Successful in 2m31s
Probably the most popular sound CARD in the world.
Driver is tested on real sound cards on my side and by Jeffrey hidnplayr.

Reviewed-on: #550
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-05 16:58:36 +00:00
Burer 1f8cd12dfc libs/newlib: add POSIX mkdir, rmdir and NAME_MAX (#545)
Build system / Build (en_US) (push) Successful in 4m39s
Build system / Build (es_ES) (push) Successful in 4m41s
Build system / Build (ru_RU) (push) Successful in 4m45s
Build system / Publish Images (push) Successful in 1m48s
- add real `mkdir()` (`sys/mkdir.c`) that strips a trailing `/` rejected by the `_ksys_mkdir`
- add real `rmdir()` (`sys/rmdir.c`) wrapping `_ksys_rmdir`
- define `NAME_MAX` in `<limits.h>`

Reviewed-on: #545
Reviewed-by: Егор Ярин <y.yarin@inbox.ru>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
2026-07-03 17:16:31 +00:00
Egor00f 54f9fa3348 libc.obj: update opendir && implement _ksys_read_dir (#514)
Build system / Build (en_US) (push) Successful in 3m33s
Build system / Build (es_ES) (push) Successful in 3m35s
Build system / Build (ru_RU) (push) Successful in 3m38s
Build system / Publish Images (push) Successful in 1m43s
fix memory leak in `opendir`.

and additionally implement `_ksys_read_dir`
and at the same time the magic numbers were removed

Reviewed-on: #514
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
Co-committed-by: Egor00f <y.yarin@inbox.ru>
2026-07-03 11:30:15 +00:00
Burer 1339308c3c fs/lfn: report virtual folders (/ and devices) as folders (#544)
Build system / Build (en_US) (push) Successful in 2m0s
Build system / Build (ru_RU) (push) Successful in 2m9s
Build system / Build (es_ES) (push) Successful in 2m12s
Build system / Publish Images (push) Successful in 1m48s
- set folder attribute (0x10) for get-info on / and on devices
- split root get-info (subfn 5) from read-folder (subfn 1)
- zero the full BDFE header so timestamps/size aren't leftover garbage

Reviewed-on: #544
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-07-03 07:51:53 +00:00
LeencyandBurer 8f6cabd4db data/syspanel: general update (#531)
Build system / Build (en_US) (push) Successful in 2m4s
Build system / Build (es_ES) (push) Successful in 2m13s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Publish Images (push) Successful in 2m19s
- `kbd` moved to **[Configuration]** section
- `test` and `clipview` removed from syspanel, still available in IMG
- `dbgboard` added
- Section rename **[Testing]** => **[Diagnostics]**
- **Autorun** editor switched from `tinypad` to `cedit`
- Entries regrouped by category in every section
- Restored **EN** <=> **RU** parity - identical entries, order, and target programs
- Cleaner **EN** labels (**Video Mode**, **Network Devices**, **System Settings**, **PCI Devices**, ...)
- **ES** localization added

<img alt="image.png" src="attachments/4299f082-3cc3-4f45-a03c-dfdd85f57b9c">

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #531
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-07-02 07:49:30 +00:00
LeencyandBurer f5fa7aae30 apps/tmpdisk: version 0.80 (#516)
Build system / Build (es_ES) (push) Successful in 2m40s
Build system / Build (en_US) (push) Successful in 2m44s
Build system / Build (ru_RU) (push) Successful in 2m48s
Build system / Publish Images (push) Successful in 2m2s
cmm/libs/string:
- fix printing "%i"/"%d" instead of "0"

cmm/libs/gui:
- proper centering of text on button

tmpdisk:
- updated UI (thanks @Burer)
- mem size decreased from 800 Kb to 190 Kb
- app size decreased by 2 IMG sectors
- fix editbox incorrect data in come cases, fix other minor issues
- code refactoring
- spanish localization

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #516
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-30 20:07:35 +00:00
Burer 07beb60fc9 libs/newlib: make ksys_draw_bitmap_palette work with -fomit-frame-pointer (#536)
Build system / Build (en_US) (push) Successful in 3m45s
Build system / Build (ru_RU) (push) Successful in 3m49s
Build system / Build (es_ES) (push) Successful in 3m51s
Build system / Publish Images (push) Successful in 1m49s
Reviewed-on: #536
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-30 13:07:55 +00:00
Doczom 74caa48bee drivers/sdhci: fixed sdhci_slot_init and sdhci_init functions (#526)
Build system / Build (es_ES) (push) Successful in 1m59s
Build system / Build (ru_RU) (push) Successful in 2m4s
Build system / Build (en_US) (push) Successful in 2m8s
Build system / Publish Images (push) Successful in 1m59s
The algorithm for calculating the frequency divider has been fixed and the processing of devices with multiple slots has been fixed.

Reviewed-on: #526
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-committed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-30 06:21:14 +00:00
Burer f8e91b734c apps/flpybird: framebuffer, code refactoring, optimized data (#533)
Build system / Build (ru_RU) (push) Successful in 2m1s
Build system / Build (en_US) (push) Successful in 2m5s
Build system / Build (es_ES) (push) Successful in 2m8s
Build system / Publish Images (push) Successful in 5m48s
- use framebuffer to prevent flickering
- unify all code to snake_case
- optimize data to fit into 5*512 bytes (thanks to @Leency)

Reviewed-on: #533
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-30 05:35:48 +00:00
Burer 89a7cd62e1 apps/launcher: game launcher for wolf3d, doom and quake
Test PR / Build (en_US) (pull_request) Successful in 3m2s
Test PR / Build (es_ES) (pull_request) Successful in 3m6s
Test PR / Build (ru_RU) (pull_request) Successful in 3m6s
Build system / Build (es_ES) (push) Successful in 2m38s
Build system / Build (en_US) (push) Successful in 2m39s
Build system / Build (ru_RU) (push) Successful in 2m42s
Build system / Publish Images (push) Successful in 4m56s
FASM launcher that starts wolf3d/doom/quake with the chosen window size and
mode via CLI args. Wire it into autobuild and the games menu; doom is now
built from source, so drop the prebuilt binary.
2026-06-30 04:45:04 +00:00
Burer 059904552c apps/quake: fullscreen, fix OOM, clamp resolution to renderer limits
- grow the heap to fit the z-buffer and surface cache for the requested
  resolution
- clamp -winsize to MAXWIDTH x MAXHEIGHT so a large window cannot overrun
  the software renderer''s static tables
2026-06-30 04:45:04 +00:00
Burer 92f66e474f apps/doom: SDL render rework, sfx and config/CWD fixes, autobuild
- render the fixed 320x200 frame to a 24bpp surface and SoftStretch it to
  an arbitrary window size (-winsize); drop the old blocky integer scaler
- fix sfx: take the slice size from the obtained SDL audio spec
- set CWD to the executable dir so the WAD is found when run from launcher
- read config from DOOMRC.TXT next to the WAD
- add to autobuild
2026-06-30 04:45:04 +00:00
Burer ec5bd2967a apps/wolf3d: windowed default, fix viewport shift, center menus
- use bufferPitch instead of screenWidth for the view offset on
  non-standard window sizes
- default to windowed and honor --windowed/--fullscreen so the launcher
  controls the mode (the SDL backend now acts on SDL_FULLSCREEN, which
  used to be ignored)
- center the logical 320x200 layer (menus, title/intro, fonts, fullscreen
  pics) when the resolution is not an exact multiple of 320x200; the 3D
  view and in-game HUD stay full-screen
2026-06-30 04:45:04 +00:00
Burer aaf6c3a55b libs/sdl: add fullscreen, fix window frame size, skip redundant fill
- borderless full-screen window (style Y=1) when SDL_FULLSCREEN is set
- correct the windowed frame size (5px skin border on the left, right and
  bottom) so the framebuffer blit no longer overruns the frame by 1px
- skip the redundant kernel work-area fill (the per-frame blit covers the
  whole client anyway)
- more robust debug output
2026-06-30 04:45:04 +00:00
Leency 15511124f7 kernel/bootcode: return control on floppy error (#530)
Build system / Build (en_US) (push) Successful in 2m1s
Build system / Build (es_ES) (push) Successful in 2m4s
Build system / Build (ru_RU) (push) Successful in 2m9s
Build system / Publish Images (push) Successful in 1m50s
The issue:

1. Put kolibri.img on Flash
2. Load Kolibri from Flash
3. On Blue screen set [e] Floppy image: 1. floppy
4. Press Enter to boot

**Old result:** error, system hang ("jmp $" is infinite cycle)
**New result:** error, you can change options (set [e] = "3. preloaded image" in current case) and continue boot

I often have this issue after testing Kolibri in QEMU and then coping image on Flash to run it on real hardware.
If I forgret to change [e] option ffrom 1 to 3 I had to reboot.

Reviewed-on: #530
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-28 06:16:14 +00:00
Doczom 5407211418 App/AMDtemp: the error of loading duplicate drivers has been fixed. (#527)
Build system / Build (ru_RU) (push) Successful in 2m20s
Build system / Build (en_US) (push) Successful in 2m24s
Build system / Build (es_ES) (push) Successful in 2m25s
Build system / Publish Images (push) Successful in 1m49s
The error of loading duplicate drivers has been fixed. The encoding of the characters displayed in the window has been changed to UTF-8

Reviewed-on: #527
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-committed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-28 05:58:39 +00:00
LeencyandBurer ade1e846f3 apps/palitra: version 0.8 (#510)
Build system / Build (en_US) (push) Successful in 2m3s
Build system / Build (es_ES) (push) Successful in 2m6s
Build system / Build (ru_RU) (push) Successful in 2m12s
Build system / Publish Images (push) Successful in 2m30s
- UI elements have been enlarged
- Proper response to slider ends
- System icons
- Трохи констант бо це пздц х_х
- Сheckers and Silk fill styles
- Color selection with any mouse button

Vaicheslav97, Leency, Burer

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #510
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-27 08:38:33 +00:00
Leency 3b47df76ec unimg: support long names (#517)
Build system / Build (es_ES) (push) Successful in 2m5s
Build system / Build (ru_RU) (push) Successful in 2m9s
Build system / Build (en_US) (push) Successful in 2m12s
Build system / Publish Images (push) Successful in 1m54s
When extract kolibri.img

Was: File man~
Now: File managers
Reviewed-on: #517
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-26 15:46:57 +00:00
Burer 481b5779b8 ci/cd: fix tup cache rebuild (#525)
Build system / Build (es_ES) (push) Successful in 10m27s
Build system / Build (en_US) (push) Successful in 10m33s
Build system / Build (ru_RU) (push) Successful in 10m32s
Build system / Publish Images (push) Successful in 2m7s
Problem: `sync-tup-ctime.py` realigned every node's ctime, which hid real source changes whose Tupfile didn't change.
Fix: stamp the cache with its commit and on restore, `git diff` against it, keeping changed files dirty so tup rebuilds them.

Reviewed-on: #525
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
2026-06-26 06:15:52 +00:00
Burer 8c45972a96 apps/app_plus: add blocks to 3d section (#523)
Build system / Build (en_US) (push) Successful in 2m6s
Build system / Build (es_ES) (push) Successful in 2m16s
Build system / Build (ru_RU) (push) Successful in 2m20s
Build system / Publish Images (push) Successful in 3m8s
Reviewed-on: #523
Reviewed-by: Andrew <15+ace-dent@noreply.localhost>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-06-25 13:22:42 +00:00
LeencyandBurer 566ce799fe apps/kterm: add to autobuilds via submodules (#477)
Build system / Build (es_ES) (push) Successful in 2m6s
Build system / Build (en_US) (push) Successful in 2m9s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Publish Images (push) Successful in 2m13s
Author was okay to upload it to main repo, so I did ths. Also added to ISO.

https://board.kolibrios.org/viewtopic.php?p=80620#p80620
https://git.kolibrios.org/b00bl1k/kterm

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #477
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-25 11:48:39 +00:00
lexsurkov 5fa08beeba game snake refactoring (fix #174) (#331)
Build system / Build (en_US) (push) Successful in 2m28s
Build system / Build (ru_RU) (push) Successful in 2m31s
Build system / Build (es_ES) (push) Successful in 2m34s
Build system / Publish Images (push) Successful in 2m54s
- code refactoring
- russian localization
- better interface

Reviewed-on: #331
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: Aleksey Surkov <lexsurkov@rambler.ru>
Co-committed-by: Aleksey Surkov <lexsurkov@rambler.ru>
2026-06-25 10:49:05 +00:00
Matou1306 3dd8e618ad fs/ext: Fix ext_ReadFile, ext_WriteFile return values (#515)
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Build (es_ES) (push) Successful in 2m18s
Build system / Build (en_US) (push) Successful in 2m20s
Build system / Publish Images (push) Successful in 2m19s
The code was doing `mov byte [esp], ERROR_CODE` in both reads and writes.
Upper 24 bits are not guaranteed to be zeroed so the status returned is incorrect.
Fixed it by replacing `byte` with `dword`.
For EOF error for example, this fix return `status = 6 end_of_file, count = 1`.
instead of the current `status = 32774 unknown`.

Reviewed-on: #515
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Matou <mathieubotros@gmail.com>
Co-committed-by: Matou <mathieubotros@gmail.com>
2026-06-24 13:43:04 +00:00
Matou1306 22fc1c93ee fs/ext: Support RO_COMPAT_EXTRA_ISIZE (#446)
Build system / Build (ru_RU) (push) Successful in 2m35s
Build system / Build (en_US) (push) Successful in 2m40s
Build system / Build (es_ES) (push) Successful in 2m39s
Build system / Publish Images (push) Successful in 2m10s
This commit provides support for 0x0040 RO_COMPAT_EXTRA_ISIZE.
Umka reading t072 and writing t074 tests are done and passing.

Reviewed-on: #446
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Matou <mathieubotros@gmail.com>
Co-committed-by: Matou <mathieubotros@gmail.com>
2026-06-24 10:31:23 +00:00
Leency 9866a788e5 barscfg: fix docky icon when it is turned off (#521)
Build system / Build (en_US) (push) Successful in 2m1s
Build system / Build (ru_RU) (push) Successful in 2m5s
Build system / Build (es_ES) (push) Successful in 2m11s
Build system / Publish Images (push) Successful in 1m51s
Reviewed-on: #521
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-24 08:22:34 +00:00
Leency 53aa0cce73 apps/eolite: update 5.34: virtual disk "/vd" detection, taller icons, code refactoring (#512)
Build system / Build (en_US) (push) Successful in 2m52s
Build system / Build (es_ES) (push) Successful in 2m56s
Build system / Build (ru_RU) (push) Successful in 2m59s
Build system / Publish Images (push) Successful in 1m52s
Reviewed-on: #512
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-24 07:51:05 +00:00
Leency 5fc9829b3c icons: update (#520)
Build system / Build (es_ES) (push) Successful in 2m7s
Build system / Build (en_US) (push) Successful in 2m11s
Build system / Build (ru_RU) (push) Successful in 2m15s
Build system / Publish Images (push) Successful in 2m23s
icons32.png by Burer:
- new icon 30 for "voxel" files
- new icon 78 for "3d" files
- new icon 130 for "blocks" files

icons18.png by Leency:
- update 007 "melody": better visibility
- update 063 "bin": better contrast
- new icons 70-74 for KIV, virtual disk, voxels/blocks...

 ![image.png](/attachments/26e07dc6-b30d-4599-ac27-6f096cd11c39)

![image.png](/attachments/a06ad4a5-329c-4c8f-a15b-cc85931e9c2d)

Reviewed-on: #520
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-23 19:43:03 +00:00
IgorA 70150f4e30 apps/blocks: add 2 blocks and 3 models, fix castle (#513)
Build system / Build (en_US) (push) Successful in 2m6s
Build system / Build (es_ES) (push) Successful in 2m11s
Build system / Build (ru_RU) (push) Successful in 2m14s
Build system / Publish Images (push) Successful in 1m41s
Reviewed-on: #513
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2026-06-23 15:49:01 +00:00
LeencyandBurer db8dae1327 Update data/ru_RU/welcome.htm (#518)
Build system / Build (ru_RU) (push) Successful in 2m5s
Build system / Build (en_US) (push) Successful in 2m8s
Build system / Build (es_ES) (push) Successful in 2m10s
Build system / Publish Images (push) Successful in 2m20s
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #518
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-23 14:37:30 +00:00
SweetbreadandBurer 0432b892bc ci: add PR-test workflow
Test PR / Build (es_ES) (pull_request) Successful in 3m33s
Test PR / Build (ru_RU) (pull_request) Successful in 1m23s
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 38s
Test PR / Build (en_US) (pull_request) Successful in 4m12s
Build system / Build (en_US) (push) Successful in 2m16s
Build system / Build (es_ES) (push) Successful in 2m19s
Build system / Build (ru_RU) (push) Successful in 2m23s
Build system / Publish Images (push) Successful in 2m18s
Co-authored-by: Burer <burer@kolibrios.org>
2026-06-23 07:26:07 +03:00
BurerandSweetbread 0ec60e08ca ci: split kernel codestyle into a Python workflow
Co-authored-by: Sweetbread <risdeveau@lair.moe>
2026-06-23 07:26:07 +03:00
SweetbreadandBurer d3d5154d5f ci: rework main build - matrix, inline toolchain, tup cache, Ansible deploy
Co-authored-by: Burer <burer@kolibrios.org>
2026-06-23 07:26:06 +03:00
SweetbreadandBurer fd61c21475 ci: add tup cache ctime-sync helper
Co-authored-by: Burer <burer@kolibrios.org>
2026-06-23 07:26:05 +03:00
ace-dent b17238773b programs/encoding.inc: expand CP850 macro (#501)
- Add more detailed (and precise) comments.
- Expand `cp850` macro to encode more code points; useful for German characters `ä` and `ü`.
- Note: all of the current CP850 encodings map directly to CP437.

Reviewed-on: #501
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-06-21 18:10:02 +00:00
Leency ff34330fb0 virtdisk: add to img 2026-06-21 17:04:00 +00:00
Leency a566cef4c1 data/img: regroup 3D file entries, use SRC_PROGS for blocks 2026-06-21 17:04:00 +00:00
28f0e4d51e kernel: fix minor typos (#485)
- Fix some English, German & Russian typos and improve text for fluency.
- Use accented characters `ä` and `ü` in German boot screen text.
- Note: Line endings standardised from `CRLF` > `LF` and trailing whitespace removed automatically due to `.editorconfig`; best to view diffs with whitespace changes at EOL hidden.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-by: Sweetbread <risdeveau@lair.moe>
Reviewed-on: #485
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-06-21 16:51:25 +00:00
Doczom 850ddc3a64 App/socketdbg: updated *SOCKET structs and fixed stack in loop
Build system / Check kernel codestyle (pull_request) Successful in 58s
Build system / Build (pull_request) Successful in 12m36s
2026-06-21 12:49:43 +00:00
LeencyandBurer bbf35c3c83 data/icons: update icons (#493)
ICONS18:
- FB2 icon changed to Database
- Trash icon updated
- NDN icon redrawn
- Refresh, Cancel and Warning icons added

ICONS32:
- WebView icon redrawn
- VoxelEditor icon redrawn
- Floppy icon updated
- Drawer icon updated

Other:
- Fix wrong icon for .ob7 files in icons.ini

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #493
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: bad_Dr3dd0x <1702+bad_dr3dd0x@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-21 11:47:02 +00:00
Egor00fandBurer e0e0290234 libs/libc.obj: update vfprintf and vprintf (#482)
Allow for output greater than STDIO_MAX_MEM:
- automatically allocated langer buffer if vsnprintf requires it
- use vfprintf in vprintf instead of vsnprintf

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #482
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Егор <y.yarin@inbox.ru>
Co-committed-by: Егор <y.yarin@inbox.ru>
2026-06-17 16:46:42 +00:00
Egor00f ceb29bbd9e apps/unimg: fix build with disabled c-- (#496)
reason: #486

`unimg` now building with c--, but it not under `if tup.getconfig('NO_CMM') ~= 'full' then`

Reviewed-on: #496
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
Co-committed-by: Egor00f <y.yarin@inbox.ru>
2026-06-15 14:09:42 +00:00
ace-dentandBurer 208e157e04 kernel: expand CP850 macro (#487)
- add more detailed and precise comments
- expand CP850 macro for DE characters ä, ü and ñ

note: all of the current CP850 encodings maps directly to CP437

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #487
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-06-13 04:12:13 +00:00
LeencyandBurer a9ae0dbc73 apps/ac97snd: add to img as a binary instead of not-working msvc autobuild (#494)
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #494
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-12 15:39:07 +00:00
5e1b701c84 contrib/other: minor typos (#461)
- Fix errors and improve spellings for fluency.
- Note: Line endings standardised from `CRLF` > `LF` and trailing whitespace removed automatically due to `.editorconfig`; best to view diffs with whitespace changes at EOL hidden.

---------

Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #461
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-06-12 04:05:07 +00:00
0381abade7 ktcc/libc: add floating-point parsing to strtod family and scanf
- add strntold(): bounded string-to-long-double parser (the core)
- implement strtod(), strtof(), strtold() on top of it; rework strtod()
- vsscanf: add %e %E %f %F %g %G (field width, EOF/error, float/double/long double)
- fix itoa(): __reverse() called strlen() on a not-yet-NUL-terminated buffer — pass length explicitly, drop <string.h>
- export new symbols (libc.def, stdlib.h, libc.c)
- update libc_test.c

---------

Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-by: Zverrr <zverrr@skbkontur.ru>
Reviewed-on: #407
Reviewed-by: Егор <y.yarin@inbox.ru>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Zverev Dmitriy <dvzverrr@gmail.com>
Co-committed-by: Zverev Dmitriy <dvzverrr@gmail.com>
2026-06-10 16:46:49 +00:00
LeencyandBurer 4cd1bfda63 apps/unimg: rewrite to c--, support any image type (#486)
- original version by boppan (magomed kostoev) is rewritten to c--
- cleaned up code
- now handle any image and sector size, not just kolibri.img
- fits into 2 kb (old version was 3.6 kb)
- support all system languages

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #486
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-10 15:53:35 +00:00
Egor00fandBurer d08e94331a libs/ksys.h: add wrappers for more system functions (#355)
- add system functions:
  - 18.10
  - 18.13
  - 18.15
  - 18.20
  - 18.22
  - 18.23
  - 18.24
  - 18.25
  - 21.2
  - 21.5
  - 21.11
  - 21.12
  - 22
  - 26.2
  - 26.5
  - 26.11
  - 26.12
- add return value for _ksys_kill_by_pid and _ksys_keyboard_layout
- some small fixes (grammar, extra comma in asm fragment)

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #355
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
Co-committed-by: Egor00f <y.yarin@inbox.ru>
2026-06-08 16:10:35 +00:00
LeencyandBurer 893bc8a636 apps/ndn: update to v3.00.0012 (#456)
new version from here http://old-dos.ru/index.php?page=files&mode=files&do=show&id=2277

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #456
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-08 13:11:44 +00:00
Igor ShutrovandBurer ae758389f5 apps/ftpd: add MKD command (#342)
- Add MKD command
- Add universal table of filesystem errors

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #342
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Co-committed-by: Igor Shutrov <kolibridev@inbox.ru>
2026-06-07 17:12:18 +00:00
LeencyandBurer 6e5f7642db data/menu: fix welcome.htm path + localize welcome.htm to all system languages (#466)
- "Welcome" menu item now uses absolute path `/sys/welcome.htm` (relative path failed to open when other tab was already open).
- Add full RU and ES translations of welcome.htm, keeping the original tone, plus per-language build rules
- Fix typos/grammar, names and trailing whitespace in EN welcome.htm
- Add <head> tag with proper <meta charset="..."> to all three language versions

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #466
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Andrew <15+ace-dent@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-07 16:11:24 +00:00
LeencyandBurer 17f5260023 apps/mousepos: rework and add to autobuild (#463)
Ships `mousepos` in the autobuild and modernizes it.

Changes:
- Borderless static window => skinned draggable window
- Removed exit on `Escape`, added exit on window button and `Alt+F4`
- Localized labels (EN/RU/ES) via `encoding.inc`.
- Rendering split into static `draw_labels` / dynamic `draw_data`
- Refubrished UI: bold numbers, rows grouped by separators.
- Layout driven by named constants/RECT (`CHAR_W`, `PAD`, `BORD`, `GAP`).

<img width="373" alt="image.png" src="attachments/9ec6c143-e87f-45f7-a5e3-0a584d8eda95">

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #463
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-07 15:08:41 +00:00
ace-dent 4ebfb645d3 data/wallpapers: lossless png optimization (#479)
- Lossless optimization of png images using `oxipng` and `advdef` with extensive zopfli trials; saves 15 bytes (~19 bytes kpacked).

Reviewed-on: #479
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-06-07 13:43:17 +00:00
LeencyandBurer d464b7e770 apps/webview: update to 3.98 (#474)
- proper fix of line break
- new refresh / stop icons
- more comfortable debug mode
- remove old comments from code
- fix very old issue with text overlapping
-  line break on '-'

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #474
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-06 12:38:59 +00:00
Burer 62d0e86f3b apps/reshare: change bpp convention to match KIV (#470)
Reviewed-on: #470
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-06-06 06:49:28 +00:00
Burer 618b0389ff libraries/libmpg123: fix broken SVN repository link (#469)
Re-opens #468 (accidentally merged, then rolled back from main). Resubmitting for review.

Reviewed-on: #469
Reviewed-by: Andrew <15+ace-dent@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-05 14:30:12 +00:00
Egor00fandBurer e8d095ed88 implement strftime (#447)
Taken from https://github.com/arnoldrobbins/strftime/blob/master/strftime.c

Time zones support is disabled (`z` and `Z` don't work)

The test runs and displays correctly.
`tm_yday` and `tm_wday` in test set manually, because `mktime` doesn't set `tm_yday` and `tm_wday`.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #447
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
Co-committed-by: Egor00f <y.yarin@inbox.ru>
2026-06-05 12:26:51 +00:00
Doczom 828df445c2 apps/open: fix the pointer to the top of the stack in the header (fix #467) (#471)
Fixed the pointer to the top of the stack in the header #467

Reviewed-on: #471
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-authored-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-committed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
2026-06-04 14:22:08 +00:00
LeencyandBurer 9b450ff4aa apps/downloader: rename to httpget to fit into 8.3 (author accepted the change), unify web programs names in menu (#465)
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #465
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-04 11:48:09 +00:00
Leency 0e186843d4 apps/koldbg: add grey color theme and theme switch on F12 key (#457)
Reviewed-on: #457
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-04 09:56:55 +00:00
LeencyandBurer 1a3c1e7173 apps/ftpc: update kolibrios ftp server address, make files browser higher (#464)
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #464
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-04 08:38:46 +00:00
LeencyandBurer 1b83f4fc4c mousecfg: fix mouse clicks were not shown (#462)
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #462
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-02 11:56:29 +00:00
SweetbreadandBurer cd8cfe2630 refactor/links: update obsolote WebSVN links (fix #66, #67, ref #77) (#163)
Replaces obsolete links to the retired SVN / WebSVN infrastructure with their current Gitea equivalents across the repo, and refreshes the bundled application table.

Changes:
- `data/common/templates/table_apps(rus).csv` - WebSVN URLs &rarr; Gitea; dropped the dead /trunk path segment (flattened during the Git migration); unified the whole file to http:// (it is opened from within KolibriOS, whose network stack has no HTTPS); normalized forum/wiki columns and updated several app entries (descriptions, moved paths, new charsets).
- `kernel/**/asmxygen.py` - link_root now points to Gitea instead of WebSVN.
- Source & readme references - converted remaining `svn://kolibrios.org/…` and `svn:\…` pseudo-paths to Gitea URLs in `gif.asm`, `tinypad.asm`, `amon`/`gmon` readmes, and ktcc `http.h`/`conio.h`.
- `flappybird/README.md`, `ha/ReadMe.txt` - WebSVN &rarr; Gitea.

Out of scope:
- SVN keyword tags (`$Revision$`/`$Id$`, ~1000 files) and `kolibri-n.org` links — left for separate PRs.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #163
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Sweetbread <sweetbread@coders-squad.com>
Co-committed-by: Sweetbread <sweetbread@coders-squad.com>
2026-06-02 08:58:36 +00:00
LeencyandBurer 53e1345728 apps/app_plus: fix opening opendial, better warning window (#460)
## app_plus: fix calling opendial and rework floppy-mode warning window

- Fix: bump MEMSIZE 40K => 60K so the Open file dialog starts.
- UI: drop the fake dir-listing mockup for a single icon + clearer text; remove unused SCRX/SCRY/kolibrios_dirs.
- UI: reposition header/description/buttons to the new CONX/CONY layout.
- Text: rewrite RU+EN warning - explain floppy mode and how to mount /kolibrios.
- Review: fix CONY comment + English grammar.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #460
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-02 08:57:26 +00:00
LeencyandBurer 6e8c9103e0 apps/webview: update test.htm, various bugfixes and improvements (#459)
## WebView 3.97

- Fix: closing `</font>` pops `text_colors` by its own count, not `bg_colors` — no more dropping the default text color (`set_style.h`).
- Fix: `_cache::clear()` also resets `current_type` and `current_charset` (`cache.h`).
- Feature: `<li>` inside `<nav>` is rendered inline, separated by a single space (`set_style.h`).
- Cleanup: remove dead `src = …` assignments in View Source; `<font>` counting reads `src_orig` directly, behavior unchanged (`show_src.h`).
- Chore: bump version to `WebView 3.97` (`const.h`).
- Content: update test/home pages, add a hidden Easter-egg link to the test page (`res/test.htm`, `res/homepage_*.htm`).

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #459
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-06-01 16:59:57 +00:00
BurerandLeency 680b915efe apps/pixie: auto-download ac97snd backend if it is missing (#454)
If the ac97snd player fails to start, download it from builds.kolibrios.org
to /sys/media/ac97snd, wait for the downloader process to finish (polling
GetProcessSlot with a timeout), then retry. Notify the user if it still fails.

Depends on the downloader "URL|/save/path" support.

Co-authored-by: Burer <burer@kolibrios.org>

---------

Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-on: #454
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-06-01 10:12:27 +00:00
BurerandLeency ef96c855ed apps/dl: support explicit save path argument, change speed test URL (#453)
Add a "URL|/save/path" syntax so callers can download a file to a specific
destination instead of the default save dir (used by pixie to fetch the
ac97snd backend). With an explicit path, SaveFile overwrites it directly and
skips the auto-rename loop, which would otherwise recurse forever on a fixed
existing path.

Also point URL_SPEED_TEST (-test) at a working mirror.

Co-authored-by: Burer <burer@kolibrios.org>
---------

Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-on: #453
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2026-06-01 10:12:03 +00:00
Matou1306 779ea18d4e fs/ext2: support legacy Rev0 superblocks (#421)
Ext2 Rev0 superblocks lack dynamic fields.
Add fallback logic to check for EXT2_GOOD_OLD_REV and
manually populate in-memory inodeSize (128) and firstInode (11). 

Introduce standard EXT2_GOOD_OLD_* constants aligning with
Linux kernel approach for the same issue.

This aligns with [what the Linux Kernel does](https://github.com/torvalds/linux/blob/master/fs/ext2/super.c#L1036-L1039).

Reviewed-on: #421
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Mathieu Morcos <mathieubotros@gmail.com>
Co-committed-by: Mathieu Morcos <mathieubotros@gmail.com>
2026-05-30 05:07:19 +00:00
Leency f76cb1f9b6 sysmon: fix checkbox state while using Tab key (#448)
Press Tab. Now you'll see how checkbox state is changing.

Reviewed-on: #448
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-05-29 18:35:43 +00:00
Leency d70d88845a add floppy-bird to game centre (#449)
thanks to the reporter https://board.kolibrios.org/viewtopic.php?p=80442#p80442

Reviewed-on: #449
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-05-29 18:31:49 +00:00
Leency 23a502d761 dl: fix text overlap (#450)
fixed overlapping text "Save to:"

Reviewed-on: #450
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2026-05-29 18:14:36 +00:00
Egor00f 76b9c0b0d9 fix missed memccpy and memcpy (#443)
Perhaps this was forgotten. Otherwise, why would it be defined using `DLLAPI`?

These functions exist, but they're missing from `EXPORTS` and `libc.def`.

Reviewed-on: #443
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
Co-committed-by: Egor00f <y.yarin@inbox.ru>
2026-05-26 06:04:22 +00:00
Igor ShutrovandBurer 68f0454682 ftpd: Add RMD command (#353)
Added RMD command

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #353
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Co-committed-by: Igor Shutrov <kolibridev@inbox.ru>
2026-05-19 18:40:19 +00:00
Egor00fandBurer d486c6b33a libc.obj: update exit (#340)
## New functions:
+ implement `_exit`/`_Exit`.
+ implement `atexit`.
+ implement `abort`.
`abort` write `Aborted pid: %d` to debug board

## Changes:

### call `exit` after main.
Just calling `exit`

### `exit` write exit code
If exit code isn't 0 `exit` will write exit code to debug board.

### use `con_exit(0)`
use
```c
con_exit(0)
```
instead of
```c
con_exit(status);
```
[from console.obj readme](310999dcc4/programs/develop/libraries/console_coff/console_en.txt (L15)).
I think the console window shouldn't be so dependent on the exit code. It's must only always close or always stay on screen

### `exit` writing exit code to debug board
Since the exit code is not used anywhere right now, I think it's better to just show it on the debug board.

for auto rebuild `crt0.o` need #339

from #311

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #340
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
Co-committed-by: Egor00f <y.yarin@inbox.ru>
2026-05-19 10:30:46 +00:00
dunkaist 310999dcc4 fs/ext: Fix the return value of f70.1 (readdir)
Build system / Check kernel codestyle (pull_request) Successful in 23s
Build system / Build (pull_request) Successful in 9m37s
Return ERROR_END_OF_FILE instead of ERROR_SUCCESS when
less files were read than requested.
2026-05-17 19:45:29 +00:00
dunkaist bb769cbf85 xfs: Support (ignore) new feature flags
Build system / Check kernel codestyle (pull_request) Successful in 48s
Build system / Build (pull_request) Successful in 10m14s
Our XFS driver works in read-only mode. Therefore flags
that are related only to writing can be safely ignored.
2026-05-17 18:53:34 +00:00
nitinsoni4115andNitin4115 9b9f10b231 Fix #65: Replace WebSVN links with Gitea URLs in asmxygen.py (#393)
Updates the link_root variable to point to the new Gitea repository
instead of the old WebSVN links:
- Old: http://websvn.kolibrios.org/filedetails.php?repname=Kolibri+OS&path=/kernel/trunk
- New: https://git.kolibrios.org/KolibriOS/kolibrios/src/branch/main

Also updates the line anchor format to match Gitea's format:
- Old: #line-{line_number}
- New: #L{line_number}

---------

Co-authored-by: nitinsoni4115 <nitinsoni4115@gmail.com>
Reviewed-on: #393
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: nitinsoni4115 <nitinsoni2704@gmail.com>
Co-committed-by: nitinsoni4115 <nitinsoni2704@gmail.com>
2026-05-17 14:01:27 +00:00
Burer ca99b669f2 apps/cmm: update HTTPS proxy (#439)
- new proxy address
- fix proxy usage for `dl`
- fix buffers overflow
- optimize memory usage
- explicit notify error for `dl` when URL is HTTPS and proxy is not found
- cleanup some dead code to fit app in the same sectors size

Reviewed-on: #439
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
2026-05-17 11:53:45 +00:00
fac0425ac0 games/invaders: review graphical assets in code (fix #236) (#394)
- Remove the unused `gif_bullet2` file definition
- Remove the unused `gif_bullet2` `decodeimg` call
- Remove the unused `img_bullet2` memory allocation
- Fix `gif_menu4.size` to use `gif_menu4`
- Comment out the unused `img_alienpiece` allocation
- Preserve `img_bullet` from `bullet2.gif` for bullet rendering

---------

Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-by: nitinsoni4115 <nitinsoni4115@gmail.com>
Reviewed-on: #394
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: nitinsoni4115 <nitinsoni2704@gmail.com>
Co-committed-by: nitinsoni4115 <nitinsoni2704@gmail.com>
2026-05-16 08:37:35 +00:00
Egor00fandBurer 175bd31489 add autobuild of some tcc libs (#339)
Implement autobuild for(this libs in [`programs/develop/ktcc/bin/lib/`](https://git.kolibrios.org/KolibriOS/kolibrios/src/branch/main/programs/develop/ktcc/bin/lib)):
+ `crt0.o`
+ `libtcc1.a`
+ `tiny.o`
+ `libshell.a`
+ `libcryptal.a`
+ `libsound.a`

it autobuild for kolibrios image and programs build.

`link_tcc` automatically add this libs to `extra_inputs`

roots of this grow from #311

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #339
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Егор <y.yarin@inbox.ru>
Co-committed-by: Егор <y.yarin@inbox.ru>
2026-05-16 08:30:18 +00:00
Matou1306 e1a30a4f14 fs/ext: implement symlink support (#414)
Implement support for reading fast and slow symlinks to files and directories in the ext driver.

Add handling for nested symlinks and absolute/relative paths, with a max depth limit of 40.
Add `ERROR_TOO_MANY_LINKS = 40` to `fs_lfn.inc`.
Fix the driver to ignore multiple slashes in the path.

Reviewed-on: #414
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Co-authored-by: Matou <mathieubotros@gmail.com>
Co-committed-by: Matou <mathieubotros@gmail.com>
2026-05-15 19:21:30 +00:00
hidnplayr 8235572f7b RTL8169: enable gigabit and restart auto-negotiation on init (#440)
Fix bug in enabling gigabit and restart auto-negotiation setup for most RTL8169/RTL8168/RTL8111

Reviewed-on: #440
2026-05-15 17:03:16 +00:00
ianandIan Choi 641603693f extfs: report unsupported incompatible features (#368)
Report unsupported ext incompatible features to the system board before mount failure.

Changes:
- add ext incompat feature bit constants
- replace one-by-one checks with a loop over a feature table
- keep fallback logging for unknown incompat bits

---------

Co-authored-by: Ian Choi <workhard2464@gmail.com>
Reviewed-on: #368
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: ianjchoi8701 <ianjchoi8701@gmail.com>
Co-committed-by: ianjchoi8701 <ianjchoi8701@gmail.com>
2026-05-11 12:05:36 +00:00
nitinsoni4115andNitin4115 a016346e4e docs/readme.md: Add links to main KolibriOS website (Fix #201) (#396)
Adds prominent links to https://kolibrios.org in documentation:
- README.md: New 'Website' section with information about official site

These links help users find downloads, documentation, and more project information.

---------

Co-authored-by: nitinsoni4115 <nitinsoni4115@gmail.com>
Reviewed-on: #396
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: nitinsoni4115 <nitinsoni2704@gmail.com>
Co-committed-by: nitinsoni4115 <nitinsoni2704@gmail.com>
2026-05-11 06:05:20 +00:00
hrigarandBurer e7698cbfb6 libs/dll: add dll_LoadLibrary for single library loading (fix #281) (#370)
Resolves #281

This PR adds a new `dll_LoadLibrary` function to `dll.obj` that loads a single library by name or full path, auto-calls `lib_init`, and returns the export table pointer.

`dll_load` is refactored on top of `dll_LoadLibrary`.

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #370
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: hrigar <h4gar02@protonmail.com>
Co-committed-by: hrigar <h4gar02@protonmail.com>
2026-05-04 19:03:47 +00:00
27c1f44930 games/almaz: text translation, utf-8 for source code (fix #237) (#395)
- Proper translation to all system languages
- UTF-8 encoding for all source code files

---------

Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-by: nitinsoni4115 <nitinsoni4115@gmail.com>
Reviewed-on: #395
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: nitinsoni4115 <nitinsoni2704@gmail.com>
Co-committed-by: nitinsoni4115 <nitinsoni2704@gmail.com>
2026-04-26 11:31:24 +00:00
DIlkhush00andBurer 86c685ed4b apps/search: prevent file open when clicking blank search results area (fix #218) (#372)
Resolves #218

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #372
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Dilkhush Purohit <dilkhushpurohit01@gmail.com>
Co-committed-by: Dilkhush Purohit <dilkhushpurohit01@gmail.com>
2026-04-26 04:41:54 +00:00
ace-dent e05b57a95e develop/libraries: Post-SVN tidy (#436)
- Move source code from `trunk` into root directory for each library.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #436
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-25 09:20:05 +00:00
lex_coderandlex a0e4bce98a iconv: add UTF-16LE support (#351)
Co-authored-by: lex <Алексей Михайлов>
Reviewed-on: #351
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: Alexey Mikhailov <lex_coder@mail.ru>
Co-committed-by: Alexey Mikhailov <lex_coder@mail.ru>
2026-04-24 10:09:14 +00:00
ace-dent 2cda4a9682 libraries/box_lib: Post-SVN tidy (#433)
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards [#75](#75), point 3)

Reviewed-on: #433
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-23 11:50:10 +00:00
ace-dent f08fe1f2a0 programs/other: Post-SVN tidy (#434)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #434
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-22 06:33:49 +00:00
ace-dent f7a26ece7a kernel/sec_loader: Post-SVN tidy (#435)
- Move source code from `trunk` into root directory. Changes mirrored in old `branch` copies for parity.
- Checked build files and ASM include paths; no changes required.

(Work towards [#75](#75), point 3)

Reviewed-on: #435
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-21 15:45:54 +00:00
ace-dent f5735e54f4 programs/testing: Post-SVN tidy (#430)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards [#75](#75), point 3)

Reviewed-on: #430
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-20 16:30:09 +00:00
ace-dent 8a0329cee8 fs/kfar: Post-SVN tidy (#429)
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards [#75](#75), point 3)

Reviewed-on: #429
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-20 16:16:50 +00:00
ace-dentandBurer a4f3f3545a develop/ktcc: Post-SVN tidy (#425)
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- These changes also update the CI build files in `.gitea/workflows/`.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards [#75](#75), point 3)

---------

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #425
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-19 16:41:37 +00:00
jaskaran-singh-77 e0dc42d79b libs/kosfuncs: update KOSfuncs.inc constants (fix #323) (#374)
Added missing constants:

- SSF_SET_CF_ENC (30.4)
   SSF_GET_CF_ENC (30.5)
   SSF_RECT_BG(39.3)
- SSF_RENAME (70.10)
   SF_FILE_EXT (80 )

Removed obsolete constants:

 SF_MIDI (20) and subfunctions
- SSF_MPU_MIDI_BASE (21.1)
- SF_PORT_IN_OUT (43)
- Duplicate aliases for SF_BACKGROUND_GET

Resolves #323

Reviewed-on: #374
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: jaskaran-singh-77 <jassijatt951@gmail.com>
Co-committed-by: jaskaran-singh-77 <jassijatt951@gmail.com>
2026-04-19 09:44:20 +00:00
jaskaran-singh-77andBurer 096cca20cb apps/webview: make search engine configurable via app.ini, add setting to main menu (#420)
Changes:
- Added `search_engine` variable to `WebView.c`
- Modified `EventSeachWeb()` to use configurable search engine
- Added `LoadIniConfig( )` for `search_engine` in `settings.h`
- Updated `app.ini` with default **Wiby** and alternatives (**Bing**, **DuckDuckGo**)
- Added menu tab and hotkey for opening `app.ini`

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #420
Reviewed-by: Burer <burer@noreply.localhost>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: jaskaran-singh-77 <jassijatt951@gmail.com>
Co-committed-by: jaskaran-singh-77 <jassijatt951@gmail.com>
2026-04-18 09:13:39 +00:00
ace-dent db529bc1a8 develop/open_watcom: Post-SVN tidy (#426)
- Move source code from `trunk` into root directory.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards [#75](#75), point 3)

Reviewed-on: #426
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-18 08:31:17 +00:00
MaxandBurer 3e1c8e9ec8 games/max-freecell (replace freecell in IMG) (#398)
Freecell card game.
Put into IMG, as a replacement to current one, cause it have smaller binary size.

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #398
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Max <mad.max0@op.pl>
Co-committed-by: Max <mad.max0@op.pl>
2026-04-18 07:04:47 +00:00
Egor00f e94fb7d5ef move mv -f libc.a $(INSTALLDIR) to install target
Build system / Check kernel codestyle (pull_request) Successful in 49s
Build system / Build (pull_request) Successful in 10m39s
2026-04-17 17:14:26 +00:00
ace-dent bd548e0373 programs/fs: Post-SVN tidy (part 1) (#423)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #423
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-16 16:33:44 +00:00
ace-dent 6ad8a8b6cc programs/develop: Post-SVN tidy (part 2) (#422)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #422
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-16 12:18:20 +00:00
MaxandBurer 48626298ff games: add arkanoid (#375)
A simple clone of the L-breakout arkanoid game (tray and ball)

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #375
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Max <mad.max0@op.pl>
Co-committed-by: Max <mad.max0@op.pl>
2026-04-12 07:12:38 +00:00
ace-dent 5cbac1a231 outdated/mv: Post-SVN tidy
Build system / Check kernel codestyle (pull_request) Successful in 22s
Build system / Build (pull_request) Successful in 9m51s
- Update build files and ASM include paths.
2026-04-11 13:26:02 +01:00
ace-dent af62e17863 outdated/sysxtree: Post-SVN tidy
Build system / Check kernel codestyle (pull_request) Successful in 27s
Build system / Build (pull_request) Failing after 1m9s
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2026-04-11 13:16:41 +01:00
ace-dent f8255f0d77 outdated/sb: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2026-04-11 13:16:40 +01:00
ace-dent 826b43e9c2 outdated/rb: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2026-04-11 13:16:05 +01:00
ace-dent 1434d2fd98 outdated/param: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2026-04-11 13:16:04 +01:00
ace-dent 2a43081ba6 outdated/mv: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2026-04-11 13:16:03 +01:00
ace-dent 31cd7329df outdated/mhc: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Checked build files and ASM include paths.
2026-04-11 13:14:21 +01:00
ace-dent a9136a1684 outdated/kerpack: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Checked build files and ASM include paths.
2026-04-11 13:14:21 +01:00
ace-dent bb6d4072a1 outdated/iconedit: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2026-04-11 13:14:20 +01:00
ace-dent cb37ae10cb outdated/jpegview: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and checked ASM include paths.
2026-04-11 13:14:19 +01:00
ace-dent bdc12a2f00 outdated/gifview: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and checked ASM include paths.
2026-04-11 13:10:32 +01:00
ace-dent 430843a83f outdated/mixer: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2026-04-11 13:09:45 +01:00
ace-dent 96cc7e7af4 outdated/archer: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Checked ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2026-04-11 13:07:10 +01:00
ace-dent 54500c5100 outdated/clip: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2026-04-11 13:07:10 +01:00
ace-dent 4b1d291f17 outdated/bgitest: Post-SVN tidy
- Move source code from `trunk` into root directory.
- Update build files and ASM include paths.
2026-04-11 13:07:10 +01:00
ace-dent c0e0827513 outdated/mfar: Post-SVN tidy
- Move source code from `trunk` into root directory.
2026-04-11 13:07:10 +01:00
MaxandBurer 87adc0a1df games: add solitare(#362)
Simple Solitaire game written in FASM.
Bitmaps free license.

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #362
Co-authored-by: Max <mad.max0@op.pl>
Co-committed-by: Max <mad.max0@op.pl>
2026-04-11 12:04:30 +00:00
ace-dent 0cd3b0c5b1 programs/develop: Post-SVN tidy (part 1) (#419)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #419
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-11 10:25:59 +00:00
ace-dent 33acd57c58 programs/media: Post-SVN tidy (#417)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #417
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-11 09:21:42 +00:00
ace-dent d6a1b56b7f programs/demos: Post-SVN tidy (part 3) (#416)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #416
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-10 17:20:15 +00:00
ace-dent 7bcb400040 programs/system: Post-SVN tidy (part 3) (#413)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #413
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-10 16:30:22 +00:00
ace-dent 398dcbb13d programs/demos: Post-SVN tidy (part 2) (#412)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #412
Reviewed-by: Ivan B <dunkaist@gmail.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-10 07:12:30 +00:00
ace-dent 9ca506ed15 programs/system: Post-SVN tidy (part 2) (#410)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #410
Reviewed-by: Ivan B <dunkaist@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-09 18:57:52 +00:00
ace-dent 31880f3ebe programs/demos: Post-SVN tidy (part 1) (#409)
- Move source code from `trunk` into root directory for each program.
- Update build files and ASM include paths. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #409
Reviewed-by: Ivan B <dunkaist@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-09 18:12:49 +00:00
ace-dent 27a26b669f Fix CR line endings
Build system / Check kernel codestyle (pull_request) Successful in 1m29s
Build system / Build (pull_request) Successful in 11m48s
- White space clean up only: replace `CR` with `LF` line-endings. Ensures correct git diff processing.
2026-04-09 12:39:20 +01:00
ace-dent 3c1e533f95 programs/system: Post-SVN tidy (part 1) (#408)
- Move source code from `trunk` into program root directory.
- Fix build and ASM files. Add SPDX license header where appropriate.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #408
Reviewed-by: Ivan B <dunkaist@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2026-04-09 08:40:14 +00:00
dunkaist f7a3e34289 Fix build of ps2mouse4d driver
The previous commit removed the trunk directory, fix Tupfile.lua too.
2026-04-09 06:07:03 +00:00
Matou1306 a591b2b25a added -std=c99 flag for compilations since it was throwing errors due to newer gcc versions 2026-04-06 06:57:08 +00:00
ace-dent c948b48eb2 drivers/ps2mouse4d: Post-SVN tidy
Build system / Check kernel codestyle (pull_request) Successful in 1m37s
Build system / Build (pull_request) Successful in 11m54s
- Move source code from `trunk` into program root directory.
- Update build files and ASM include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2026-04-02 16:37:02 +00:00
TensorCraft 0b4562bac4 net: fix mutex leak in ipv4_connect
Build system / Check kernel codestyle (pull_request) Successful in 1m42s
Build system / Build (pull_request) Successful in 12m27s
2026-03-31 10:41:12 -07:00
sebastianting de6724017d fix: iconv to/from unpacking order and calling convention (#126) (#127)
Build system / Check kernel codestyle (pull_request) Successful in 1m32s
Build system / Build (pull_request) Successful in 11m41s
swapped unpacking order of to and from and caller parameters
     removed null terminator adding at end
     changed call from stdcall to cdecl
2026-03-31 08:11:44 +00:00
jaskaran-singh-77andBurer f305d3425d apps/webview: fix last character in line being cropped (fix #263) (#386)
the break position was calculated as

br = draw_w - draw_x + (left_gap / list.font_w);

adding left_gap/font_w was making br too large,
so lines were allowed to go past the drawable area
and the last character got clipped.

changed to:
br = draw_w - draw_x;
br /= list.font_w;

just the remaining pixels divided by char width,
no left_gap needed here

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #386
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: jaskaran-singh-77 <jassijatt951@gmail.com>
Co-committed-by: jaskaran-singh-77 <jassijatt951@gmail.com>
2026-03-29 11:50:29 +00:00
Marouane-DjabriandBurer b5981a39dc apps/webview: added search / go buttons, added text analysis for the entered text in the omni box (fix #111) (#377)
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #377
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: dash-dash-force <nm_djabri@esi.dz>
Co-committed-by: dash-dash-force <nm_djabri@esi.dz>
2026-03-29 09:33:09 +00:00
Matou1306 e9e9ebb4c8 Implemented wrapper for @open (#344)
Fixed #336

Implemented a wrapper for placing the path to a file in quotes.
This corrects the problem of handling paths containing spaces in C programs such as `DGEN`,
 since the space is the argument delimiter.

The wrapper should have the name `<app>_open`. Wrapper trims the `_open` postfix and launches the `<app>`.

Reviewed-on: #344
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Matou <mathieubotros@gmail.com>
Co-committed-by: Matou <mathieubotros@gmail.com>
2026-03-23 14:34:07 +00:00
YVishereandAditya Yellapuntula Venkata 4c359e42ce loaddrv: Updated error message on invalid args passed (#364)
Added a usage line and changed the wording slightly to be more clear in the expected arguments.

Co-authored-by: Aditya Yellapuntula Venkata <aditya.yellapuntulavenkata@doosan.com>
Reviewed-on: #364
Reviewed-by: Burer <burer@noreply.localhost>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Aditya Yellapuntula Venkata <adityayv802@gmail.com>
Co-committed-by: Aditya Yellapuntula Venkata <adityayv802@gmail.com>
2026-03-14 16:49:33 +00:00
jaskaran-singh-77 3238f9f485 apps/cedit: use numeric version instead of date (fix #329) (#361)
Replace hardcoded date "CEdit (11-jan-2026)" with version "CEdit 1.0"

Add separate VERSION and APPNAME constants for better maintainability

Fixes issue [#329](#329)

Reviewed-on: #361
Reviewed-by: Burer <burer@noreply.localhost>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: jaskaran-singh-77 <jassijatt951@gmail.com>
Co-committed-by: jaskaran-singh-77 <jassijatt951@gmail.com>
2026-03-14 10:46:08 +00:00
Igor Shutrov 289eabf8a4 cedit: add Shift+Tab shortcut (#318)
Add Shift+Tab shortcut to decrease indentation

Reviewed-on: #318
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Co-committed-by: Igor Shutrov <kolibridev@inbox.ru>
2026-03-12 13:47:42 +00:00
Burerandrgimad e818e2167f apps/reshare: rewrite to fasm (#305)
- Rewritten to FASM (rgimad);
- Refactored code;
- Tweaked UX/UI;
- Fit program RAM usage into 1 MB (#make_8mb_great_again):
  https://wiki.kolibrios.org/wiki/SystemRequirements;
- Fit program window with default skin into 800x600;
- Use proper prefixes for debug messages.

Reviewed-on: #305
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-By: rgimad <rgimad@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2026-03-11 20:59:35 +03:00
Igor Shutrov 42c205be32 heed: Add exit by ESC (#345)
Reviewed-on: #345
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Co-committed-by: Igor Shutrov <kolibridev@inbox.ru>
2026-03-11 12:21:47 +00:00
hrigar 0253ec8753 Rename icons16.png to icons18.png and update all refs (#350)
Fixed #349.

Reviewed-on: #350
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: hrigar <h4gar02@protonmail.com>
Co-committed-by: hrigar <h4gar02@protonmail.com>
2026-03-11 13:12:31 +03:00
Egor00f 91dc4d8cad libc.obj: Added strtok_r (#341)
Reviewed-on: #341
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Egor00f <y.yarin@inbox.ru>
Co-committed-by: Egor00f <y.yarin@inbox.ru>
2026-03-08 00:36:53 +03:00
mxlgv 6f2a947deb Remove broken unused and unfinished apps and libs
Build system / Check kernel codestyle (pull_request) Successful in 26s
Build system / Build (pull_request) Successful in 26m1s
- TEAtool: A useless utility for encryption with the TEA algorithm,
  written for fun by me during my school years;
- GameHack: not a working prototype of a program like Cheat Engine;
- microtar: port of a portable library with a reduced functionality
  for working with TAR in C that is not used

Signed-off-by: Max Logaev <maxlogaev@proton.me>
2026-03-07 20:19:00 +00:00
735b86c476 piano: refactoring and improvement (#302)
- Refactored source code;
- Added Spanish translation;
- Updated UX / UI;
- Updated keyboard layout (fix #25);
- Added keymap configuration via separate binary file.

Reviewed-on: #302
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Burer <burer@kolibrios.org>
Co-authored-by: Doczom <mixa.frolov2003@gmail.com>
Co-authored-by: qullarwee <unknown@domain.local>
Co-committed-by: Burer <burer@kolibrios.org>
2026-03-07 23:13:08 +03:00
hrigar cc1034d849 fb2reader: add to oberon07 build system (#343)
Part of issue #328

Reviewed-on: #343
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: hrigar <h4gar02@protonmail.com>
Co-committed-by: hrigar <h4gar02@protonmail.com>
2026-02-26 20:55:58 +00:00
Burer 06c1497624 system/docs: update docs and SF constants to match actual kernel (#306)
- Update sysfuncs.txt and sysfuncr.txt to match actual kernel code:
  - Add missing SF's info
  - Add missing constants
  - Fix some mistakes
- Update KOSfuncs.inc to match actual kernel code:
  - Remove obsolete constants
  - Add missing constants
  - Rename some constants to match their names in docs

Reviewed-on: #306
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2026-02-26 17:25:16 +00:00
hrigar b52da3e1c3 koldbg: use shared KOSfuncs definitions
Build system / Build (pull_request) Successful in 16m53s
Build system / Check kernel codestyle (pull_request) Successful in 43s
Signed-off-by: hrigar <h4gar02@protonmail.com>
2026-02-25 01:05:45 +05:30
Igor Shutrov f9425f5bd0 ftpd: Add help command
Build system / Check kernel codestyle (pull_request) Successful in 1m17s
Build system / Build (pull_request) Successful in 9m58s
2026-02-23 21:18:26 +00:00
mxlgv 864210679c oberon07: Option -nochk a by default
Build system / Check kernel codestyle (pull_request) Successful in 1m5s
Build system / Build (pull_request) Successful in 16m40s
This option disables runtime checks to reduce binary file size.

Signed-off-by: Max Logaev <maxlogaev@proton.me>
2026-02-21 19:22:11 +00:00
mxlgv 7f8e028ffd ci/cd: Added checkout of submodules
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2026-02-21 19:22:11 +00:00
mxlgv e9b6cf3fc9 cedit: Added to build system
Fixed installation of oberon07 compiler in ISO image

Signed-off-by: Max Logaev <maxlogaev@proton.me>
2026-02-21 19:22:11 +00:00
mxlgv 4658a928d4 oberon07: Added as a git submodule
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2026-02-21 19:22:11 +00:00
mxlgv b6a5171cd9 oberon07: Source code removed
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2026-02-21 19:22:11 +00:00
Igor Shutrov 668fd4deeb ftpd: add ip to first message
Build system / Check kernel codestyle (pull_request) Successful in 21s
Build system / Build (pull_request) Successful in 16m30s
2026-02-17 22:08:04 +05:00
mxlgv dd9a7b92d8 libc.obj: Fixed build skip with TCC build enabled
Build system / Check kernel codestyle (pull_request) Successful in 1m19s
Build system / Build (pull_request) Successful in 16m42s
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2026-01-28 17:22:54 +03:00
Igor ShutrovandIgor Shutrov 1173ca7b26 Cedit: Improve search panel (#313)
Улучшения для Cedit в Панели поиска:
- Добавлен поиск следующего фрагмента текста по нажатию Enter
- Добавлен обратный переход по полям ввода в Панели поиска по Shift-Tab

Co-authored-by: Igor Shutrov <igor@shutrov.ru>
Reviewed-on: #313
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Co-committed-by: Igor Shutrov <kolibridev@inbox.ru>
2026-01-18 16:28:46 +00:00
mxlgv ccd0c183ec mtdbg: Backtrace implemented (#315)
Added support for backtrace/stacktrace output.
This is useful for high-level languages ​​like C and Oberon07.
If a debug file is provided, searches for the nearest debug symbol.

Reviewed-on: #315
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@noreply.localhost>
2026-01-18 13:08:02 +00:00
mxlgv f065cc6e69 mtdbg: Fixed magic cmd flags
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2026-01-11 13:35:58 +00:00
Egor00f f1b99bad84 libc.obj: Added missing strpbrk() to EXPORTS (#310)
Reviewed-on: #310
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Егор <velikiydolbayeb@gmail.com>
Co-committed-by: Егор <velikiydolbayeb@gmail.com>
2026-01-10 23:27:51 +00:00
c580d4ac5b ftpd: Add XPWD and XCWD commands (#309)
Добавлены команды XPWD и XCWD, дублирующие PWD и CWD

Co-authored-by: Igor Shutrov <igor@shutrov.ru>
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #309
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: igorsh <kolibridev@inbox.ru>
Co-committed-by: igorsh <kolibridev@inbox.ru>
2026-01-08 17:03:23 +00:00
Igor Shutrov 17c33521c3 ftpd: Fix typo 2026-01-07 19:41:28 +00:00
Igor Shutrov f6395c9501 ftpd: Fix typo 2026-01-07 19:41:28 +00:00
Igor Shutrov 000288ce8b ftpd: Fix RETR for small and empty files
Build system / Check kernel codestyle (pull_request) Successful in 1m5s
Build system / Build (pull_request) Successful in 15m59s
2026-01-06 18:20:39 +00:00
IgorA 10d9e9f36f Info3ds: added resizing of the window with the figure (#241)
info3ds: added resizing of the window with the figure
and the list of vertices in the properties window,

info3ds, info3ds_u: files with menu icons are embedded into the program

Reviewed-on: #241
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-12-31 07:34:00 +00:00
Burer f4c4a7e29a apps/floppybird: rewrite to c (#284)
What was done:
- [x] Rewritten to C
- [x] Refactored some code
- [x] Fixed window resizing (#182)
- [x] Adaptation for different skin height
- [x] Fixed some tubes leftovers drawing
- [x] Changed tubes generation a little bit
- [x] Changed interface a little bit
- [x] Added Escape key for exit to main menu
- [x] Removed buttons from main menu (hotkeys left) :(

What needs to be done:
- [ ] ~~Fix rolled-up bug?~~
- [ ] ~~Fit it into 2048 bytes?~~
- [ ] ~~Add pause?~~
- [ ] ~~Use buffer for drawing without flickering?~~

P.S. There is no way game with all this changes will fit in 2560 bytes, as previous version, so I decided to skip them.

Reviewed-on: #284
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-12-29 06:34:23 +00:00
Igor Shutrov bc5b2f884a Remove redundant space before 220 code 2025-12-29 06:32:40 +00:00
manh-td d0de275ab3 Use 64 bit for times in mpeg4_encode_gop_header() 2025-12-20 11:01:45 +00:00
manh-td a83f6f7e4b Fix DoS due to lack of eof check 2025-12-20 11:00:16 +00:00
manh-td d54c802297 Fixes out of array access 2025-12-20 10:59:41 +00:00
manh-td 29c42738b8 Add missing check for av_malloc
Build system / Check kernel codestyle (pull_request) Successful in 2m14s
Build system / Build (pull_request) Successful in 16m47s
2025-12-20 10:37:35 +00:00
Egor00f c17d1a57a3 Correcting typos in C_Layer libini (#289)
Change `int_get_color` to `int_get_shortcut` to `ini_get_color` and `ini_get_shortcut` to fix library initialization.

Reviewed-on: #289
Reviewed-by: Gleb Zaharov <risdeveau@codrs.ru>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Егор <egor00f@noreply.localhost>
Co-committed-by: Егор <egor00f@noreply.localhost>
2025-12-14 10:02:43 +00:00
Burer 7b0867a6cf [apps/cmm] add new proxy for https sources (#277)
Deployed new https proxy for WebView and Downloader.
Made it configurable through /sys/settings/app.ini.

Reviewed-on: #277
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-10-17 11:04:08 +02:00
iyzsongand宋文武 c65da0d96f programs: Add Uxn emulator (#272)
To build this, a zig compiler (tested: 0.14.1) is needed, run `zig build --release=fast`.
It will download https://github.com/chmod222/zuxn when building.

Co-authored-by: 宋文武 <iyzsong@member.fsf.org>
Reviewed-on: #272
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: iyzsong <iyzsong@envs.net>
Co-committed-by: iyzsong <iyzsong@envs.net>
2025-10-13 11:52:24 +02:00
Talkashie a0c01e204e Webview: Fix many typos with the English translation (#282)
- Fixes a few spelling mistakes and rewords things to sound more natural.
- Reworded to sound more natural in English.
- Fixes many typos on the English homepage of WebView.

Reviewed-on: #282
Reviewed-by: Gleb Zaharov <risdeveau@codrs.ru>
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Talkashie <talkashie97@gmail.com>
Co-committed-by: Talkashie <talkashie97@gmail.com>
2025-10-08 00:12:15 +02:00
ace-dent d50642ce1f general: Fix brand name to КолибриОС (#280)
- Ensure consistent brand name`КолибриОС`; update Docs and source code. Fixes #6.
- Minimal whitespace clean-up; remove some trailing space from end of lines.

Reviewed-on: #280
Reviewed-by: Burer <burer@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2025-09-25 16:39:01 +02:00
Doczom 8d235ce49b Libraries: fixed a bug in lib_init functions (#274)
added verification of the second initialization attempt

Reviewed-on: #274
2025-08-02 18:00:18 +02:00
IgorA e423bfb2d1 CtrlDemo: code cleaning, library import optimization (#242)
CtrlDemo, EditboxEx, TooltipDemo:
- code cleaning, library import optimization

Reviewed-on: #242
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-07-14 08:49:18 +02:00
IgorA 1483ec8462 Libraries (box_lib, buf2d, libimg, tinygl): optimize function import (#231)
Libraries (box_lib, buf2d, libimg, tinygl): optimize function import

Programs updated:
- gears, test3, test_glu1, test_glu2,
- test_array1, textures0, textures1, textures2,
- ctrldemo, editbox_ex, crypt_files, img_transform,
- scrshoot, t_edit, cnc_control, cnc_editor

Reviewed-on: #231
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-07-14 08:20:32 +02:00
DoczomandBurer e8121c66f8 drivers/usb: add usbother driver and usbdrv.dat config (#253)
This driver loading usb drivers for class and for vendor and product id device.

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #253
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@noreply.localhost>
2025-07-12 03:31:44 +02:00
Doczom 6aff7b8c02 Kernel: Fixed bug in iso9660
Build system / Check kernel codestyle (pull_request) Successful in 1m33s
Build system / Build (pull_request) Successful in 7m3s
Fixed a bug of outputting erroneous file names in iso9660 (not juliet)
2025-06-23 12:54:22 +02:00
Doczom e0d724286f Kernel: Fixed magic numbers and constants in iso9660 2025-06-23 12:54:22 +02:00
ace-dent 03dcc2051f FASM: Remove SVN tagged versions (#268)
- Delete SVN tagged versions `1.68` and `1.71`. We do not need to retain historic FASM versions in KolibriOS source code.

(Work towards #75, point 1)

Reviewed-on: #268
Reviewed-by: Burer <burer@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2025-06-23 09:08:41 +02:00
ace-dent 03111f5e99 programs: Optimize GIFs (Pt 2) (#238)
Lossless optimization of GIF image files.
Processed with `gifsicle -O3`(extreme) or `gifsicle --no-loopcount --no-comments` (when only minimal adjustment is permitted).
LZW stream optimized with `flexigif -p -f -a=1`. Methods selected to ensure optimal compression with final KPACK step, since better LZW may reduce LZMA used in bundling programs; evaluated with: `xz --format=lzma --check=none --lzma1=mode=normal,dict=64KiB,nice=273,lc=3,lp=0,pb=2 -k -c in.gif > out.lzma`
QA with [GIF Inspector](https://movableink.github.io/gif-inspector/) and via code review.

📦 Program graphics (compiled or included with software):
- Slimmed `demos/free3d04 `, saved 1489 bytes, ~4%.
- Slimmed `media/midamp/` 3 files, saving 131 bytes, average ~4%.
- Slimmed `testing/cpuid/trunk/cyrix.gif`, saved 25 bytes, ~3%.

📖 Documentation only artwork (distributed outside a program):
- Slimmed `Beat/Beat.gif`, saved 29 bytes, ~0.5%.

🥀 Old vestigial images, no longer used (pending deletion):
- Slimmed `demos/3detx60b/` 2 files, saving 762 bytes, average ~5%.

Reviewed-on: #238
Reviewed-by: Burer <burer@noreply.localhost>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2025-06-18 07:04:52 +02:00
ace-dent 4cc716458a programs/games: Optimize GIFs (#235)
Lossless optimization of GIF image files.
Processed with `gifsicle -O3`(extreme) or `gifsicle --no-loopcount` (when only minimal adjustment is permitted).
LZW stream optimized with `flexigif -p -f -a=1`. Methods selected to ensure optimal compression with final KPACK step, since better LZW may reduce LZMA used in bundling programs, using: `xz --format=lzma --check=none --lzma1=mode=normal,dict=64KiB,nice=273,lc=3,lp=0,pb=2 -k -c in.gif > out.lzma`
QA with [GIF Inspector](https://movableink.github.io/gif-inspector/) and via code review.

📦 Program graphics (compiled or included with software):
- Slimmed `almaz/aniall.gif`, saving 380 bytes, ~9%.
- Slimmed `invaders/` 21 files, saving 1232 bytes, average ~3%.
- Slimmed `megamaze/orientg2.gif`, saving 986 bytes, ~31%.
- Slimmed `phenix/objects.gif`, saving 24 bytes, ~2%.

🥀 Old vestigial images, no longer used:
- Deleted `almaz/explode1.gif`, 4865 bytes.

Reviewed-on: #235
Reviewed-by: Burer <burer@noreply.localhost>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2025-06-17 23:54:40 +02:00
keXa aef0b3a6a7 Return four space indents in kermel Makefile
Build system / Check kernel codestyle (pull_request) Successful in 1m31s
Build system / Build (pull_request) Successful in 12m22s
2025-06-13 18:19:10 +02:00
keXa 6181afd33d Updated kernel Makefile
Build system / Check kernel codestyle (pull_request) Successful in 1m40s
Build system / Build (pull_request) Successful in 11m51s
TBH it worked even without this but okay.
2025-06-13 18:04:59 +02:00
keXa c112873dbd Fixed kernel's Makefile by removing bootbios target
Build system / Check kernel codestyle (pull_request) Successful in 1m7s
Build system / Build (pull_request) Successful in 12m30s
2025-06-13 12:32:32 +02:00
ace-dent a7ada1c586 kernel: Remove SVN tags (#247)
Build system / Check kernel codestyle (pull_request) Successful in 1m49s
Build system / Build (pull_request) Successful in 10m10s
- Delete directories (and files) for SVN tags, as these are captured by Git tags: https://git.kolibrios.org/KolibriOS/kolibrios/tags.

(Work towards #75, point 1)

Reviewed-on: #247
Reviewed-by: Burer <burer@noreply.localhost>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2025-06-12 20:00:14 +02:00
b00bl1k 11562988b1 Fix ftpc crash 2025-06-12 19:31:16 +02:00
b00bl1k 2dfb3ddff3 Implement serial reconf
Build system / Check kernel codestyle (pull_request) Successful in 26s
Build system / Build (pull_request) Successful in 4m31s
2025-05-22 21:26:05 +05:00
ace-dent 7e63294b5e Post-SVN clean up (#244)
- Move source code from `trunk` into program root directory.
- Fix build and ASM files.
- Translated a few RU comments to en_US.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.

(Work towards #75, point 3)

Reviewed-on: #244
Reviewed-by: Gleb Zaharov <risdeveau@codrs.ru>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Andrew <dent.ace@gmail.com>
Co-committed-by: Andrew <dent.ace@gmail.com>
2025-05-20 17:36:10 +02:00
BurerandSarveshwaar SS c148987224 Libs/http: Added all delim chars from RFC 3986 (#233)
Original PR: https://github.com/KolibriOS/kolibrios/pull/34
Original issue: https://github.com/KolibriOS/kolibrios/issues/33

Co-authored-by: Sarveshwaar SS <94345639+Saru2003@users.noreply.github.com>

Reviewed-on: https://git.kolibrios.org/KolibriOS/kolibrios/pulls/233
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Reviewed-by: IgorA <igora@noreply.localhost>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-05-17 19:11:15 +02:00
mxlgv 4550e15838 Magnify: Moved to programs/system
Build system / Check kernel codestyle (pull_request) Successful in 29s
Build system / Build (pull_request) Successful in 8m45s
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2025-05-14 21:58:44 +03:00
BurerandLeency cc867a0bb8 Magnify: Added visual grid. Changed magnify calc and display logic
- Fully refactored codestyle;
- Changed magnify calculations and display logic,
  now it is similar to Pipet;
- Added proper copyrights;
- Localization to all system languages;
- Removed redundant .bat files;
- Added visual grid (Leency).

Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2025-05-14 21:58:24 +03:00
Leency 16a0ef9543 WebView 3.91 (#230)
- fix crash at the end of the page https://menuetos.net/docs.htm;
- improve position of the line under text (and related code)
  for a various font sizes;
- handle params width= and size= of <hr>;
- update acid_0.1.htm page.

Reviewed-on: #230
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-05-05 19:04:52 +02:00
Doczom 51b150c9aa Kernel: Fixed bug #221 - accept does not fill sockaddr 2025-05-05 18:14:22 +02:00
IgorA c18da5afae TinyGL: Added gluDisk. Fixed args in gluCylinder and gluSphere (#223)
TinyGL:
- Fixed setting of `GL_FRONT_AND_BACK` mode;
- Fixed setting of `GL_SPOT_DIRECTION` angle;
- Optimization of drawing triangles and lines;
- Input parameters are adjusted to the OpenGL standard
  in `gluCylinder` and `gluSphere` functions;
- Added `gluDisk` function (the gluDisk function draws
  a disk-shaped quadric figure);
- Optimize function `calc_buf`.

Flag:
- Added lighting.

info3ds, info3ds_u, test_glu0, test_glu1, test_glu2,
textures0, textures1, textures2:
- Updated programs using `gluCylinder` and `gluSphere`.

Reviewed-on: #223
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-05-04 20:00:04 +02:00
dunkaist cd1c2ce969 Fix docpack shortcut for sysfuncs in text editors
Build system / Check kernel codestyle (pull_request) Successful in 28s
Build system / Build (pull_request) Successful in 6m54s
Docpack app has several help files included. Tinypad and CEdit run the
app to show one of sysfuncs.txt/sysfuncr.txt files. The text editors
pass a one-letter argument to specify the text file. It used to be 'f'
for sysfuncs, it has become 'e' recently. Update this one-letter
argument both in tinypad and cedit.

Resolve #216
2025-04-30 01:50:46 +01:00
IgorA d7795a8961 Flag: demo program rewritten from C to FASM (#219)
Original source: http://ftp.kolibrios.org/arch/libraries/TinyGL/examples/flag_src.7z

Reviewed-on: #219
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-04-22 15:11:55 +02:00
Burer b948491fb3 Calc+: Fix list buttons UI (#220)
- Fixed list buttons wrong position and size;
- Fixed list buttons logic not working.

Reviewed-on: #220
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-04-22 15:01:29 +02:00
IgorA 03cfdeb50f TinyGL: Bug fixes. info3ds, info3ds_u, vox_tgl: Related changes (#210)
TinyGL:
- The `depth` parameter in the `glClearDepth` function is now `qword` instead of `dword`.
- Fixed bug with z-buffer (the edges were cut off incorrectly, the coordinates in it were from 0 to 1, but should be from -1 to 1)
- Optimized array functions: `glDrawArrays`, `glDrawElements`

info3ds, info3ds_u, vox_tgl:
- Removed unnecessary operations after fixing a bug with the z-buffer.

Reviewed-on: #210
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-04-15 14:40:41 +02:00
LeencyandBurer e4cd8a4d74 Calc+ v1.0 (#189)
Build system / Check kernel codestyle (pull_request) Successful in 26s
Build system / Build (pull_request) Successful in 7m1s
- Bigger fonts
- System colors
- Code refactoring to make UI flexible and more readable
- Move from ISO to IMG
- Add to main menu, add to desktop instead of Calc, remove from App+
- Localization to all system languages
- Source code file is now UTF-8

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #189
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Co-committed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
2025-04-14 19:46:57 +02:00
IgorA 75b6663ce0 Ftpc: Update (#185)
- fix for bugs with buffers 'remote_list_buf', 'buf_buffer2';
- fix stack leak when navigating files;
- change sorting of folders and files, clean code;
- added option to show|hide log;
- icons are taken from @reshare;
- added icons to the 'disconnect' and 'search' buttons.

Reviewed-on: #185
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-04-10 18:47:13 +02:00
Burer df0c5d8f48 Сharsets: Updated to 0.4.2 (#196)
30.03.2025 - 0.4.0
- Localization for all system languages
- Display all character scales
- Abolity to copy character codes
- Block on charpage 00 for CP866
- New character code half markers
- Navigation using keys (see hotkeys.txt)

03.04.2025 - 0.4.1
- Fixed bug with codes color subscription

04.04.2025 - 0.4.2
- Fixed bug with resetting UTF charpage to zero on double charset swap to CP866
- Improved charpage blocking for CP866 UX
- Improved char codes copying UI

Reviewed-on: #196
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-04-10 16:24:11 +02:00
Leency fcb9f49785 flood-it: Fixed buttons position (#193)
Reviewed-on: #193
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-04-03 12:32:18 +02:00
Leency d6c44c6570 WebView 3.9
Build system / Check kernel codestyle (pull_request) Successful in 31s
Build system / Build (pull_request) Successful in 6m27s
- new homepages
- fix clash on a wrong <kosicon> number
- set proper internal page sizes
2025-04-03 10:50:04 +02:00
mxlgv b8a1487bab Fixed menu.dat (ru_RU) after moving the period app
Build system / Check kernel codestyle (pull_request) Successful in 22s
Build system / Build (pull_request) Successful in 6m24s
Signed-off-by: Max Logaev <maxlogaev@proton.me>
2025-04-03 11:29:55 +03:00
Leency 00c2cfbcfc Period: Moved from IMG to ISO
Build system / Check kernel codestyle (pull_request) Successful in 32s
Build system / Build (pull_request) Successful in 6m27s
2025-04-03 10:00:33 +02:00
Leency c398a2bbf4 Unz: Fixed bug #27 (#190)
Reviewed-on: #190
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-04-03 09:39:02 +02:00
IgorA 58cf25fe43 menuetlibc: Fixed ef_exp.s (#177)
Fix for a similar problem: https://git.kolibrios.org/KolibriOS/kolibrios/commit/12a6b7f2

Reviewed-on: #177
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-04-02 21:34:04 +02:00
Leency 8da45bab3e Eolite 5.32: Search fix (#191)
- LMB to open file, RMB to show in folder
- fix: correctly open folders
- fix UI: better list alignment
- Eolite: optimize OpenDir
- SelectList_ProcessMouse() better react on click

Reviewed-on: #191
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-04-02 21:26:12 +02:00
IgorA 5abc319817 Boxlib: the tree_list can use large fonts, fix line number error
Build system / Check kernel codestyle (pull_request) Successful in 28s
Build system / Build (pull_request) Successful in 5m25s
2025-04-01 21:58:38 +02:00
Leency ff625706c0 Eolite 5.31: (#187)
- fix: editbox edit text
- fix: remove unnecessary editbox form delete popin
- add: "Copy path" menu item
- add: "Search" to a burger menu

Reviewed-on: #187
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Reviewed-by: rgimad <rgimad@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-03-31 22:40:54 +02:00
Leency 81dafb3025 Floot-It v3.0 (#181)
- adopt window size to screen size
- bigger fonts
- proper colored 'S' and 'L' buttons
- fix issue: after won the game clicks count always increased to max
- code refactoring, translate comments to English
- help updated

Reviewed-on: #181
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-03-31 08:15:28 +02:00
IgorAandmxlgv 58e2d0b844 Blocks: Added 2 models and 5 types of blocks (#180)
- Added 2 models (bird and castle);
- Added 5 types of blocks;
- Added block.asm to autobuild.

Co-authored-by: Max Logaev <maxlogaev@proton.me>
Reviewed-on: #180
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: IgorA <aie85playm@gmail.com>
Co-committed-by: IgorA <aie85playm@gmail.com>
2025-03-30 16:42:51 +02:00
IgorA 7720e38868 NNP: removed dependency on libc library, clean code
Build system / Check kernel codestyle (pull_request) Successful in 37s
Build system / Build (pull_request) Successful in 7m22s
2025-03-28 20:01:18 +01:00
Leencyandmxlgv 02b2395ef1 Eolite 5.30: Added file search (#175)
Co-authored-by: Max Logaev <maxlogaev@proton.me>
Reviewed-on: #175
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-03-28 19:48:39 +01:00
Bureranddunkaist 293e1d195a Docs/welcome.htm: Fixed #168, language style updates (#171)
Compressed with kpack and added to IMG (en_US only).

Co-authored-by: Ivan Baravy <dunkaist@gmail.com>
Reviewed-on: #171
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-03-22 16:09:06 +01:00
Leency 5cf6c3baf9 Mine game v0.62 (#172)
- proper window rolling up fix;
- bigger cells and fonts;
- add icon to a new game button;
- better alignment of ui elements in header.

Reviewed-on: #172
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-03-22 09:40:04 +01:00
mxlgv 8376fed87d CI/CD: Use kpack64 instead of kpack
Build system / Check kernel codestyle (pull_request) Successful in 30s
Build system / Build (pull_request) Successful in 5m46s
Version of the kpack utility from
`programs/other/kpack/kerpack_linux/kpack64.asm`
compresses files better than `programs/other/kpack/linux/kpack.asm`

Signed-off-by: Max Logaev <maxlogaev@proton.me>
2025-03-22 09:00:14 +01:00
mxlgvandBurer 22d572f789 Docs: Added README and contributing guide (#124)
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #124
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: rgimad <rgimad@noreply.localhost>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Reviewed-by: Sweetbread <risdeveau@codrs.ru>
2025-03-21 21:08:44 +01:00
BurerandLeency af41fe4aa7 Pipet: Fixed wrong window colors on some skins and optimized size (#162)
- Fixed wrong window colors on some skins;
- Size optimization;
- Added template macro for quickly creating `struct` with specific fields.

Co-authored-by: leency <lipatov.kiril@gmail.com>
Reviewed-on: #162
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: Burer <burer@kolibrios.org>
Co-committed-by: Burer <burer@kolibrios.org>
2025-03-20 00:18:26 +01:00
IgorA b1a1691b84 Libimg: fixed a bug when rotating images smaller than 2 pixels
Build system / Build (pull_request) Successful in 5m17s
Build system / Check kernel codestyle (pull_request) Successful in 31s
2025-03-19 11:37:12 +02:00
Leency 92f9d76f14 welcome.htm and related stuff (fix #20)
Build system / Check kernel codestyle (pull_request) Successful in 33s
Build system / Build (pull_request) Successful in 6m43s
- welcome.htm (ENG) uploaded
- signs.png uploaded and added to ISO
- rotate Kolibri in all icons to look forward
2025-03-18 16:21:01 +01:00
dunkaist 32466e31f4 programs/shell: Show new fields of the sf18.13 struct
Build system / Check kernel codestyle (pull_request) Successful in 41s
Build system / Build (pull_request) Successful in 6m3s
Kfetch command now reports
 - kernel ABI,
 - git hash (aka commit id),
 - release offset,
 - debug tag.

No svn revision anymore.
2025-03-17 23:22:45 +01:00
IgorA 63cd6f0ac8 Movback: Added support window resizing
Build system / Check kernel codestyle (pull_request) Successful in 26s
Build system / Build (pull_request) Successful in 5m6s
2025-03-17 22:31:37 +01:00
IgorA 4fcc17675c Movback: Deleted trunk dir. Files moved 2025-03-17 22:31:37 +01:00
Leency 4e903ce12b kiv: show image bpp in win header
Build system / Check kernel codestyle (pull_request) Successful in 34s
Build system / Build (pull_request) Successful in 6m20s
2025-03-17 22:24:04 +01:00
IgorA bfdb42c91f Tube: fix crash at some window sizes, remove outdated code with palette
Build system / Build (pull_request) Successful in 5m48s
Build system / Check kernel codestyle (pull_request) Successful in 30s
2025-03-17 22:07:11 +02:00
dunkaist 55d641b0da kernel: Clean up svn-related code and data
Build system / Check kernel codestyle (pull_request) Successful in 40s
Build system / Build (pull_request) Successful in 6m9s
* Rearrange sf18.13 version structure to
  + mention git hash and release offset,
  + separate OS release and kernel ABI numbers,
  + include an optional debug tag.
* Update the boot log and the blue screen to print the new fields.
* Update docs.
* No breaking changes.

Resolves #99.
2025-03-17 20:07:46 +01:00
Sweetbread 0e7cff0715 ci: setup environment variables
Build system / Check kernel codestyle (pull_request) Successful in 28s
Build system / Build (pull_request) Successful in 6m28s
ref: #146
Toolchain container was updated and fasm now in /home/autobuild/...
folder
2025-03-17 19:10:23 +01:00
Leency 4d30fd7a2b Eolite 5.29: Fixed bug in "Apply to all files?" dialog
Build system / Check kernel codestyle (pull_request) Successful in 47s
Build system / Build (pull_request) Successful in 5m43s
- line height can no longer be smaller than icon size;
- fixed bug with edit box activation under "Apply to all files?" dialog;
- updated dates;
- fixed kfont initialization.
2025-03-17 18:22:15 +03:00
Leency 292bd1d739 webview 3.85: fix a specific case when col width was calculated wrong
Build system / Check kernel codestyle (pull_request) Successful in 27s
Build system / Build (pull_request) Successful in 5m16s
2025-03-17 11:50:17 +01:00
Leency 1a756358f5 webview 3.84
- tagicon support
- draw_buf => BufIsInvalid() add check
2025-03-17 11:50:17 +01:00
Leency 009c0d0519 webview-3.83
- fixed collection.h that caused webview crash
- fix rolled-up bug
- add special symbol from builds.kolibrios.org/status.html
2025-03-17 11:50:17 +01:00
IgorA bab6267412 Boxlib: fix write null pointer in editbox
Build system / Check kernel codestyle (pull_request) Successful in 35s
Build system / Build (pull_request) Successful in 7m45s
2025-03-17 10:55:32 +01:00
Leency 72196f42de Palitra(branch): UI and code refactoring. Fix a lot of issues (#154)
- Fixed the ID of the buttons, made the window always on top;
- Removed the visible rectangle when clicking on the palette;
- Fixed the position of the picker and palette buttons.

Reviewed-on: #154
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-03-17 10:54:19 +01:00
IgorA f1e958af41 Firework: fix and optimize window resizing
Build system / Check kernel codestyle (pull_request) Successful in 1m19s
Build system / Build (pull_request) Successful in 16m28s
2025-03-17 01:09:45 +03:00
rgimad 78de535233 Apps/dbgboard: fix critical bug with stack overflow
Build system / Check kernel codestyle (pull_request) Successful in 34s
Build system / Build (pull_request) Successful in 7m0s
2025-03-16 19:50:12 +01:00
BurerandLeency e353771faa Pipet: Rewrite from C-- to FASM
Build system / Check kernel codestyle (pull_request) Successful in 25s
Build system / Build (pull_request) Successful in 4m52s
- Rewritten from C-- to FASM
- Function to select not a single pixel, but a 7*7 rect from screen;
- Function to select each pixel from selected rect;
- Updated UX/UI.

Co-authored-by: leency <lipatov.kiril@gmail.com>
2025-03-16 13:17:33 +02:00
Leency 714cc0a65c cmm menu: fix marker
Build system / Check kernel codestyle (pull_request) Successful in 23s
Build system / Build (pull_request) Successful in 5m0s
2025-03-15 23:28:13 +01:00
IgorA 9357a21169 Plasma: Fix code style and added support for window resizing
Build system / Check kernel codestyle (pull_request) Successful in 23s
Build system / Build (pull_request) Successful in 5m0s
2025-03-15 23:02:16 +01:00
IgorA 75e732a437 Apps/plasma: Deleted trunk dir. Files moved 2025-03-15 23:02:16 +01:00
IgorA afd07534ab Apps/fire: Improved code style and readability 2025-03-15 22:31:23 +01:00
IgorA 20aba254bc Apps/firework: Added support for window resizing
Build system / Check kernel codestyle (pull_request) Successful in 32s
Build system / Build (pull_request) Successful in 5m36s
2025-03-15 22:35:09 +02:00
IgorA fbd99c82a4 Apps/firework: Improved code style and readability 2025-03-15 19:48:49 +02:00
Leency 784b02b4a4 3dcube: get rid of unnecessary files, refined build.bat and tupfile
Build system / Check kernel codestyle (pull_request) Successful in 32s
Build system / Build (pull_request) Successful in 5m36s
2025-03-15 14:54:46 +01:00
rgimadandBurer 7a2e48bed2 Flip the bird in kfetch command (#144)
Co-authored-by:  Burer <taldariner@gmail.com>
Reviewed-on: #144
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: rgimad <33692565+rgimad@users.noreply.github.com>
Co-committed-by: rgimad <33692565+rgimad@users.noreply.github.com>
2025-03-14 23:44:53 +01:00
IgorA 31ca1c76bb Apps/unvwater: Added support for window resizing
Build system / Check kernel codestyle (pull_request) Successful in 30s
Build system / Build (pull_request) Successful in 5m29s
2025-03-15 00:56:49 +03:00
IgorA 99ddd88ff8 Apps/unvwater: Improved code style and readability 2025-03-14 22:41:51 +01:00
Leency 4f1a8ef9a1 kf_font_viewer gets to be a part of syspanel
Build system / Check kernel codestyle (pull_request) Successful in 21s
Build system / Build (pull_request) Successful in 5m28s
Syspanel gets bigger in less than 1 sector and we still have kf viewer in the IMG
2025-03-14 21:31:22 +01:00
Leency 93f12c7673 allow applications to work nicely without .kf files
Build system / Check kernel codestyle (pull_request) Successful in 37s
Build system / Build (pull_request) Successful in 7m45s
2025-03-14 21:10:49 +01:00
Burer 3eb02af5fd [Other/Data] Optimized all .png images in repo using optipng -o7
Build system / Check kernel codestyle (pull_request) Successful in 44s
Build system / Build (pull_request) Successful in 7m12s
2025-03-14 20:46:32 +01:00
rgimad 83d8146ad1 Apps/dbgboard: fix comments
Build system / Check kernel codestyle (pull_request) Successful in 29s
Build system / Build (pull_request) Successful in 5m10s
2025-03-13 21:31:10 +03:00
rgimad 1974f45c50 Apps/dbgboard: add display modes and more highlighting
Build system / Check kernel codestyle (pull_request) Successful in 34s
Build system / Build (pull_request) Successful in 5m17s
2025-03-13 17:24:09 +03:00
Leency 36ce6f0b74 Eolite 5.28
Build system / Check kernel codestyle (pull_request) Successful in 40s
Build system / Build (pull_request) Successful in 5m34s
- deny renaming folder '..'
- 'show status bar' option removed
- add option 'bold font'
- Quark view changed to HEX View
2025-03-12 12:27:18 +01:00
IgorA 4701a15222 Apps/tube: Added support for window resizing
Build system / Check kernel codestyle (pull_request) Successful in 34s
Build system / Build (pull_request) Successful in 5m29s
2025-03-12 12:08:40 +03:00
IgorAandmxlgv 61277f8822 Apps/tube: Improved code style and readability
Build system / Check kernel codestyle (pull_request) Successful in 45s
Build system / Build (pull_request) Successful in 5m34s
- Magic numbers are replaced with constants;
- Added copyrights and source to the original;
- Removed unnecessary *.bat files.

Co-authored-by: Max Logaev <maxlogaev@proton.me>
2025-03-12 11:03:37 +03:00
IgorA abb7442055 Apps/tube: Deleted trunk dir. Files moved
The trunk directory is no longer required. This is a rudiment of SVN
2025-03-12 02:50:40 +03:00
LeencyandMax Logaev <maxlogaev@proton.me 81b15607dc Apps/barcfg: Added bars_8b.raw
Build system / Check kernel codestyle (pull_request) Successful in 45s
Build system / Build (pull_request) Successful in 5m41s
Co-authored-by: Max Logaev <maxlogaev@proton.me
2025-03-10 23:11:33 +01:00
LeencyandMax Logaev <maxlogaev@proton.me 30d8d45326 Data: Move kf_font_viewer to ISO
- Added testcon2_eng to IMG;
- use_mb was removed from IMG because it was not used.

Co-authored-by: Max Logaev <maxlogaev@proton.me
2025-03-10 23:11:33 +01:00
LeencyandMax Logaev <maxlogaev@proton.me 9a23c001e1 Data: Added hotkeys for change sound volume and mute/unmute sound
- Added Ctrl + Alt + Left / Right - change sound volume;
- Added Ctrl + Alt + Up / Down - mute and unmute sound;
- Corrected description.

Co-authored-by: Max Logaev <maxlogaev@proton.me
2025-03-10 23:11:33 +01:00
Leency 64b7372624 Apps/eolite: Version 5.27
Build system / Check kernel codestyle (pull_request) Successful in 31s
Build system / Build (pull_request) Successful in 4m53s
- Choose first file on ctrl selection.
- Set static position for maximized window:
  https://github.com/KolibriOS/kolibrios/issues/9
2025-03-10 22:28:44 +01:00
Sweetbread d04420295a CI: Add hash for toolchain
Build system / Check kernel codestyle (pull_request) Successful in 28s
Build system / Build (pull_request) Successful in 5m5s
2025-03-10 21:31:00 +01:00
Sweetbread 2935b29fd8 CI: Cache 2025-03-10 21:31:00 +01:00
mxlgv 505f741fbd CI/CD: Used kolibri-toolchain and fuse. Added es_ES build
- Used  tup with fuse to speed up build;
- Used kolibri-toolchain to speed up the build, that is,
  do not waste time installing dependencies;
- Added build of the Spanish version (es_ES).

Signed-off-by: Max Logaev <maxlogaev@proton.me>
2025-03-10 21:31:00 +01:00
Leency 5a852ebdfb Apps/webview: Version 3.82. Fixed text rendering, speedup (#130)
Build system / Check kernel codestyle (push) Successful in 28s
Build system / Build (push) Successful in 8m2s
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-committed-by: leency <lipatov.kiril@gmail.com>
2025-03-10 20:28:52 +01:00
rgimadandrgimad 026d2aba40 Libs/console_coff: Translate comments to English and convert to UTF-8 (#128)
Build system / Check kernel codestyle (push) Successful in 50s
Build system / Build (push) Successful in 11m28s
Translated remaining non-English comments to English and convert to UTF-8

Co-authored-by: rgimad <33692565+rgimad@users.noreply.github.com>
Reviewed-on: #128
Reviewed-by: Max Logaev <mxlgv@noreply.localhost>
Co-authored-by: rgimad <rgimad@noreply.localhost>
Co-committed-by: rgimad <rgimad@noreply.localhost>
2025-03-10 20:04:26 +01:00
Taldariner 9b08b20cc3 Charsets Checker 0.3.2
Build system / Check kernel codestyle (push) Successful in 29s
Build system / Build (push) Successful in 8m26s
- Renamed to Charsets Viewer/Charsets
- Fixed rolled-up bug
- Tweaked UI a little bit
- Renamed files in autobuild
- Moved charsets to programs/develop
- Added credits in charsets.asm
- Moved charsets dev history to separate file
2025-03-07 23:25:15 +03:00
Leency 38fdd13e0c Added charset_checker app to IMG instead of asciivju and keyascii 2025-03-07 23:25:14 +03:00
rgimadandrgimad d9679f5f81 Add new debug board - dbgboard based on console.obj (#119)
Main advantages:
- Bigger font
- Scrolling (like in other console apps)
- K : and L: messages highligting

Also, like the old board it writes log to /tmp0/1/boardlog.txt (or you can pass another path in args), can view it on F2

Co-authored-by: rgimad <33692565+rgimad@users.noreply.github.com>
Reviewed-on: #119
Reviewed-by: Max Logaev <maxlogaev@proton.me>
Co-authored-by: rgimad <rgimad@noreply.localhost>
Co-committed-by: rgimad <rgimad@noreply.localhost>
2025-03-07 23:24:48 +03:00
mxlgv 92ea2a97eb Data: Dino has been moved to the TCC category.
Build system / Check kernel codestyle (push) Successful in 32s
Build system / Build (push) Successful in 9m9s
Signed-off-by: Maxim Logaev <maxlogaev@proton.me>
2025-03-07 10:48:09 +01:00
IgorA 98cccc438c Apps/aclock: Rewrite from nasm to fasm
Build system / Check kernel codestyle (push) Successful in 31s
Build system / Build (push) Successful in 9m41s
2025-03-07 01:10:44 +01:00
IgorA 79d9f42085 Apps/genfiles: Rewrite from nasm to fasm 2025-03-07 01:10:44 +01:00
IgorA b39150ecea Apps/lod: Rewrite from nasm to fasm 2025-03-07 01:10:44 +01:00
IgorA 1a40899780 Apps/FillScr: Rewrite from nasm to fasm 2025-03-07 01:10:44 +01:00
IgorA 25b79ca6d1 Apps/Timer: Rewrite from nasm to fasm 2025-03-07 01:10:44 +01:00
IgorA 2e3548d92a Apps/tinfo: Rewrite from nasm to fasm 2025-03-07 01:10:44 +01:00
rgimad ed8e4ecf33 Apps/mstate: Rewrite from nasm to fasm 2025-03-07 01:10:44 +01:00
IgorA 6a9608c7a4 Apps/C4: Rewrite from nasm to fasm 2025-03-07 01:10:44 +01:00
mxlgv d8c6274d19 Libs/iconv: Fixed convert BEL and UKR i/I to CP866
Build system / Check kernel codestyle (push) Successful in 33s
Build system / Build (push) Has been cancelled
Signed-off-by: Maxim Logaev <maxlogaev@proton.me>
2025-03-07 01:05:42 +01:00
Leency 1df7b2fd4c Apps/webview: Version 3.8. Fixed <p>, new h3 style
Build system / Check kernel codestyle (push) Successful in 29s
Build system / Build (push) Has been cancelled
- `cmm/lib/collection.h`: fixed memory leak, more safe, optimizations;
- webview: mostly fix <p>, new h3 style, some other updates.

Reviewed-on: #115
2025-03-07 03:00:49 +03:00
mxlgv 9001dbc1b4 CI/CD: Added CI, without MSVC (en_US and ru_RU)
Build system / Check kernel codestyle (push) Successful in 1m51s
Build system / Build (push) Successful in 11m51s
- Added `install_kgcc` script;
- Added `checker.pl` script to check the kernel codestyle;
- Added build of en_US and ru_RU versions of images.
Known problem: projects that require the proprietary MSVC compiler are
not built.

Signed-off-by: Maxim Logaev <maxlogaev@proton.me>
2025-03-04 20:09:10 +01:00
mxlgv c11c7922bd Libs/mbedtls: Use strip instead of kos32-strip
`kos32-strip`` contains a bug:
When trying to strip a large object file builded by `clink`,
a segfault occurs. This bug is not reproduced on the newer `strip`.

Signed-off-by: Maxim Logaev <maxlogaev@proton.me>
2025-03-04 20:09:10 +01:00
Sweetbread 739facfeca CI/CD: Init building workflow 2025-03-04 20:09:10 +01:00
Leency 8c9a971e2c Libs/cmm: Fixed return type for GetProcessInfo() 2025-03-02 12:10:08 +01:00
Leency 5aa17d5823 Apps/webview: Fixed parse tag param and use Bing search
- Fixed parse case of tag param like "attr = value";
- Use the default Bing search as it only supports HTTP.
2025-03-02 12:10:08 +01:00
Leency 4d6ef342e1 Apps/webview: Fixed issue #100 2025-03-02 12:10:08 +01:00
Leency 8e5b315fd4 Apps: Fix webview and downloader issue #22
- Fix #22 in both webview and downloader;
- Get rid of app mode in webview;
- Fix update link for webview.
2025-03-02 12:10:08 +01:00
6684 changed files with 1091543 additions and 1193210 deletions

No files matched your search

+54
View File
@@ -0,0 +1,54 @@
# =============================================================================
# Apps
# User-facing applications, games, multimedia, UI and desktop resources
# =============================================================================
^programs/(cmm|demos|emulator|games|media|other)/.* @KolibriOS/apps
^contrib/(games|media|other)/.* @KolibriOS/apps
^skins/.* @KolibriOS/apps
# =============================================================================
# System
# Kernel, drivers, filesystems, SDK, libraries, toolchain and system utilities
# =============================================================================
^kernel/.* @KolibriOS/system
^drivers/.* @KolibriOS/system
^programs/(bcc32|develop|fs|hd_load|system|testing)/.* @KolibriOS/system
^contrib/(C_Layer|sdk|toolchain)/.* @KolibriOS/system
# Shared system/API includes in programs/
^programs/[^/]+\\.inc$ @KolibriOS/system
# =============================================================================
# Network
# Network stack, network drivers, protocols, libraries and network applications
# =============================================================================
^kernel/trunk/network/.* @KolibriOS/network
^drivers/ethernet/.* @KolibriOS/network
^drivers/(mii|netdrv)\\.inc$ @KolibriOS/network
^programs/network/.* @KolibriOS/network
^programs/network\\.inc$ @KolibriOS/network
^programs/develop/libraries/(http|network|kos_mbedtls)/.* @KolibriOS/network
^contrib/network/.* @KolibriOS/network
# =============================================================================
# DevOps
# CI/CD, repository infrastructure, build system and autobuild configuration
# =============================================================================
^\\.gitea/.* @KolibriOS/devops
^_tools/.* @KolibriOS/devops
^\\.gitmodules$ @KolibriOS/devops
^build\\.txt$ @KolibriOS/devops
^tup\\.config\\.template$ @KolibriOS/devops
+56
View File
@@ -0,0 +1,56 @@
---
- 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
# per-program binaries browsable at <version>/<lang>/data/, like on the old builds server
- name: Creating build tree folders
ansible.builtin.file:
path: "{{ storage_path }}/{{ version }}/{{ item | basename | regex_replace('\\.tar\\.gz$', '') }}/data"
state: directory
owner: "{{ storage_user }}"
group: "{{ storage_user }}"
mode: '0755'
with_fileglob: "{{ tree_artifact_path }}/*.tar.gz"
- name: Unpacking build trees
ansible.builtin.unarchive:
src: "{{ item }}"
dest: "{{ storage_path }}/{{ version }}/{{ item | basename | regex_replace('\\.tar\\.gz$', '') }}/data"
owner: "{{ storage_user }}"
group: "{{ storage_user }}"
with_fileglob: "{{ tree_artifact_path }}/*.tar.gz"
# stable URL for the newest build: <storage_path>/latest/<lang>/...
- name: Updating latest symlink
ansible.builtin.file:
src: "{{ version }}"
dest: "{{ storage_path }}/latest"
state: link
force: true
owner: "{{ storage_user }}"
group: "{{ storage_user }}"
# emulators hardcode <site root>/<lang>/data/data/kolibri.img; storage_path is the ci folder, one level under the site root
- name: Sending bare images to stable emulator paths
ansible.builtin.copy:
src: "{{ stable_artifact_path }}/"
dest: "{{ storage_path }}/../"
mode: preserve
+119
View File
@@ -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()
+101
View File
@@ -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())))
+349
View File
@@ -0,0 +1,349 @@
# SPDX-License-Identifier: GPL-2.0-only
# 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:
push:
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:
# 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
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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
- name: Restore toolchain
id: cache-toolchain
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: |
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/develop/cmm/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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 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: |
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=1" >> ${{ 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; keep the tup log for publishing
- name: Build KolibriOS
run: |
set -o pipefail
export PATH=/home/autobuild/tools/win32/bin:$PATH
source kos32-export-env-vars ${{ gitea.workspace }}
tup build-${{ matrix.lang }} 2>&1 | tee build.log
# stamp the cache with its commit so later builds diff against it
- name: Record cache base commit
run: echo "${{ gitea.sha }}" > .tup/build-commit
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ARTIFACTS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# version string (tag + commit count + sha) for the artifact names
- name: Get describe
id: vars
run: echo "descr=$(git describe --tags)" >> $GITEA_OUTPUT
# stage build outputs under their final names, plus distribution kit and checksums
- name: Prepare artifacts
run: |
set -e
BASE="kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}"
for ext in img iso raw; do
cp "build-${{ matrix.lang }}/data/kolibri.$ext" "$BASE.$ext"
done
# zip: distr targets Windows/DOS users, Explorer opens it natively
(cd "build-${{ matrix.lang }}/data" && zip -r -9 -q "${{ gitea.workspace }}/$BASE.distr.zip" distribution_kit)
# whole build tree for per-program downloads; the big images ship separately
tar -C "build-${{ matrix.lang }}" \
--exclude './data/kolibri.iso' \
--exclude './data/kolibri.raw' \
--exclude './data/distribution_kit' \
-czf "$BASE.tree.tar.gz" .
sha256sum "$BASE".img "$BASE".iso "$BASE".raw "$BASE".distr.zip > "$BASE.sha256sums.txt"
mv build.log "$BASE.build.log"
# publish the images; longer retention for the floppy image
- name: Upload floppy image
uses: actions/upload-artifact@v3
with:
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.img
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.img
retention-days: 90
- name: Upload CD image
uses: actions/upload-artifact@v3
with:
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.iso
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.iso
retention-days: 30
- name: Upload raw image
uses: actions/upload-artifact@v3
with:
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.raw
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.raw
retention-days: 15
- name: Upload distribution kit
uses: actions/upload-artifact@v3
with:
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.distr.zip
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.distr.zip
retention-days: 30
- name: Upload checksums
uses: actions/upload-artifact@v3
with:
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.sha256sums.txt
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.sha256sums.txt
retention-days: 90
- name: Upload build log
uses: actions/upload-artifact@v3
with:
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.build.log
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.build.log
retention-days: 90
- name: Upload build tree
uses: actions/upload-artifact@v3
with:
name: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.tree.tar.gz
path: kolibrios-${{ steps.vars.outputs.descr }}-${{ matrix.lang }}.tree.tar.gz
retention-days: 15
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: |
set -eu
rm -rf ./norm-artifacts ./stable-artifacts ./tree-artifacts
mkdir -p ./norm-artifacts ./stable-artifacts ./tree-artifacts
find ./artifacts -type f -name 'kolibrios-*' | while read -r file; do
fname="$(basename "$file")" # kolibrios-<descr>-<lang>.<suffix>
case "$fname" in
*.tree.tar.gz) stem="${fname%.tree.tar.gz}";;
*.distr.zip) stem="${fname%.distr.zip}";;
*.sha256sums.txt) stem="${fname%.sha256sums.txt}";;
*.build.log) stem="${fname%.build.log}";;
*.img) stem="${fname%.img}";;
*.iso) stem="${fname%.iso}";;
*.raw) stem="${fname%.raw}";;
*) continue;;
esac
lang="${stem##*-}" # <lang> has no dashes, <descr> may
mkdir -p "./norm-artifacts/$lang"
case "$fname" in
*.tree.tar.gz)
# unpacked on the server into <version>/<lang>/data/ for per-program downloads
cp "$file" "./tree-artifacts/$lang.tar.gz";;
*.sha256sums.txt)
cp "$file" "./norm-artifacts/$lang/sha256sums.txt";;
*.build.log)
cp "$file" "./norm-artifacts/$lang/build.log";;
*.img)
cp "$file" "./norm-artifacts/$lang/$fname"
# emulators (e.g. v86) hardcode <lang>/data/data/kolibri.img at the site root
mkdir -p "./stable-artifacts/$lang/data/data"
cp "$file" "./stable-artifacts/$lang/data/data/kolibri.img";;
*)
cp "$file" "./norm-artifacts/$lang/$fname";;
esac
done
# derive the version (git describe) from an artifact name: kolibrios-<descr>-<lang>.iso -> <descr>
sample="$(find ./norm-artifacts -type f -name 'kolibrios-*.iso' | head -n1)"
base="$(basename "${sample%.*}")" # kolibrios-<descr>-<lang>
version="${base%-*}" # kolibrios-<descr>
version="${version#kolibrios-}" # <descr>
echo "version=$version" >> $GITEA_OUTPUT
find ./norm-artifacts ./stable-artifacts ./tree-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" \
-e "stable_artifact_path=${{ gitea.workspace }}/stable-artifacts" \
-e "tree_artifact_path=${{ gitea.workspace }}/tree-artifacts" \
-v
+37
View File
@@ -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 {} +
+210
View File
@@ -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/develop/cmm/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
+88
View File
@@ -0,0 +1,88 @@
# 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: cmm_apps
path: programs/cmm
- name: kterm
path: programs/other/kterm
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Bump ${{ matrix.name }} and open PR
env:
TOKEN: ${{ secrets.GITEA_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 "chore/submodules: bump $NAME 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\":\"chore/submodules: bump ${NAME} 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
+6
View File
@@ -9,3 +9,9 @@ ehthumbs_vista.db
._*
programs/cmm/cmm.code-workspace
programs/cmm/menu/.gitignore
.tup/
/build-*/
/*.config
+16
View File
@@ -0,0 +1,16 @@
[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://git.kolibrios.org/KolibriOS/oberon-07-compiler.git
branch = master
[submodule "programs/cmm"]
path = programs/cmm
url = https://git.kolibrios.org/KolibriOS/cmm_apps.git
branch = main
[submodule "programs/other/kterm"]
path = programs/other/kterm
url = https://git.kolibrios.org/b00bl1k/kterm.git
branch = master
+77
View File
@@ -0,0 +1,77 @@
# Contributing guide
## Type of contributing
There are two main types of contributions accepted to the main KolibriOS repository:
- Submitting issues about problems in the project
- Submitting code to the project via pull requests
Both these types are described in detail below.
## Issues
You can help us by submitting issues about problems found in the system. Currently, there are two main ways of submitting an issue in the project: **Bug Reports** and **Feature Requests**:
- Bug Reports are suitable if you find a **bug** (crash, error, unexpected behavior) in some part of the system (kernel, drivers, apps, etc.) and want to report it
- Feature Requests are used, when you want to propose some **improvement** to the system (missing features, improved user experience, etc.)
## Pull requests
You can also help us by submitting code via pull requests. The process of submitting a pull request consists of the following steps:
1. Find what you want to implement or improve
2. Make a fork of kolibrios (or other needed) repository
3. Create a branch with a name that matches your changes
4. Implement and test the changes
5. Create commits according to the [accepted style](#commit-style)
6. Create and submit a pull request into `main` branch
7. Wait for CI/CD pipelines and code review to pass
When a pull request is submitted, at least two project participants must conduct a code review, after which the proposed changes need to be corrected (if requested) and merged into the project.
## Commit style
### Message pattern
The commit message should look like this:
```test
Commit message header
Commit message body, if needed
```
- Commit message header and body should reflect changes made in commit
- Commit message body should be separated from the header by one empty line
### Length
Maximum number of characters in a commit header is **72** (standard for **Git**). Also, **72** is the maximum length of a line in a commit body.
### Multiple authors
If you are making a commit together with another developer, you need to add:
```
Co-authored-by: ANOTHER-NAME <ANOTHER-NAME@EXAMPLE.COM>
```
to the end commit message body on a new line.
If you used AI tools while preparing the commit, you are encouraged to include an Assisted-by tag:
```
Assisted-by: AGENT_NAME:MODEL_VERSION
```
### Merge commits
> [!WARNING]
> Merge commits are **prohibited** in the project
Use **rebase** to keep your branch up to date.
## Conclusion
We hope this small instructions will help you to get familiar with KolibriOS contribution rules and inspire you to participate in the life of our project.
+338
View File
@@ -0,0 +1,338 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) 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
this service 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 make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. 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.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
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
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the 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 a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE 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.
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
convey 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 2 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 <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision 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, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Moe Ghoul>, 1 April 1989
Moe Ghoul, President of Vice
This 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.
+26
View File
@@ -0,0 +1,26 @@
# KolibriOS
[![License](https://img.shields.io/badge/License-GPL%202.0-green)](./COPYING.TXT)
[![Build system](https://git.kolibrios.org/KolibriOS/kolibrios/actions/workflows/build.yaml/badge.svg)](https://git.kolibrios.org/KolibriOS/kolibrios/actions)
KolibriOS is a hobby operating system for x86-compatible computers, which is currently being developed by a small but passionate team of enthusiasts.
Its kernel, most drivers, and many programs are written entirely in [FASM](https://flatassembler.net/) assembly language, making them very compact and lean on system resources.
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.
Detailed instructions for the contribution process can be found in the [contributing guide](./CONTRIBUTING.md).
Common list of tasks, issues and enhancement proposals can be found on [this page](https://git.kolibrios.org/KolibriOS/kolibrios/issues).
## Special thanks
The KolibriOS team expresses special thanks to the author of the 32-bit **MenuetOS**, [Ville Turjanmaa](https://www.menuetos.net/contact.htm). We also want to note that all **MenuetOS** copyrights have been preserved.
+7 -4
View File
@@ -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'
+2 -2
View File
@@ -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'
+153 -152
View File
@@ -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;
}
}
}
+3
View File
@@ -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")
+229
View File
@@ -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
+55
View File
@@ -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` - захват мыши.
+785
View File
@@ -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:
+41
View File
@@ -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) не переполняли её на больших окнах/полноэкранном режиме.
+39
View File
@@ -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`.
+1 -1
View File
@@ -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 --
+4 -1
View File
@@ -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);
+2 -1
View File
@@ -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)
{
+15 -5
View File
@@ -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--)
{
+5 -4
View File
@@ -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);
}
-37
View File
@@ -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);
}
+8
View File
@@ -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)
+3 -6
View File
@@ -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)
+2
View File
@@ -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
+4
View File
@@ -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
+138
View File
@@ -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)
}
}
+6 -1
View File
@@ -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 */
+129
View File
@@ -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"
+32 -18
View File
@@ -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);
File diff suppressed because it is too large. Load diff
+7 -1
View File
@@ -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);
+2
View File
@@ -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
File diff suppressed because it is too large. Load diff
+22 -1
View File
@@ -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:
+4 -2
View File
@@ -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;
};
+41 -4
View File
@@ -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;
+114
View File
@@ -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);
}
+12
View File
@@ -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;
+2
View File
@@ -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);
+10
View File
@@ -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
-674
View File
@@ -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>.
-64
View File
@@ -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.
-23
View File
@@ -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
+9
View File
@@ -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;
}
+1
View File
@@ -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);
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+47 -82
View File
@@ -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
+29
View File
@@ -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")"
+64
View File
@@ -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 ==="
+46
View File
@@ -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 ==="
+21
View File
@@ -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);
^
+357
View File
@@ -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]
}
^
+83
View File
@@ -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;
}
+32
View File
@@ -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"
+46
View File
@@ -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]);
}
+1
View File
@@ -0,0 +1 @@
/* stub: MuPDF PDF-only port needs no harfbuzz shaping */
+1
View File
@@ -0,0 +1 @@
/* stub: MuPDF PDF-only port needs no harfbuzz shaping */
Binary file not shown.
-29
View File
@@ -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
-6
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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
-90
View File
@@ -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 6684 files, more files were not shown because too many files have changed in this diff. Show more