Merged MOS and OS4 code. Did some more fixes before the 2.0.3r2 release.
This commit is contained in:
parent
ff3e5282f6
commit
69bd81188b
|
@ -0,0 +1,81 @@
|
||||||
|
#
|
||||||
|
# Project: Lite XL
|
||||||
|
#
|
||||||
|
# Created on: 26-12-2021
|
||||||
|
#
|
||||||
|
|
||||||
|
LiteXL_OBJ := \
|
||||||
|
src/dirmonitor.o src/main.o src/rencache.o src/renderer.o \
|
||||||
|
src/renwindow.o src/api/api.o src/api/regex.o \
|
||||||
|
src/api/renderer.o src/api/system.o src/platform/morphos.o
|
||||||
|
|
||||||
|
|
||||||
|
outfile := lite
|
||||||
|
compiler := gcc
|
||||||
|
cxxcompiler := g++
|
||||||
|
|
||||||
|
INCPATH := -Isrc -Ilib/dmon -I/sdk/gg/usr/local/include/SDL2 -I/sdk/gg/usr/include/freetype -I/sdk/gg/usr/include/lua5.2
|
||||||
|
DFLAGS := -D__USE_INLINE__ -DLITE_XL_DATA_USE_EXEDIR
|
||||||
|
CFLAGS := -Wall -Wwrite-strings -O2 -noixemul -g -std=gnu11 -fno-strict-aliasing
|
||||||
|
LFLAGS := -noixemul -lpcre2 -lSDL2 -llua52 -lagg -lfreetype -lm -lc -L/usr/local/lib
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: LiteXL clean release
|
||||||
|
|
||||||
|
default: LiteXL
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo "Cleaning compiler objects..."
|
||||||
|
@rm -f $(LiteXL_OBJ)
|
||||||
|
|
||||||
|
LiteXL: $(LiteXL_OBJ)
|
||||||
|
@echo "Linking LiteXL"
|
||||||
|
@$(cxxcompiler) -o $(outfile) $(LiteXL_OBJ) $(LFLAGS)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
@echo "Compiling $<"
|
||||||
|
@$(compiler) -c $< -o $*.o $(CFLAGS) $(INCPATH) $(DFLAGS)
|
||||||
|
|
||||||
|
src/dirmonitor.o: src/dirmonitor.c src/platform/amigaos4.h
|
||||||
|
|
||||||
|
src/main.o: src/main.c src/api/api.h src/rencache.h \
|
||||||
|
src/renderer.h src/platform/amigaos4.h src/dirmonitor.h
|
||||||
|
|
||||||
|
src/rencache.o: src/rencache.c
|
||||||
|
|
||||||
|
src/renderer.o: src/renderer.c
|
||||||
|
|
||||||
|
src/renwindow.o: src/renwindow.c
|
||||||
|
|
||||||
|
src/api/api.o: src/api/api.c
|
||||||
|
|
||||||
|
src/api/regex.o: src/api/regex.c
|
||||||
|
|
||||||
|
src/api/renderer.o: src/api/renderer.c
|
||||||
|
|
||||||
|
src/api/system.o: src/api/system.c
|
||||||
|
|
||||||
|
src/platform/morphos.o: src/platform/morphos.c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
release: clean LiteXL
|
||||||
|
@echo "Creating release files..."
|
||||||
|
@mkdir -p release/LiteXL2
|
||||||
|
@cp release_files/* release/LiteXL2/ -r
|
||||||
|
@mv release/LiteXL2/LiteXL2.info release/
|
||||||
|
@cp data release/LiteXL2/ -r
|
||||||
|
@cp changelog.md release/LiteXL2/
|
||||||
|
@cp lite release/LiteXL2/
|
||||||
|
@strip release/LiteXL2/lite
|
||||||
|
@cp README.md release/LiteXL2/
|
||||||
|
@cp README_Amiga.md release/LiteXL2/
|
||||||
|
@cp LICENSE release/LiteXL2/
|
||||||
|
@echo "Creating release archive..."
|
||||||
|
@lha -aeqr3 a LiteXL2_MOS.lha release/
|
||||||
|
@echo "Clean release files..."
|
||||||
|
@delete release ALL QUIET FORCE
|
||||||
|
|
29
Makefile.os4
29
Makefile.os4
|
@ -38,7 +38,6 @@ LiteXL: $(LiteXL_OBJ)
|
||||||
@$(cxxcompiler) -o $(outfile) $(LiteXL_OBJ) $(LFLAGS)
|
@$(cxxcompiler) -o $(outfile) $(LiteXL_OBJ) $(LFLAGS)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
@echo "Compiling $<"
|
@echo "Compiling $<"
|
||||||
@$(compiler) -c $< -o $*.o $(CFLAGS) $(INCPATH) $(DFLAGS)
|
@$(compiler) -c $< -o $*.o $(CFLAGS) $(INCPATH) $(DFLAGS)
|
||||||
|
@ -67,16 +66,20 @@ src/platform/amigaos4.o: src/platform/amigaos4.c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
release:
|
release: clean LiteXL
|
||||||
mkdir -p release/LiteXL2
|
@echo "Creating release files..."
|
||||||
cp release_files/* release/LiteXL2/ -r
|
@mkdir -p release/LiteXL2
|
||||||
mv release/LiteXL2/LiteXL2.info release/
|
@cp release_files/* release/LiteXL2/ -r
|
||||||
cp data release/LiteXL2/ -r
|
@mv release/LiteXL2/LiteXL2.info release/
|
||||||
cp changelog.md release/LiteXL2/
|
@cp data release/LiteXL2/ -r
|
||||||
cp lite release/LiteXL2/
|
@cp changelog.md release/LiteXL2/
|
||||||
strip release/LiteXL2/lite
|
@cp lite release/LiteXL2/
|
||||||
cp README.md release/LiteXL2/
|
@strip release/LiteXL2/lite
|
||||||
cp README_OS4.md release/LiteXL2/
|
@cp README.md release/LiteXL2/
|
||||||
cp LICENSE release/LiteXL2/
|
@cp README_Amiga.md release/LiteXL2/
|
||||||
lha -aeqr3 a LiteXL2_OS4.lha release/
|
@cp LICENSE release/LiteXL2/
|
||||||
|
@echo "Creating release archive..."
|
||||||
|
@lha -aeqr3 a LiteXL2_OS4.lha release/
|
||||||
|
@echo "Clean release files..."
|
||||||
|
@delete release ALL QUIET FORCE
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
# Lite XL v2 for AmigaOS 4.1 FE
|
# Lite XL v2 for AmigaOS 4.1 FE & MorphOS 3
|
||||||
|
|
||||||
Lite XL is a lightweight text editor written in Lua.
|
Lite XL is a lightweight text editor written in Lua.
|
||||||
|
|
||||||
The port is not perfect and might has issues here and there. For example
|
The port is not perfect and it might have issues here and there. For example
|
||||||
the filesystem notifications are not working yet. So when you make changes
|
the filesystem notifications are not working yet. So when you make changes
|
||||||
at a project folder those will not be reflected in Lite XL automatically.
|
at a project folder those will not be reflected in Lite XL automatically.
|
||||||
|
|
||||||
It might crash from time to time, if there is a path problem, but overall
|
It might crash from time to time, if there is a path problem, but overall
|
||||||
it works pretty well. This is my daily editor for any kind of development.
|
it works pretty well. This is my daily editor for any kind of development.
|
||||||
|
If it crashes on your system, try to delete to `.config` folder.
|
||||||
|
|
||||||
## New features against Lite XL v1
|
## New features against Lite XL v1
|
||||||
- Faster file scrolling
|
- Faster file scrolling
|
||||||
|
@ -24,9 +25,9 @@ editor.
|
||||||
|
|
||||||
## Configuration folder
|
## Configuration folder
|
||||||
This editor creates a `.config` folder where the configuration is saved, as
|
This editor creates a `.config` folder where the configuration is saved, as
|
||||||
well as plugins, themes etc.. By default this AmigaOS 4.1 FE version uses the
|
well as plugins, themes etc.. By default this version uses the
|
||||||
executable folder, but if you want to ovveride it, create an ENV variable
|
executable folder, but if you want to overide it, you can create an ENV
|
||||||
named `HOME` and set there your path.
|
variable named `HOME` and set there your prefferable path.
|
||||||
|
|
||||||
You can check if there is one already set by executing the following command
|
You can check if there is one already set by executing the following command
|
||||||
in a shell
|
in a shell
|
||||||
|
@ -65,10 +66,10 @@ The themes can also be found at
|
||||||
https://github.com/lite-xl/lite-xl-colors
|
https://github.com/lite-xl/lite-xl-colors
|
||||||
|
|
||||||
### Plugins
|
### Plugins
|
||||||
The Lite XL that you are using on AmigaOS 4 is based on version 2.0.4
|
This Lite XL release is based on version 2.0.3 of the application as
|
||||||
and not the latest version that is available by the development team.
|
released on other systems, by the original development team.
|
||||||
This means that some of the latest plugins might not working at all
|
This not the latest version. This means that some of the latest
|
||||||
or need some modifications to work.
|
plugins might not working at all or need modifications to work.
|
||||||
|
|
||||||
To make it easier for you, I gathered some of the plugins that are working
|
To make it easier for you, I gathered some of the plugins that are working
|
||||||
well, and I included them under `addons/plugins`. For you to install the
|
well, and I included them under `addons/plugins`. For you to install the
|
||||||
|
@ -175,8 +176,10 @@ folders, as you like.
|
||||||
## I would like to thank
|
## I would like to thank
|
||||||
|
|
||||||
- IconDesigner for the proper glow icons that are included in the release
|
- IconDesigner for the proper glow icons that are included in the release
|
||||||
- Capehill for his tireless work on SDL port
|
- Capehill for his tireless work on SDL port for AmigaOS 4.1 FE
|
||||||
- Michael Trebilcock for his port on liblua
|
- Michael Trebilcock for his port on liblua
|
||||||
|
- Bruno "BeWorld" Peloille for his great work on porting SDL to MorphOS
|
||||||
|
and for his valuable help
|
||||||
- Lite XL original team for being helpful and providing info
|
- Lite XL original team for being helpful and providing info
|
||||||
|
|
||||||
Without all the above Lite XL would not be possible
|
Without all the above Lite XL would not be possible
|
||||||
|
@ -192,6 +195,19 @@ https://git.walkero.gr/walkero/lite-xl/issues
|
||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [2.0.3r2] - 2022-06-18
|
||||||
|
### Added
|
||||||
|
- First public MorphOS version released
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Merged source code for both AmigaOS 4 and MorphOS
|
||||||
|
- Moved the declaration of the $VER and $STACK for the AmigaOS 4 version,
|
||||||
|
so to happen only once (reported by capehill)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed the usage of NumPad (reported by root)
|
||||||
|
|
||||||
|
|
||||||
## [2.0.3r1] - 2022-03-30
|
## [2.0.3r1] - 2022-03-30
|
||||||
### Changed
|
### Changed
|
||||||
- Applied all the necessary changes to make it run under AmigaOS 4.1 FE
|
- Applied all the necessary changes to make it run under AmigaOS 4.1 FE
|
||||||
|
@ -199,6 +215,6 @@ https://git.walkero.gr/walkero/lite-xl/issues
|
||||||
|
|
||||||
# Disclaimer
|
# Disclaimer
|
||||||
YOU MAY USE IT AT YOUR OWN RISK!
|
YOU MAY USE IT AT YOUR OWN RISK!
|
||||||
I will not be held responsible for any data loss or problem you might get
|
I will not be held responsible for any data loss or problems you might get
|
||||||
by using this software.
|
by using this software.
|
||||||
|
|
Binary file not shown.
|
@ -1,5 +1,6 @@
|
||||||
local common = {}
|
local common = {}
|
||||||
|
|
||||||
|
local mos = PLATFORM == "MORPHOS"
|
||||||
|
|
||||||
function common.is_utf8_cont(s, offset)
|
function common.is_utf8_cont(s, offset)
|
||||||
local byte = s:byte(offset or 1)
|
local byte = s:byte(offset or 1)
|
||||||
|
@ -58,7 +59,14 @@ function common.color(str)
|
||||||
r = (f() or 0)
|
r = (f() or 0)
|
||||||
g = (f() or 0)
|
g = (f() or 0)
|
||||||
b = (f() or 0)
|
b = (f() or 0)
|
||||||
a = (f() or 1) * 0xff
|
if mos then
|
||||||
|
a = (f() or "1.0"):gsub("%.", ",") * 0xff -- This is necessary for Lua 5.2 on MOS
|
||||||
|
-- having issues with float numbers having
|
||||||
|
-- a dot instead of comma
|
||||||
|
else
|
||||||
|
a = (f() or 1) * 0xff
|
||||||
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
error(string.format("bad color string '%s'", str))
|
error(string.format("bad color string '%s'", str))
|
||||||
end
|
end
|
||||||
|
@ -438,3 +446,4 @@ function common.rm(path, recursively)
|
||||||
end
|
end
|
||||||
|
|
||||||
return common
|
return common
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,10 @@ keymap.reverse_map = {}
|
||||||
|
|
||||||
local macos = PLATFORM == "Mac OS X"
|
local macos = PLATFORM == "Mac OS X"
|
||||||
local os4 = PLATFORM == "AmigaOS 4"
|
local os4 = PLATFORM == "AmigaOS 4"
|
||||||
|
local mos = PLATFORM == "MORPHOS"
|
||||||
|
|
||||||
-- Thanks to mathewmariani, taken from his lite-macos github repository.
|
-- Thanks to mathewmariani, taken from his lite-macos github repository.
|
||||||
local modkeys_os = require("core.modkeys-" .. (macos and "macos" or os4 and "os4" or "generic"))
|
local modkeys_os = require("core.modkeys-" .. (macos and "macos" or os4 and "os4" or mos and "mos" or "generic"))
|
||||||
local modkey_map = modkeys_os.map
|
local modkey_map = modkeys_os.map
|
||||||
local modkeys = modkeys_os.keys
|
local modkeys = modkeys_os.keys
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
local modkeys = {}
|
||||||
|
|
||||||
|
modkeys.map = {
|
||||||
|
["left amiga"] = "cmd",
|
||||||
|
["right amiga"] = "cmd",
|
||||||
|
["control"] = "ctrl",
|
||||||
|
["left shift"] = "shift",
|
||||||
|
["right shift"] = "shift",
|
||||||
|
["left alt"] = "alt",
|
||||||
|
["right alt"] = "altgr",
|
||||||
|
}
|
||||||
|
|
||||||
|
modkeys.keys = { "cmd", "ctrl", "alt", "altgr", "shift" }
|
||||||
|
|
||||||
|
return modkeys
|
|
@ -1,5 +1,5 @@
|
||||||
-- this file is used by lite-xl to setup the Lua environment when starting
|
-- this file is used by lite-xl to setup the Lua environment when starting
|
||||||
VERSION = "2.0.3r1"
|
VERSION = "2.0.3r2"
|
||||||
MOD_VERSION = "2"
|
MOD_VERSION = "2"
|
||||||
|
|
||||||
SCALE = tonumber(os.getenv("LITE_SCALE") or os.getenv("GDK_SCALE") or os.getenv("QT_SCALE_FACTOR")) or SCALE
|
SCALE = tonumber(os.getenv("LITE_SCALE") or os.getenv("GDK_SCALE") or os.getenv("QT_SCALE_FACTOR")) or SCALE
|
||||||
|
|
|
@ -73,3 +73,4 @@ style.syntax_fonts = {}
|
||||||
-- style.syntax_fonts["comment"] = renderer.font.load(path_to_font, size_of_font, rendering_options)
|
-- style.syntax_fonts["comment"] = renderer.font.load(path_to_font, size_of_font, rendering_options)
|
||||||
|
|
||||||
return style
|
return style
|
||||||
|
|
||||||
|
|
|
@ -140,6 +140,9 @@ DMON_API_DECL void dmon_unwatch(dmon_watch_id id);
|
||||||
#elif defined(__amigaos4__)
|
#elif defined(__amigaos4__)
|
||||||
# undef DMON_OS_AMIGAOS4
|
# undef DMON_OS_AMIGAOS4
|
||||||
# define DMON_OS_AMIGAOS4 1
|
# define DMON_OS_AMIGAOS4 1
|
||||||
|
#elif defined(__morphos__)
|
||||||
|
# undef DMON_OS_MORPHOS
|
||||||
|
# define DMON_OS_MORPHOS 1
|
||||||
#else
|
#else
|
||||||
# define DMON_OS 0
|
# define DMON_OS 0
|
||||||
# error "unsupported platform"
|
# error "unsupported platform"
|
||||||
|
@ -178,7 +181,7 @@ DMON_API_DECL void dmon_unwatch(dmon_watch_id id);
|
||||||
# include <sys/time.h>
|
# include <sys/time.h>
|
||||||
# include <sys/stat.h>
|
# include <sys/stat.h>
|
||||||
# include <dispatch/dispatch.h>
|
# include <dispatch/dispatch.h>
|
||||||
#elif DMON_OS_AMIGAOS4
|
#elif DMON_OS_AMIGAOS4 || DMON_OS_MORPHOS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef DMON_MALLOC
|
#ifndef DMON_MALLOC
|
||||||
|
@ -1593,3 +1596,4 @@ DMON_API_IMPL void dmon_unwatch(dmon_watch_id id)
|
||||||
|
|
||||||
#endif // DMON_IMPL
|
#endif // DMON_IMPL
|
||||||
#endif // __DMON_H__
|
#endif // __DMON_H__
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
#include <sys/vfs.h>
|
#include <sys/vfs.h>
|
||||||
#elif __amigaos4__
|
#elif __amigaos4__
|
||||||
#include "platform/amigaos4.h"
|
#include "platform/amigaos4.h"
|
||||||
|
#elif __morphos__
|
||||||
|
#include "platform/morphos.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern SDL_Window *window;
|
extern SDL_Window *window;
|
||||||
|
@ -102,7 +104,7 @@ static const char *numpad[] = { "end", "down", "pagedown", "left", "", "right",
|
||||||
static const char *get_key_name(const SDL_Event *e, char *buf) {
|
static const char *get_key_name(const SDL_Event *e, char *buf) {
|
||||||
SDL_Scancode scancode = e->key.keysym.scancode;
|
SDL_Scancode scancode = e->key.keysym.scancode;
|
||||||
|
|
||||||
#if !defined(__amigaos4__) && !defined(__MORPHOS__)
|
#if !defined(__amigaos4__) && !defined(__morphos__)
|
||||||
/* Is the scancode from the keypad and the number-lock off?
|
/* Is the scancode from the keypad and the number-lock off?
|
||||||
** We assume that SDL_SCANCODE_KP_1 up to SDL_SCANCODE_KP_9 and SDL_SCANCODE_KP_0
|
** We assume that SDL_SCANCODE_KP_1 up to SDL_SCANCODE_KP_9 and SDL_SCANCODE_KP_0
|
||||||
** and SDL_SCANCODE_KP_PERIOD are declared in SDL2 in that order. */
|
** and SDL_SCANCODE_KP_PERIOD are declared in SDL2 in that order. */
|
||||||
|
@ -530,7 +532,7 @@ static int f_list_dir(lua_State *L) {
|
||||||
#define realpath(x, y) _fullpath(y, x, MAX_PATH)
|
#define realpath(x, y) _fullpath(y, x, MAX_PATH)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __amigaos4__
|
#if defined(__amigaos4__) || defined(__morphos__)
|
||||||
#define realpath(x, y) _fullpath(x)
|
#define realpath(x, y) _fullpath(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
13
src/main.c
13
src/main.c
|
@ -5,6 +5,11 @@
|
||||||
#include "rencache.h"
|
#include "rencache.h"
|
||||||
#include "renderer.h"
|
#include "renderer.h"
|
||||||
|
|
||||||
|
#if defined(__amigaos4__) || defined(__morphos__)
|
||||||
|
#define VSTRING "Lite XL 2.0.3r2 (18.06.2022)"
|
||||||
|
#define VERSTAG "\0$VER: " VSTRING
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#elif __linux__
|
#elif __linux__
|
||||||
|
@ -14,6 +19,12 @@
|
||||||
#include <mach-o/dyld.h>
|
#include <mach-o/dyld.h>
|
||||||
#elif __amigaos4__
|
#elif __amigaos4__
|
||||||
#include "platform/amigaos4.h"
|
#include "platform/amigaos4.h"
|
||||||
|
static CONST_STRPTR stack USED = "$STACK:102400";
|
||||||
|
static CONST_STRPTR version USED = VERSTAG;
|
||||||
|
#elif __morphos__
|
||||||
|
#include "platform/morphos.h"
|
||||||
|
unsigned long __stack = 1000000;
|
||||||
|
UBYTE VString[] = VERSTAG;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "dirmonitor.h"
|
#include "dirmonitor.h"
|
||||||
|
@ -47,7 +58,7 @@ static void get_exe_filename(char *buf, int sz) {
|
||||||
char exepath[size];
|
char exepath[size];
|
||||||
_NSGetExecutablePath(exepath, &size);
|
_NSGetExecutablePath(exepath, &size);
|
||||||
realpath(exepath, buf);
|
realpath(exepath, buf);
|
||||||
#elif __amigaos4__
|
#elif defined(__amigaos4__) || defined(__morphos__)
|
||||||
strcpy(buf, _fullpath("./lite"));
|
strcpy(buf, _fullpath("./lite"));
|
||||||
#else
|
#else
|
||||||
strcpy(buf, "./lite");
|
strcpy(buf, "./lite");
|
||||||
|
|
|
@ -4,11 +4,6 @@
|
||||||
#include <proto/dos.h>
|
#include <proto/dos.h>
|
||||||
#include <proto/exec.h>
|
#include <proto/exec.h>
|
||||||
|
|
||||||
#define VSTRING "Lite XL OS4 2.0.3r1 (30.04.2022)"
|
|
||||||
#define VERSTAG "\0$VER: " VSTRING
|
|
||||||
|
|
||||||
static CONST_STRPTR stack USED = "$STACK:102400";
|
|
||||||
static CONST_STRPTR version USED = VERSTAG;
|
|
||||||
|
|
||||||
char *_fullpath(const char *);
|
char *_fullpath(const char *);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "morphos.h"
|
||||||
|
#define MAX_DOS_NAME FILENAME_MAX
|
||||||
|
|
||||||
|
static char *getFullPath(const char *path)
|
||||||
|
{
|
||||||
|
char *appPath = malloc(sizeof(char) * MAX_DOS_NAME);
|
||||||
|
BPTR pathLock = Lock(path, SHARED_LOCK);
|
||||||
|
if (pathLock)
|
||||||
|
{
|
||||||
|
NameFromLock(pathLock, appPath, sizeof(char) * MAX_DOS_NAME);
|
||||||
|
UnLock(pathLock);
|
||||||
|
|
||||||
|
return appPath;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *getCurrentPath(void)
|
||||||
|
{
|
||||||
|
char *appPath = malloc(sizeof(char) * MAX_DOS_NAME);
|
||||||
|
BOOL success = GetCurrentDirName(appPath, sizeof(char) * MAX_DOS_NAME);
|
||||||
|
if (!success) {
|
||||||
|
strncpy(appPath, "PROGDIR:", sizeof(char) * MAX_DOS_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
return appPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *_fullpath(const char *path)
|
||||||
|
{
|
||||||
|
static char prvPath[MAX_DOS_NAME];
|
||||||
|
static char result[MAX_DOS_NAME];
|
||||||
|
|
||||||
|
if (!strcmp(path, prvPath))
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
strcpy(prvPath, path);
|
||||||
|
|
||||||
|
if (!strcmp(path, "./lite"))
|
||||||
|
{
|
||||||
|
// TODO: Add code to get the name of the executable
|
||||||
|
strcpy(result, getFullPath("PROGDIR:lite"));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!strcmp(path, "."))
|
||||||
|
{
|
||||||
|
strcpy(result, getCurrentPath());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
strcpy(result, getFullPath(path));
|
||||||
|
return result;
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
#ifndef _MORPHOS_H
|
||||||
|
#define _MORPHOS_H
|
||||||
|
|
||||||
|
#include <proto/dos.h>
|
||||||
|
#include <proto/exec.h>
|
||||||
|
|
||||||
|
char *_fullpath(const char *);
|
||||||
|
|
||||||
|
#endif
|
|
@ -334,7 +334,7 @@ void ren_draw_rect(RenRect rect, RenColor color) {
|
||||||
SDL_Surface *surface = renwin_get_surface(&window_renderer);
|
SDL_Surface *surface = renwin_get_surface(&window_renderer);
|
||||||
uint32_t *d = surface->pixels;
|
uint32_t *d = surface->pixels;
|
||||||
|
|
||||||
#ifdef __amigaos4__
|
#if defined(__amigaos4__) || defined(__morphos__)
|
||||||
d += x1 + y1 * surface->pitch/sizeof(uint32_t);
|
d += x1 + y1 * surface->pitch/sizeof(uint32_t);
|
||||||
int dr = surface->pitch/sizeof(uint32_t) - (x2 - x1);
|
int dr = surface->pitch/sizeof(uint32_t) - (x2 - x1);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -10,7 +10,7 @@ static int query_surface_scale(RenWindow *ren) {
|
||||||
/* We consider that the ratio pixel/point will always be an integer and
|
/* We consider that the ratio pixel/point will always be an integer and
|
||||||
it is the same along the x and the y axis. */
|
it is the same along the x and the y axis. */
|
||||||
|
|
||||||
#ifdef __amigaos4__
|
#if defined(__amigaos4__) || defined(__morphos__)
|
||||||
// This is a workaround when the w_pixels != w_points and h_pixels != h_points
|
// This is a workaround when the w_pixels != w_points and h_pixels != h_points
|
||||||
// because of redraw delays, especially when the "Resize with contents" is enabled
|
// because of redraw delays, especially when the "Resize with contents" is enabled
|
||||||
if (w_pixels != w_points) {
|
if (w_pixels != w_points) {
|
||||||
|
|
Loading…
Reference in New Issue