DEADSOFTWARE

gen-LibW
authorAlexander Shiryaev <aixp@mail.ru>
Wed, 16 Nov 2016 09:38:57 +0000 (12:38 +0300)
committerAlexander Shiryaev <aixp@mail.ru>
Wed, 16 Nov 2016 09:38:57 +0000 (12:38 +0300)
BlackBox/_FreeBSD_/Lin/Mod/gen-LibW/Makefile
BlackBox/_Linux_/Lin/Mod/LibW.txt [new file with mode: 0644]
BlackBox/_Linux_/Lin/Mod/gen-LibW/Makefile [new file with mode: 0644]
BlackBox/_Linux_/Lin/Mod/gen-LibW/dumpdefs.py [new symlink]
BlackBox/_Linux_/Lin/Mod/gen-LibW/libver [new file with mode: 0644]
BlackBox/_Linux_/Lin/Mod/gen-LibW/machine [new file with mode: 0644]
BlackBox/_Linux_/Lin/Mod/gen-LibW/mklc.c [new file with mode: 0644]
BlackBox/_Linux_/Lin/Mod/gen-LibW/osname [new file with mode: 0644]
BlackBox/_Linux_/Lin/Mod/gen-LibW/untempl.py [new symlink]
BlackBox/_OpenBSD_/Lin/Mod/gen-LibW/Makefile

index 28bde3aaab296bfc846a6f2052bbbd0f7bc26eab..40a0ef45ff452b8f48399abd17c1b4d58333614c 100644 (file)
@@ -22,4 +22,4 @@ defs-lc:
        ./dumpdefs.py 2 1 i ${INCDIR}/locale.h | grep " LC_" > ${.TARGET}
 
 clean:
-       rm -f ${DEFS} Net.txt sizeofs
+       rm -f ${DEFS} LibW.txt sizeofs
diff --git a/BlackBox/_Linux_/Lin/Mod/LibW.txt b/BlackBox/_Linux_/Lin/Mod/LibW.txt
new file mode 100644 (file)
index 0000000..86cbd41
--- /dev/null
@@ -0,0 +1,65 @@
+MODULE LinLibW ["libc.so.6"];
+
+       (*
+               GNU/Linux
+               i386
+       *)
+
+       IMPORT Libc := LinLibc;
+
+       CONST
+               LC_CTYPE* = 0;
+               LC_NUMERIC* = 1;
+               LC_TIME* = 2;
+               LC_COLLATE* = 3;
+               LC_MONETARY* = 4;
+               LC_MESSAGES* = 5;
+               LC_ALL* = 6;
+               LC_PAPER* = 7;
+               LC_NAME* = 8;
+               LC_ADDRESS* = 9;
+               LC_TELEPHONE* = 10;
+               LC_MEASUREMENT* = 11;
+               LC_IDENTIFICATION* = 12;
+
+       TYPE
+               (* int, wchar_t, wint_t, size_t, mbstate_t *)
+               int* = INTEGER;
+               wchar_t* = INTEGER;
+               wint_t* = INTEGER;
+               size_t* = INTEGER;
+               mbstate_t* = LONGINT;
+
+               PtrWSTR* = POINTER [untagged] TO ARRAY [untagged] OF wchar_t;
+
+       PROCEDURE [ccall] setlocale* (category: int; locale: Libc.PtrSTR): Libc.PtrSTR;
+
+       PROCEDURE [ccall] mbsinit* (VAR [nil] ps: mbstate_t): int;
+
+       PROCEDURE [ccall] wctomb* (s: Libc.PtrSTR; wchar: wchar_t): int;
+       PROCEDURE [ccall] wcstombs* (s: Libc.PtrSTR; pwcs: PtrWSTR; n: size_t): size_t;
+
+       PROCEDURE [ccall] wcrtomb* (s: Libc.PtrSTR; wc: wchar_t; VAR [nil] ps: mbstate_t): size_t;
+       PROCEDURE [ccall] wcsrtombs* (dst: Libc.PtrSTR; VAR src: PtrWSTR; len: size_t; VAR [nil] ps: mbstate_t): size_t;
+       PROCEDURE [ccall] wcsnrtombs* (dst: Libc.PtrSTR; VAR src: PtrWSTR; nwc: size_t; len: size_t; VAR [nil] ps: mbstate_t): size_t;
+
+       PROCEDURE [ccall] mbtowc* (pwc: PtrWSTR; s: Libc.PtrSTR; n: size_t): int;
+       PROCEDURE [ccall] mbstowcs* (pwcs: PtrWSTR; s: Libc.PtrSTR; n: size_t): size_t;
+       PROCEDURE [ccall] mblen* (s: Libc.PtrSTR; n: size_t): int;
+
+       PROCEDURE [ccall] mbrtowc* (wc: PtrWSTR; s: Libc.PtrSTR; n: size_t; VAR [nil] mbs: mbstate_t): size_t;
+       PROCEDURE [ccall] mbsrtowcs* (dst: PtrWSTR; VAR src: Libc.PtrSTR; len: size_t; VAR [nil] ps:  mbstate_t): size_t;
+       PROCEDURE [ccall] mbsnrtowcs* (dst: PtrWSTR; VAR src: Libc.PtrSTR; nmc: size_t; len: size_t; VAR [nil] ps: mbstate_t): size_t;
+       PROCEDURE [ccall] mbrlen* (s: Libc.PtrSTR; n: size_t; VAR [nil] ps: mbstate_t): size_t;
+
+       PROCEDURE [ccall] iswalpha* (wc: wint_t): int;
+       PROCEDURE [ccall] iswlower* (wc: wint_t): int;
+       PROCEDURE [ccall] iswupper* (wc: wint_t): int;
+       PROCEDURE [ccall] towlower* (wc: wint_t): wint_t;
+       PROCEDURE [ccall] towupper* (wc: wint_t): wint_t;
+
+       PROCEDURE [ccall] wprintf* (fmt: PtrWSTR): int;
+       PROCEDURE [ccall] fputws* (ws: PtrWSTR; fp: Libc.PtrFILE): int;
+       PROCEDURE [ccall] fgetws* (ws: PtrWSTR; n: int; fp: Libc.PtrFILE): PtrWSTR;
+
+END LinLibW.
\ No newline at end of file
diff --git a/BlackBox/_Linux_/Lin/Mod/gen-LibW/Makefile b/BlackBox/_Linux_/Lin/Mod/gen-LibW/Makefile
new file mode 100644 (file)
index 0000000..5561368
--- /dev/null
@@ -0,0 +1,25 @@
+# This is BSD Makefile
+#    BSD       GNU
+# ${.TARGET}    $@
+# ${.ALLSRC}    $^
+# ${.IMPSRC}    $<
+
+INCDIR ?= /usr/include
+
+PY = python2.7
+
+DEFS = defs-basictypes defs-lc
+
+all: LibW.txt ${DEFS}
+
+LibW.txt: LibW.txt.templ ${DEFS} libver osname machine
+       ${PY} ./untempl.py LibW.txt.templ $@
+
+defs-basictypes: sizeofs
+       ./sizeofs > $@
+
+defs-lc: mklc
+       ./mklc > $@
+
+clean:
+       rm -f ${DEFS} LibW.txt sizeofs mklc
diff --git a/BlackBox/_Linux_/Lin/Mod/gen-LibW/dumpdefs.py b/BlackBox/_Linux_/Lin/Mod/gen-LibW/dumpdefs.py
new file mode 120000 (symlink)
index 0000000..1730591
--- /dev/null
@@ -0,0 +1 @@
+../gen-Libc/dumpdefs.py
\ No newline at end of file
diff --git a/BlackBox/_Linux_/Lin/Mod/gen-LibW/libver b/BlackBox/_Linux_/Lin/Mod/gen-LibW/libver
new file mode 100644 (file)
index 0000000..ed44321
--- /dev/null
@@ -0,0 +1 @@
+.6
\ No newline at end of file
diff --git a/BlackBox/_Linux_/Lin/Mod/gen-LibW/machine b/BlackBox/_Linux_/Lin/Mod/gen-LibW/machine
new file mode 100644 (file)
index 0000000..fd32fa4
--- /dev/null
@@ -0,0 +1 @@
+i386
\ No newline at end of file
diff --git a/BlackBox/_Linux_/Lin/Mod/gen-LibW/mklc.c b/BlackBox/_Linux_/Lin/Mod/gen-LibW/mklc.c
new file mode 100644 (file)
index 0000000..d467830
--- /dev/null
@@ -0,0 +1,28 @@
+#include <locale.h>
+#include <stdio.h>
+
+#define PREFIX "\t\t"
+
+void D (const char *s, int ctl)
+{
+       printf("%s%s* = %d;\n", PREFIX, s, ctl);
+}
+
+int main (int argc, char *argv[])
+{
+       D("LC_CTYPE", LC_CTYPE);
+       D("LC_NUMERIC", LC_NUMERIC);
+       D("LC_TIME", LC_TIME);
+       D("LC_COLLATE", LC_COLLATE);
+       D("LC_MONETARY", LC_MONETARY);
+       D("LC_MESSAGES", LC_MESSAGES);
+       D("LC_ALL", LC_ALL);
+       D("LC_PAPER", LC_PAPER);
+       D("LC_NAME", LC_NAME);
+       D("LC_ADDRESS", LC_ADDRESS);
+       D("LC_TELEPHONE", LC_TELEPHONE);
+       D("LC_MEASUREMENT", LC_MEASUREMENT);
+       D("LC_IDENTIFICATION", LC_IDENTIFICATION);
+
+       return 0;
+}
diff --git a/BlackBox/_Linux_/Lin/Mod/gen-LibW/osname b/BlackBox/_Linux_/Lin/Mod/gen-LibW/osname
new file mode 100644 (file)
index 0000000..48fc79c
--- /dev/null
@@ -0,0 +1 @@
+GNU/Linux
\ No newline at end of file
diff --git a/BlackBox/_Linux_/Lin/Mod/gen-LibW/untempl.py b/BlackBox/_Linux_/Lin/Mod/gen-LibW/untempl.py
new file mode 120000 (symlink)
index 0000000..5800713
--- /dev/null
@@ -0,0 +1 @@
+../gen-Libc/untempl.py
\ No newline at end of file
index 28bde3aaab296bfc846a6f2052bbbd0f7bc26eab..40a0ef45ff452b8f48399abd17c1b4d58333614c 100644 (file)
@@ -22,4 +22,4 @@ defs-lc:
        ./dumpdefs.py 2 1 i ${INCDIR}/locale.h | grep " LC_" > ${.TARGET}
 
 clean:
-       rm -f ${DEFS} Net.txt sizeofs
+       rm -f ${DEFS} LibW.txt sizeofs