diff --git a/library/GNUmakefile.os4 b/library/GNUmakefile.os4 index 0dffe56..af6d7df 100644 --- a/library/GNUmakefile.os4 +++ b/library/GNUmakefile.os4 @@ -1,5 +1,5 @@ # -# $Id: GNUmakefile.os4,v 1.111 2007-01-06 10:09:48 obarthel Exp $ +# $Id: GNUmakefile.os4,v 1.112 2008-04-18 10:11:59 obarthel Exp $ # # :ts=8 # @@ -212,19 +212,19 @@ lib.threadsafe/baserel/%.o : %.c ############################################################################## define COMPILE -$(MAKEDIR) $(@D) +-$(MAKEDIR) $(@D) echo "Compiling $< [$(@D)]" $(CC) -o $@ -c $(CFLAGS) $< $(LOG_COMMAND) endef define ASSEMBLE -$(MAKEDIR) $(@D) +-$(MAKEDIR) $(@D) echo "Assembling $< [$(@D)]" $(CC) -o $@ -c $(AFLAGS) $< $(LOG_COMMAND) endef define MAKELIB -$(MAKEDIR) $@ +-$(MAKEDIR) $@ $(DELETE) $@ echo "Making $@" $(AR) $@ $^ $(LOG_COMMAND) diff --git a/library/amiga_rexxvars.c b/library/amiga_rexxvars.c index 4ba6584..bf85dd1 100644 --- a/library/amiga_rexxvars.c +++ b/library/amiga_rexxvars.c @@ -1,5 +1,5 @@ /* - * $Id: amiga_rexxvars.c,v 1.18 2008-04-18 10:06:07 obarthel Exp $ + * $Id: amiga_rexxvars.c,v 1.19 2008-04-18 10:11:59 obarthel Exp $ * * :ts=4 * @@ -212,7 +212,7 @@ _IsSymbol(STRPTR name,LONG * symbol_length_ptr) } STATIC VOID -_CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr); +_CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr) { STATIC CONST UWORD code[] = { 0x4EAE,0xFF94,0x2488,0x4E75 }; /* jsr -108(a6) ; move.l a0,(a2) ; rts */ @@ -224,7 +224,7 @@ _CurrentEnv(struct RexxTask *task,struct Environment ** environment_ptr); } STATIC struct Node * -_FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound,struct Node *symbol_table_node,LONG * is_literal_ptr,struct NexxStr ** value_ptr); +_FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound,struct Node *symbol_table_node,LONG * is_literal_ptr,struct NexxStr ** value_ptr) { STATIC CONST UWORD code[] = { 0x4EAE,0xFFB8,0x2488,0x2681,0x4E75 }; /* jsr -72(a6) ; move.l a0,(a2) ; move.l d1,(a3) ; rts */ struct Node * result; @@ -233,7 +233,7 @@ _FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * comp ET_RegisterA0,env, ET_RegisterA1,stem, ET_RegisterD0,compound, - ET_RegisterD1,symbol_table, + ET_RegisterD1,symbol_table_node, ET_RegisterA2,is_literal_ptr, ET_RegisterA3,value_ptr, ET_RegisterA6,RexxSysBase, @@ -243,7 +243,7 @@ _FetchValue(struct Environment * env,struct NexxStr * stem,struct NexxStr * comp } STATIC struct Node * -_EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound); +_EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * compound) { STATIC CONST UWORD code[] = { 0x4EAE,0xFFBE,0x4E75 }; /* jsr -66(a6) ; rts */ struct Node * result; @@ -259,7 +259,7 @@ _EnterSymbol(struct Environment * env,struct NexxStr * stem,struct NexxStr * com } STATIC VOID -_SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_table_node); +_SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_table_node) { STATIC CONST UWORD code[] = { 0x4EAE,0xFFAC,0x4E75 }; /* jsr -84(a6) ; rts */ struct Node * result; @@ -270,11 +270,9 @@ _SetValue(struct Environment * env,struct NexxStr * value,struct Node * symbol_t ET_RegisterD0,symbol_table_node, ET_RegisterA6,RexxSysBase, TAG_END); - - return(result); } -STATIC VOID +STATIC ULONG _StrcpyN(STRPTR destination,STRPTR source,LONG length) { STATIC CONST UWORD code[] = { 0x4EAE,0xFEF2,0x4E75 }; /* jsr -270(a6) ; rts */ diff --git a/library/changes b/library/changes index a2f457b..6e0b679 100644 --- a/library/changes +++ b/library/changes @@ -1,3 +1,8 @@ +- Added 68k stubs to amiga_rexxvars.c for the OS4 build to use. The new code now + works just about exactly like the amiga.lib RVI code used to do, which means + that there is no artificial length limit for the number of characters a string + retrieved may have, and the code is largely reentrant. + - To work around a bug in the Roadshow TCP/IP stack (since fixed), the waitselect() function now substitutes a 10 microsecond timeout for a zero length timeout.