tcp_input: on RST+ACK in SYN_SENT, unlock the socket mutex before
tcp_drop and leave through .drop_no_socket. tcp_drop frees the socket
and locks that mutex itself, so the network thread hung on it.
Assisted-by: Claude:claude-opus-5
Reviewed-on: #622
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Kiril Lipatov <lipatov.kiril@gmail.com>
- the TX reclaim loop in int_handler multiplied sizeof.txfd by itself (mul eax) instead of by last_tx, so it looked 1024 bytes past tx_ring and never freed a descriptor
- it also left txfd.status set, and transmit treats a non-zero status as busy, so once the 16-entry ring wrapped every send ended in "TX overrun": DHCP fell back to link-local, ping showed "Socket error", while the link still read as connected
- reclaim only descriptors the device completed (TXFD_STATUS_C) and zero their status; transmit now checks for an unreclaimed buffer (virt_addr)
Seen on an EtherExpress Pro/100 in a Pentium II. Reproduced in QEMU (-cpu pentium2, i82557b): ping stopped at the 12th reply every time; with the fix it runs indefinitely, also under a UDP flood.
Reviewed-on: #725
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Summary: an optical drive on an AHCI port was detected and then ignored,
so CD/DVD only worked with the controller switched to IDE mode. It now
shows up as /srN and ISO9660 discs are readable, including disc changes.
Details:
- ahci_atapi_cmd sends a SCSI command through the ATA PACKET command
(A bit in the command header, CDB in acmd, DMA when IDENTIFY PACKET
word 49 allows it, DMADIR when word 62 requires it). Built on top of it:
TEST UNIT READY, REQUEST SENSE, READ CAPACITY(10), READ(10), READ TOC
(start of the last session for multisession discs) and START STOP UNIT
for DISKFUNC.LoadTray.
- Drives are registered as sr0, sr1, ... with DISK_NO_INSERT_NOTIFICATION,
2048-byte sectors and read-only media; iso9660 mounts them as /srN/1.
They cannot be named cd*: fs_lfn.inc sends every path starting with "cd"
to the old ATAPI-over-IDE code.
- Disc change: the kernel lets go of a mounted medium only when querymedia
fails, so after a UNIT ATTENTION querymedia fails once and the kernel
immediately mounts the new disc. A READ(10) that hits UNIT ATTENTION
fails instead of silently reading the new disc.
- One ATAPI transfer is capped at (PRDT_MAX_ENTRIES - 1) * 4096 bytes, so
the PRDT always covers the whole request. The PRDT builder moved out of
ahci_rw_sectors into ahci_build_prdt and is shared by both paths.
- A command the drive refuses (an empty tray does that on every TEST UNIT
READY) restarts the port quietly instead of running the full recovery.
- Optical ports never busy-poll a long command and never switch the whole
controller to polling: missing interrupts are counted per port and only
that port's PxIE is turned off.
- Diagnostic output (command statistics, interrupt wakeups, register dumps
during init) is now behind AHCI_DBGLVL, off by default. Errors and one
line per detected device are still printed.
Tested: QEMU, VirtualBox and VMware (detection, listings and reads checked
against host checksums; eject/insert in QEMU and VirtualBox, a direct disc
swap in VirtualBox, an empty drive in VMware), SATA disk read/write on the
same controller in QEMU, and a GA-D525TUD (NM10) with an ASUS DRW-24B3ST:
detection, reading, disc change. The debug level change was build-tested
only.
Assisted-by: Claude Opus 5
Reviewed-on: #694
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Co-authored-by: leency <lipatov.kiril@gmail.com>
`tcp_output`: the window-update check computed `min(free, max_win - advertised)` instead of BSD's `min(free, max_win) - advertised`. With unread data in the receive buffer, every `send()` produced an empty ACK and never reached the persist state: no zero-window probes, and the connection hung.
- Clamp to the free space first, then subtract the advertised window.
- Compare signed: the result is negative when the window shrank.
Tested in QEMU with pcap: ~11000 empty ACKs in 0.6 s and no probe before the fix; 12 ACKs and a 1-byte persist probe after it.
Reviewed-on: #711
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Co-authored-by: leency <lipatov.kiril@gmail.com>
- `net_remove_device`: clear the slot's IPv4 settings, ARP table and counters, and drop its frames from the ethernet input queue.
- `ipv4_route`:
- skip slots without a device;
- an interface without an address routes broadcasts only;
- off-link without a gateway fails instead of resolving 0.0.0.0.
- `ipv4_output_raw`: check the route before resolving it.
- `eth_output`, `arp_output_request`: refuse a null device.
- `eth_output`: count a too-large frame on the device, not on `eax`.
Reviewed-on: #719
Reviewed-by: hidnplayr <hidnplayr@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
open_connection in http.obj left the socket open whenever connect()
failed. The kernel never reclaims sockets of a finished process
(socket_process_end is a stub), so every failed connect leaked a socket
with its two SOCKET_BUFFER_SIZE rings for good, and a late SYN+ACK could
still connect the orphan. WebView with a few dead image hosts ran the
kernel heap dry ("SOCKET_ring_create: Out of memory!"), after which every
application lost the network. Close the socket on the way out.
The socket() error check compared against 0, but the syscall returns -1
on failure; compare with -1.
The close() above exposed a second bug: tcp_connect took SOCKET.mutex
before creating the rings and returned from .nomem and .enoroute without
releasing it. Any later socket_free on that socket - close() from the
application, once http.obj does it - then waited for the mutex forever
and the thread became unkillable. Unlock on both error exits.
Assisted-by: Claude Fable 5.1 <noreply@anthropic.com>
Every push to main publishes 4 images per language plus the unpacked build tree, and nothing on the storage server ever shrinks. `kolibri.raw` is a fixed 128 MiB regardless of content, and `kolibri.img` ends up stored three times per language.
This adds a compaction step at the end of the deploy playbook. It runs on the storage server itself, so nothing extra crosses the network.
- The build that was just published stays as it is: bare images and a browsable tree.
- Every older build keeps its images zipped and loses the unpacked tree, which is rebuildable from the commit anyway.
`*.distr.zip`, `sha256sums.txt` and `build.log` are never touched.
Reviewed-on: #697
Reviewed-by: Gleb Zaharov <risdeveau@lair.moe>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
A branch pushed and a pull request opened with the built-in GITEA_TOKEN
come from the Actions user, and events it creates start no workflow run.
Test PR never ran on a bump, so the required check stayed missing and
the PRs could not be merged however many approvals they collected.
Put BOT_TOKEN back in both places: checkout persists it for the push,
and the API call needs it to open the PR under the bot account. This
reverts 882f1f024.
Assisted-by: Claude Opus 5 <noreply@anthropic.com>
A grayscale JPEG is decoded as Image.bpp8i with a 256-level gray
palette built from xor eax, eax, so every entry had alpha 0. After
img.convert to Image.bpp32 the picture was fully transparent: programs
that blend by alpha (WebView) reserved its room and drew nothing.
The palette now starts at 0xFF000000, as the PNG decoder fills its own.
Assisted-by: Claude Opus 5 <noreply@anthropic.com>
- Move ImgF to ISO (closed source)
- Move Examples to ISO (any normal app is a better example... and also there is already /sys/example.asm)
- Remove /sys/settings/kolibri.lbl as unnecessary
- Kpack /sys/settings/keymap.key (this is a binnary file so no matter, -2.5KB) and load it by 68.27
Reviewed-on: #721
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
On a failed bind cmdPASV jumped straight back to .next_port, and
nextpasvport wraps within [start, end], so a range with no usable port
spun forever without reading the control connection again: the client
hangs.
Count the ports in the range (end - start + 1), decrement after a
failed bind and give up at zero, then close the listener, reset the
state and answer 425 Can't open data connection. The counter lives in a
new thread_data field rather than a register, because mcall bind
clobbers eax/ebx/ecx/edx/esi/edi and esi already carries the sockaddr
length for bind. Decrementing after the failed bind and not before the
next attempt is what keeps a single-port range (start = end) working:
it still gets its one attempt.
Also validate the pair read from the ini. With start > end the range
degenerates and no port is bindable, so fall back to 2000/5000.
---------
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Reviewed-on: #710
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: Igor shutrov <kolibridev@mail.ru>
- replace the hand drawn scrollbars with the box_lib widget
- separate start and minimal window size, enforce minimal on resize
- use the libimg and box_lib import lists instead of hand written ones
- use the process_information struct for procinfo
- drop the dead sound handler and the unused palette offset
- bump version to 1.53
---------
Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #715
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: IgorA <aie85playm@gmail.com>
Summary: disk_scan_partitions takes its three-sector buffer from
kernel_alloc but gave it back with the malloc heap's free, which reads a
chunk header that a kernel_alloc block does not have. Mounting a disk
with non-512-byte sectors could fault or corrupt the malloc heap.
Details:
The global mbr_buffer is used only for 512-byte sectors and only while no
other scan holds it; every other case allocates the buffer with
kernel_alloc. The release path still called free, the malloc heap
function: it looks at [ptr-8] for the chunk head. A kernel_alloc block is
page-aligned, so that is the tail of the previous page - a page fault when
that page is not mapped, otherwise a bogus header and possibly a damaged
heap.
Since "disk cache: support for sector sizes other than 512 bytes"
(9d022746f) every CD/DVD mount takes this path, so it is no longer a rare
race of two scans. It was hit as a page fault in free+0xF called from
disk_scan_partitions while an AHCI optical drive remounted a changed disc
in QEMU.
kernel_free keeps ebx and esi; the only caller, disk_media_changed, saves
ebx, esi and edi itself, so replacing the call does not disturb it.
Tested: kernel builds; in QEMU a CD on an AHCI port was mounted at boot and
remounted after swapping discs A -> B -> A, without faults, with this change
on top of origin/main and the AHCI ATAPI support branch.
Assisted-by: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #695
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
mcall close takes the socket number in ecx, but the operand was
commented out in the two places that close the PASV listener, so close
ran with whatever ecx happened to hold. Both call sites had just put the
listener in ecx, so the socket was closed by accident: the code worked
only as long as that accident held. The cmdPASV cleanup was commented
out completely, so a second PASV before the client connected left the
previous listener open.
Restore the operand in threadloop (ftpd.asm) and in open_datasock, and
re-enable the cmdPASV prologue, which also resets passivesocknum to -1.
Closing the data socket needed the same care: datasocketnum only holds
a live socket in MODE_PASSIVE_OK and MODE_ACTIVE, so the new
close_data_sock helper closes it in those two states only. The
.cannot_open label is also reachable before open_datasock runs (the
length checks at the top of cmdSTOR), where datasocketnum is either
stale or never initialised, and closing it unconditionally there could
have closed an unrelated socket that had reused the number. The field
is now initialised to -1 at thread start and reset to -1 after every
close.
---------
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Reviewed-on: #707
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: igorsh <kolibridev@mail.ru>
cmdSTOR opens the destination with O_CREATE + O_WRITE, and libio only
truncates on write when the position is already at EOF (libio.asm:314),
which never happens here. Replacing a longer file with a shorter one
therefore kept the old tail: 4096-byte A overwritten by 1024-byte B
produced a 4096-byte file holding B followed by A[1024:4096], and
overwriting with zero bytes left the file completely untouched.
Call file.truncate (SF 70.4, size = Position = 0) right after a
successful open so that STOR replaces the file, as RFC 959 requires.
The descriptor survives the call in ebx because sendFTP clobbers the
registers. A failed truncate closes the descriptor and answers 550
through a new .truncate_error path.
The libio import list gains file_truncate, exported since 2009.
-------------------------
STOR: усекать файл при перезаписи, чтобы не оставался старый хвост
Проблема
cmdSTOR открывает целевой файл с O_CREATE + O_WRITE, а libio усекает файл при записи только если позиция уже находится в EOF (libio.asm:314). В этом сценарии условие никогда не выполняется. Поэтому при замене длинного файла коротким сохранялся старый хвост: 4096-байтный A, перезаписанный 1024-байтным B, давал 4096-байтный файл, содержащий B, а затем A[1024:4096]. Перезапись нулевым количеством байт вообще не изменяла файл.
Решение
Сразу после успешного открытия вызывается file.truncate (SF 70.4, size = Position = 0), чтобы STOR заменял файл, как требует RFC 959. Дескриптор сохраняется в ebx после вызова, так как sendFTP затирает регистры. Если truncate завершается ошибкой, дескриптор закрывается, а ответ 550 отправляется через новый обработчик .truncate_error.
Дополнительно
В список импортов libio добавлен file_truncate (экспортируется с 2009 года).
Co-authored-by: leency <lipatov.kiril@gmail.com>
Co-authored-by: Igor Shutrov <kolibridev@inbox.ru>
Reviewed-on: #706
Reviewed-by: Kiril Lipatov <lipatov.kiril@gmail.com>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: igorsh <kolibridev@mail.ru>
Fixes #636
**Причина.** Каждое меню работает в своём потоке и рисует себя из холста `m.canvas`. Этот холст освобождал (`G.destroy`) не только сам поток меню, но и другие потоки:
- `Menu.close()` вызывается из главного потока и при переключении подменю. Он освобождал холст до `K.ExitID()`.
- При срабатывании шортката из подменю холст родительского меню освобождал поток-потомок.
При быстрых кликах поток меню в этот момент как раз внутри `DrawCanvas` (sysfn 65). Ядро читает из уже освобождённого буфера и получает page fault в режиме ядра, поэтому в логе CS=8. Кроме того, если поток сам выходил через `exit`/`escape` одновременно с чужим `close()`, получался двойной free.
**Исправление.** В [Menu.ob07](develop/cedit/SRC/Menu.ob07) убрал все четыре `G.destroy` для холста меню: в `exit`, `escape`, `close` и в ветке шорткатов. Холст и так создаётся лениво в `open()` при `m.canvas = NIL`. Меню создаются один раз при старте, и размер у них не меняется, так что холст теперь живёт всё время работы программы. Утечки нет, и кроме того больше нет выделения и освобождения памяти при каждом открытии меню.
Reviewed-on: #702
Reviewed-by: Burer <burer@kolibrios.org>
Reviewed-by: Alexey Ryabov <alex@b00bl1k.ru>
Co-authored-by: leency <lipatov.kiril@gmail.com>
Now I have sound on a pretty new UEFI machine (AMD 4500U) without IRQ attached. Also ran regression on 3 BIOS machines. All OK.
drivers/hdaudio: attach IRQ before enabling interrupts, poll when no IRQ line
- attach the interrupt handler before azx_init_chip enables GIE/CIE: an
unclaimed level IRQ made the kernel (irq_serv .try_other_irqs) call and
relink foreign handlers onto our line, corrupting the dispatch list
- no interrupt line (INTLINE=0xFF, UEFI without CSM): fall back to RIRB
polling plus a 10 ms TimerHS driving hda_irq; sound works on AMD Renoir
- acknowledge all STATESTS bits instead of codec №2 only
- serialize RIRB readers (timer/IRQ vs command thread) with aspinlock
- fix azx_int_disable (edx reused after azx_readl), quiesce before attach
- zero the unsolicited-event ring pointers, mask its write index
- move 'data fixups' after code and data so fasm converges
Reviewed-on: #679
Reviewed-by: Ivan B <1+dunkaist@noreply.localhost>
Reviewed-by: Burer <burer@kolibrios.org>
Co-authored-by: leency <lipatov.kiril@gmail.com>
The APPDATA.debugger_slot field has been changed to APPDATA.debugger_thread. The API for the internal functions of the kernel has been changed. Mathematical expressions have been replaced with constants and the code has been cleaned up.
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
- 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>
- 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>
- 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>
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.
- 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
- 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
- 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
- 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
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>
- 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>
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>
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>
- 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>
- 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>
- 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>
- 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>
- 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>
- "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>
- 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>
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 → 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 → 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>
## 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>
## 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>
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>
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>
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>
## 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>
- 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>
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>
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>
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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
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>
- 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>
- 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>
- 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.
- 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.
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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.
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>
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>
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>
- 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>
- 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>
Улучшения для 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>
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>
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>
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>
- 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>
- 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>
- 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>
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>
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>
- 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>
- 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>
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>
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
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>
- 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>
- 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>
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>
- 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>
- 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>
- 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>
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>
* 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.
- 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.
- 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>
- 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>
- 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>
- 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
- 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>
- 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
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>
- 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>
`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>
When the extended primary loader for CD was introduced in 2008-2009 it
used to load a relatively small secondary loader. Later the secondary
loader was integrated into the kernel, hence the primary loader had to
load the kernel which is 100kB+. The EDD BIOS specification allows to
read less than 0x80 sectors at once using Int 0x13 0x42 service. For a
512-byte sector this is less than 0x10000 bytes which is a 64kB limit.
The same limit of 64kB is reached on a CD with only 0x20 sectors,
because the sector size is 2048 bytes here. This commit changes the
maximum number of sectors that can be read by the loader at once from
0x7f to 0x20, i.e. reading is done in 64kB blocks now.
Consider a config file with the following two lines:
abc=1
c=2
Previously, the first line matched *.c files, because it had the 'c=1'
substring. Now we skip until the next line as soon as 'abc' doesn't
match 'c'.
CDDataBuf was considered a free memory. It was then allocated for other
kernel structures what eventually caused the crash.
The bug report: https://www.youtube.com/watch?v=tXMD9_gEUcA
Version of c-- compiler executable in repo is similar to autobuild server, but c--.ini is different and have mistakes that cause compilation bugs.
For example, if you try to compile sysmon app on commit 8f7ee79 or previous, CPU load of all processes will be displayed as 0%.
And if you try to display load in cycles, it will display some big negative value, like it's integer type got overflowed.
This commit adds proper version from autobuild server, allowing to compile C-- programs without such bugs.
* kernel: Make sf9 return TSTATE_FREE for invalid slots: 0, >255, free.
* menu: Ignore free slots even if other fields of proc_info look valid.
Documentation (sysfuncs.txt) clearly states all the other info
as invalid when slot_state is TSTATE_FREE.
* taskbar: Same as menu.
* cmm/lib/*: Same as menu.
* programs/macros.inc: Add TSTATE_* macros.
Small code changes to fix all issues mentioned in Issue #85:
- Bumped app version and added it to header.
- Changed system disk usage subscription from MB to KB in English version.
- Properly aligned CPU usage percents in process list with header.
- Free space on disks now rounds down, instead of rounding app.
- Small formatting fixes.
- Fixed wrong language set in English version of compilation script.
Co-authored-by: Taldariner <71024372+Taldariner@users.noreply.github.com>
Reviewed-on: #86
Reviewed-by: Max Logaev <mxlgv@noreply.localhost>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Burer <burer@noreply.localhost>
Co-committed-by: Burer <burer@noreply.localhost>
- Functionality to pick and preview single character
- Functionality to input character from keyboard
- Display of ASCII and SCAN codes of character in dec and hex format
- Small UI fixes
- Code refactoring
- Reformatted sources, fixed indentation and removed non-Unicode characters
This commit adds a new serial port driver that allows other drivers to add or remove ports dynamically and allows applications to use a single serial ports API. It also modifies the usbftdi driver to support the new serial ports API.
The driver may conflict with kernel if it is compiled with debug_com_base.
Topic on forum https://board.kolibrios.org/viewtopic.php?p=78764
Reviewed-on: #94
Reviewed-by: Gleb Zaharov <sweetbread@coders-squad.com>
Reviewed-by: Mikhail Frolov <mixa.frolov2003@gmail.com>
Co-authored-by: Alexey Ryabov <alex@b00bl1k.ru>
Co-committed-by: Alexey Ryabov <alex@b00bl1k.ru>
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:
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.
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.
-`-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) не переполняли её на больших окнах/полноэкранном режиме.
<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]
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]
Loaded 100 of 7328 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.