aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/alan3/sysdep.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/glk/alan3/sysdep.cpp')
-rw-r--r--engines/glk/alan3/sysdep.cpp187
1 files changed, 20 insertions, 167 deletions
diff --git a/engines/glk/alan3/sysdep.cpp b/engines/glk/alan3/sysdep.cpp
index 6b663938d7..0966d54d7b 100644
--- a/engines/glk/alan3/sysdep.cpp
+++ b/engines/glk/alan3/sysdep.cpp
@@ -28,41 +28,6 @@
namespace Glk {
namespace Alan3 {
-#ifdef __vms__
-
-char *strdup(char str[]) /* IN - String to duplicate */
-{
- char *new = (char *) malloc(strlen(str)+1);
-
- if (!new)
- syserr("Out of memory");
- strcpy(new, str);
- return new;
-}
-
-#endif
-
-
-#ifdef __vms__
-
-/* Cheat implementation of strftime */
-size_t strftime (
- char *outbuf,
- size_t len,
- const char *format,
- const struct tm *t)
-{
- char buf[100];
- time_t ticks;
-
- time(&ticks);
- strcpy(buf, ctime(&ticks));
- buf[strlen(buf)-1] = '\0';
- strcpy(outbuf, &buf[4]);
-}
-
-#endif
-
/* Note to Glk maintainers: 'native' characters are used for output, in this
case, Glk's Latin-1. ISO characters are Alan's internal representation,
stored in the .A3C file, and must be converted to native before printing.
@@ -138,86 +103,34 @@ static const byte upperCaseCharacters[] =
};
-int isSpace(unsigned int c) /* IN - Native character to test */
-{
+int isSpace(unsigned int c) {
return (c != '\0' && strchr((const char *)spaceCharacters, c) != 0);
}
-int isLower(unsigned int c) /* IN - Native character to test */
-{
+int isLower(unsigned int c) {
return (c != '\0' && strchr((const char *)lowerCaseCharacters, c) != 0);
}
-int isUpper(unsigned int c) /* IN - Native character to test */
-{
+int isUpper(unsigned int c) {
return (c != '\0' && strchr((const char *)upperCaseCharacters, c) != 0);
}
-int isLetter(unsigned int c) /* IN - Native character to test */
-{
+int isLetter(unsigned int c) {
return(c != '\0' && (isLower(c)? !0: isUpper(c)));
}
-int toLower(unsigned int c) /* IN - Native character to convert */
-{
-#ifdef HAVE_GLK
+int toLower(unsigned int c) {
return g_vm->glk_char_to_lower(c);
-#else
-#ifdef __dos__
- char *cp;
-
- if ((cp = strchr(upperCaseCharacters, c)) != 0)
- return(lowerCaseCharacters[cp-upperCaseCharacters]);
- else
- return c;
-#else
-#ifdef __mac__
- char *cp;
-
- if ((cp = strchr(upperCaseCharacters, c)) != 0)
- return(lowerCaseCharacters[cp-upperCaseCharacters]);
- else
- return c;
-#else
- return (isUpper(c)? c + ('a' - 'A'): c);
-#endif
-#endif
-#endif
}
-/* IN - Native character to convert */
-int toUpper(unsigned int c)
-{
-#ifdef HAVE_GLK
+int toUpper(unsigned int c) {
return g_vm->glk_char_to_upper(c);
-#else
-#ifdef __dos__
- char *cp;
-
- if ((cp = strchr(lowerCaseCharacters, c)) != 0)
- return(upperCaseCharacters[cp-lowerCaseCharacters]);
- else
- return c;
-#else
-#ifdef __mac__
- char *cp;
-
- if ((cp = strchr(lowerCaseCharacters, c)) != 0)
- return(upperCaseCharacters[cp-lowerCaseCharacters]);
- else
- return c;
-#else
- return (isLower(c)? c - ('a' - 'A'): c);
-#endif
-#endif
-#endif
}
-char *strlow(char str[]) /* INOUT - Native string to convert */
-{
+char *strlow(char str[]) {
char *s;
for (s = str; *s; s++)
@@ -226,8 +139,7 @@ char *strlow(char str[]) /* INOUT - Native string to convert */
}
-char *strupp(char str[]) /* INOUT - Native string to convert */
-{
+char *strupp(char str[]) {
char *s;
for (s = str; *s; s++)
@@ -238,8 +150,7 @@ char *strupp(char str[]) /* INOUT - Native string to convert */
/* The following work on ISO characters */
-int isLowerCase(unsigned int c) /* IN - ISO character to test */
-{
+int isLowerCase(unsigned int c) {
uint i;
for (i = 0; i < strlen((const char *)lowerCaseCharacters); i++)
if (((unsigned int)lowerCaseCharacters[i]) == c) return 1;
@@ -247,8 +158,7 @@ int isLowerCase(unsigned int c) /* IN - ISO character to test */
}
-int isUpperCase(unsigned int c) /* IN - ISO character to test */
-{
+int isUpperCase(unsigned int c) {
uint i;
for (i = 0; i < strlen((const char *)upperCaseCharacters); i++)
if (upperCaseCharacters[i] == c) return 1;
@@ -256,26 +166,22 @@ int isUpperCase(unsigned int c) /* IN - ISO character to test */
}
-int isISOLetter(int c) /* IN - ISO character to test */
-{
+int isISOLetter(int c) {
return (isLowerCase(c) || isUpperCase(c));
}
-char IsoToLowerCase(int c) /* IN - ISO character to convert */
-{
+char IsoToLowerCase(int c) {
return (isUpperCase(c)? c + ('a' - 'A'): c);
}
-char IsoToUpperCase(int c) /* IN - ISO character to convert */
-{
+char IsoToUpperCase(int c) {
return (isLowerCase(c)? c - ('a' - 'A'): c);
}
-char *stringLower(char str[]) /* INOUT - ISO string to convert */
-{
+char *stringLower(char str[]) {
char *s;
for (s = str; *s; s++)
@@ -284,8 +190,7 @@ char *stringLower(char str[]) /* INOUT - ISO string to convert */
}
-char *stringUpper(char str[]) /* INOUT - ISO string to convert */
-{
+char *stringUpper(char str[]) {
char *s;
for (s = str; *s; s++)
@@ -387,60 +292,9 @@ static const unsigned char dosMap[256]
interpreter so character set is known at compile time.
*/
-void fromIso(char copy[], /* OUT - Mapped string */
- char original[]) /* IN - string to convert */
-{
-#if ISO == 0
- static const unsigned char map[256]
-#if defined __mac__
- = {
- 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0D,0x0B,0x0C,0x0D,0x0E,0x0F,
- 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
- 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
- 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
- 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
- 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
- 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
- 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
- 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
- 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
- 0xCA,0xC1,0xA2,0xA3,0xB0,0xB4,0xBA,0xA4,0xAC,0xA9,0xBB,0xC7,0xC2,0xD0,0xA8,0xD1,
- 0xA1,0xB1,0xAA,0xD5,0xAB,0xB5,0xA6,0xA5,0xD4,0xA0,0xBC,0xC8,0xD9,0xDA,0xDB,0xC0,
- 0xCB,0xDC,0xD7,0xCC,0x80,0x81,0xAE,0x82,0xC5,0x83,0xB7,0xC9,0xB3,0xB2,0xC3,0xC4,
- 0xC6,0x84,0xDD,0xDE,0xBD,0xCD,0x85,0xAD,0xAF,0xD3,0xD2,0xDF,0x86,0xCE,0xB8,0xA7,
- 0x88,0x87,0x89,0x8B,0x8A,0x8C,0xBE,0x8D,0x8F,0x8E,0x90,0x91,0x93,0x92,0x94,0x95,
- 0xB6,0x96,0x98,0x97,0x99,0x9B,0x9A,0xD6,0xBF,0x9D,0x9C,0x9E,0x9F,0xCF,0xB9,0xD8}
-#else
-#if defined __dos__
- = {
- 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0D,0x0B,0x0C,0x0D,0x0E,0x0F,
- 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
- 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
- 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
- 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
- 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
- 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
- 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
- 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
- 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
- 0xFF,0xD0,0x9B,0x9C,0xE5,0x9D,0x9F,0xD1,0xF7,0xE0,0xA6,0xAE,0xFB,0xD2,0xE7,0xFA,
- 0xF8,0xF1,0xFD,0xD3,0xFE,0xE6,0xE3,0xF9,0xD4,0xD5,0xA7,0xAF,0xAC,0xAB,0xF0,0xA8,
- 0xA9,0xAA,0xEF,0xD6,0x8E,0x8F,0x92,0x80,0xE2,0x90,0xE4,0xEE,0xF5,0xF4,0xD7,0xAD,
- 0xE9,0xA5,0xD8,0xD9,0xEA,0xE8,0x99,0xEC,0xED,0xF2,0xF3,0xDA,0x9A,0xDB,0x9E,0xE1,
- 0x85,0xA0,0x83,0xDC,0x84,0x86,0x91,0x87,0x8A,0x82,0x88,0x89,0x8D,0xA1,0x8C,0x8B,
- 0xEB,0xA4,0x95,0xA2,0x93,0xDD,0x94,0xF6,0xDE,0x97,0xA3,0x96,0x81,0xDF,0xFC,0x98}
-#endif
- ;
-#endif
- unsigned char *o, *c;
-
- for (o = (unsigned char *)original, c = (unsigned char *)copy; *o; o++, c++)
- *c = map[*o];
- *c = '\0';
-#else
+void fromIso(char copy[], char original[]) {
if (copy != original)
(void)strcpy(copy, original);
-#endif
}
@@ -450,12 +304,11 @@ void fromIso(char copy[], /* OUT - Mapped string */
Converts the incoming string to the native character set from any of
the others. The original is in the current character set which in
the case of the compiler might be other than the native.
-
+ copy - Mapped string
+ original - string to convert
+ charset - the current character set
*/
-void toNative(char copy[], /* OUT - Mapped string */
- char original[], /* IN - string to convert */
- int charset) /* IN - the current character set */
-{
+void toNative(char copy[], char original[], int charset) {
toIso(copy, original, charset);
if (NATIVECHARSET != 0)
fromIso(copy, copy);