From 68e5b70273829e40d449b25ed195c3899faa0dce Mon Sep 17 00:00:00 2001 From: Ponali Date: Sun, 20 Jul 2025 17:20:12 +0200 Subject: [PATCH] v2.6.0 - Added support for reading low endian numbers from files, and fixed some bugs with the Unicode library. --- argentum.cfg | 2 +- halyde/core/boot.lua | 2 +- halyde/lib/filesystem.lua | 10 ++++++++-- halyde/lib/unicode.lua | 6 ++++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/argentum.cfg b/argentum.cfg index e25a7c8..d97640f 100644 --- a/argentum.cfg +++ b/argentum.cfg @@ -1,7 +1,7 @@ local agcfg = { ["halyde"] = { ["maindir"] = "", - ["version"] = "2.5.0", + ["version"] = "2.6.0", ["description"] = "A universal, customizable and feature-packed operating system for OpenComputers.", ["directories"] = { "halyde/apps", diff --git a/halyde/core/boot.lua b/halyde/core/boot.lua index c4f9f3d..940580c 100644 --- a/halyde/core/boot.lua +++ b/halyde/core/boot.lua @@ -1,7 +1,7 @@ local loadfile = ... local filesystem = loadfile("/halyde/lib/filesystem.lua")(loadfile) -_G._OSVERSION = "Halyde 2.5.0" +_G._OSVERSION = "Halyde 2.6.0" _G._OSLOGO = "" local handle, tmpdata = filesystem.open("/halyde/config/oslogo.ans", "r"), nil repeat diff --git a/halyde/lib/filesystem.lua b/halyde/lib/filesystem.lua index 522d99f..6fd26f6 100644 --- a/halyde/lib/filesystem.lua +++ b/halyde/lib/filesystem.lua @@ -88,8 +88,14 @@ local function readBytes(self,n) return string.byte(byte) end local bytes, res = {string.byte(self:read(n),1,n)}, 0 - for i=1,#bytes do - res = (res<<8)&0xFFFFFFFF | bytes[i] + if self.littleEndian then + for i=#bytes,1,-1 do + res = (res<<8)&0xFFFFFFFF | bytes[i] + end + else + for i=1,#bytes do + res = (res<<8)&0xFFFFFFFF | bytes[i] + end end return res end diff --git a/halyde/lib/unicode.lua b/halyde/lib/unicode.lua index 2743857..5f44fab 100644 --- a/halyde/lib/unicode.lua +++ b/halyde/lib/unicode.lua @@ -9,6 +9,8 @@ else end function unicodeLib.readCodePoint(readByte) + checkArg(1,readByte,"function") + local function inRange(min,max,...) for _,v in ipairs({...}) do if not (v and v>=min and v