OberonCore https://forum.oberoncore.ru/ |
|
#021 HostDevPackedFiles -> HostPackedFiles с параметром https://forum.oberoncore.ru/viewtopic.php?f=134&t=6558 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Вторник, 18 Февраль, 2020 19:31 ] |
Заголовок сообщения: | #021 HostDevPackedFiles -> HostPackedFiles с параметром |
dev0 пускается с ключом BB_PACKED_FIRST. Не надо поддерживать отдельную копию HostPackedFiles -- HostDevPackedFiles. Код: exe="dev0" # export LD_DEBUG=all exec env \ BB_PRIMARY_DIR="${pd}" BB_SECONDARY_DIR="${sd}" \ BB_PACKED_NAME="${exe}" BB_PACKED_FIRST= \ "${pd}"/${exe} "${@}" Реализация для линуха ниже, для винды изменения аналогичные. HostConf -- см. viewtopic.php?t=6557 Код: MODULE HostPackedFiles;
... IMPORT SYSTEM, Files, HostFiles (*, Dialog*), Libc := LinLibc, HostConf; ... VAR packedFirst: BOOLEAN; ... PROCEDURE (d: Directory) Old (loc: Files.Locator; name: Files.Name; shared: BOOLEAN): Files.File; VAR f: Files.File; BEGIN IF packedFirst THEN f := packedDir.Old(loc, name, shared); IF f = NIL THEN f := orgdir.Old(loc, name, shared) END; ELSE f := orgdir.Old(loc, name, shared); IF f = NIL THEN f := packedDir.Old(loc, name, shared) END; END; RETURN f END Old; ... PROCEDURE Init; VAR loc: Files.Locator; appName: Files.Name; pDir: PackedDirectory; sDir: Directory; buf: ARRAY 2 OF CHAR; res: INTEGER; BEGIN HostConf.GetPar("BB_PACKED_FIRST", buf, res); packedFirst := res = 0; HostConf.GetPar("BB_PACKED_NAME", appName, res); IF res = 2 THEN Msg("HostPackedFiles: BB_PACKED_NAME parameter not specified") ELSIF res IN {1, 3} THEN Msg("HostPackedFiles: failed to get BB_PACKED_NAME") ELSE loc := Files.dir.This(""); Files.dir.GetFileName(appName, "", appName); exefile := Files.dir.Old(loc, appName, Files.shared); IF (exefile # NIL) & (loc IS HostFiles.Locator) THEN curloc := loc(HostFiles.Locator); ReadResourceTable; NEW(pDir); packedDir := pDir; NEW(sDir); stdDir := sDir; SetFilesDir ELSE DebugPrint("HostPackedFiles: Could not open " + appName) END END END Init; ... |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |