diff -u --minimal --recursive --new-file lang/ficl.orig/Makefile lang/ficl/Makefile --- lang/ficl.orig/Makefile 2020-08-27 15:23:53.142891000 +0300 +++ lang/ficl/Makefile 2020-08-27 15:32:43.898285000 +0300 @@ -3,7 +3,7 @@ PORTNAME= ficl PORTVERSION= 4.1.0 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= lang MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-all/${PORTNAME}${PORTVERSION:C/([[:digit:]]+\.[[:digit:]]+)\.0/\1/} @@ -15,10 +15,10 @@ LICENSE_TEXT= Description of the license can be obtained from the following URL: http://ficl.sourceforge.net/license.html LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept -OPTIONS_DEFINE= DOCS - -ONLY_FOR_ARCHS= i386 amd64 +ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= this port is not tested on anything other than i386 and amd64 + +OPTIONS_DEFINE= DOCS USE_LDCONFIG= YES diff -u --minimal --recursive --new-file lang/ficl.orig/files/patch-dictionary.c lang/ficl/files/patch-dictionary.c --- lang/ficl.orig/files/patch-dictionary.c 2020-08-27 15:23:53.147018000 +0300 +++ lang/ficl/files/patch-dictionary.c 2020-08-27 15:32:43.898933000 +0300 @@ -1,6 +1,24 @@ --- dictionary.c.orig 2010-09-12 15:14:52 UTC +++ dictionary.c -@@ -662,7 +662,7 @@ void ficlDictionarySee(ficlDictionary *d +@@ -199,7 +199,7 @@ char *ficlDictionaryAppendString(ficlDictionary *dicti + if (length > FICL_NAME_LENGTH) + length = FICL_NAME_LENGTH; + +- return ficlDictionaryAppendData(dictionary, data, length); ++ return ficlDictionaryAppendData(dictionary, data, length); + } + + +@@ -542,7 +542,7 @@ int ficlDictionaryIsAWord(ficlDictionary *dictionary, + if (!ficlDictionaryIncludes(dictionary, word->name)) + return 0; + +- if ((word->link != NULL) && !ficlDictionaryIncludes(dictionary, word->link)) ++ if ((word->link != NULL) && !ficlDictionaryIncludes(dictionary, word->link)) + return 0; + + if ((word->length <= 0) || (word->name[word->length] != '\0')) +@@ -662,7 +662,7 @@ void ficlDictionarySee(ficlDictionary *dictionary, fic *trace++ = '>'; else *trace++ = ' '; @@ -9,7 +27,7 @@ if (ficlDictionaryIsAWord(dictionary, word)) { -@@ -676,7 +676,7 @@ void ficlDictionarySee(ficlDictionary *d +@@ -676,7 +676,7 @@ void ficlDictionarySee(ficlDictionary *dictionary, fic break; case FICL_WORDKIND_INSTRUCTION_WITH_ARGUMENT: c = *++cell; @@ -18,7 +36,7 @@ break; case FICL_WORDKIND_INSTRUCTION_WORD: sprintf(trace, "%s :: executes %s (instruction word %ld)", word->name, ficlDictionaryInstructionNames[(long)word->code], (long)word->code); -@@ -687,20 +687,20 @@ void ficlDictionarySee(ficlDictionary *d +@@ -687,20 +687,20 @@ void ficlDictionarySee(ficlDictionary *dictionary, fic { ficlWord *word = (ficlWord *)c.p; sprintf(trace, "%.*s ( %#lx literal )", @@ -43,7 +61,7 @@ break; #endif /* FICL_WANT_FLOAT */ case FICL_WORDKIND_STRING_LITERAL: -@@ -719,32 +719,32 @@ void ficlDictionarySee(ficlDictionary *d +@@ -719,32 +719,32 @@ void ficlDictionarySee(ficlDictionary *dictionary, fic break; case FICL_WORDKIND_BRANCH0: c = *++cell; @@ -83,7 +101,7 @@ break; default: sprintf(trace, "%.*s", word->length, word->name); -@@ -754,7 +754,7 @@ void ficlDictionarySee(ficlDictionary *d +@@ -754,7 +754,7 @@ void ficlDictionarySee(ficlDictionary *dictionary, fic } else /* probably not a word - punt and print value */ { diff -u --minimal --recursive --new-file lang/ficl.orig/files/patch-ficlplatform_unix.h lang/ficl/files/patch-ficlplatform_unix.h --- lang/ficl.orig/files/patch-ficlplatform_unix.h 1970-01-01 03:00:00.000000000 +0300 +++ lang/ficl/files/patch-ficlplatform_unix.h 2020-08-27 15:34:39.163790000 +0300 @@ -0,0 +1,11 @@ +--- ficlplatform/unix.h.orig 2020-08-27 12:17:03 UTC ++++ ficlplatform/unix.h +@@ -13,7 +13,7 @@ + #else + #define FICL_PLATFORM_ALIGNMENT (4) + #endif +-#define FICL_PLATFORM_INLINE inline ++#define FICL_PLATFORM_INLINE extern inline + + #define FICL_PLATFORM_HAS_FTRUNCATE (1) + #if defined(__amd64__) diff -u --minimal --recursive --new-file lang/ficl.orig/files/patch-primitives.c lang/ficl/files/patch-primitives.c --- lang/ficl.orig/files/patch-primitives.c 2020-08-27 15:23:53.148809000 +0300 +++ lang/ficl/files/patch-primitives.c 2020-08-27 15:32:43.899684000 +0300 @@ -1,6 +1,6 @@ --- primitives.c.orig 2010-09-13 18:43:04 UTC +++ primitives.c -@@ -487,7 +487,7 @@ static void ficlPrimitiveSprintf(ficlVm +@@ -487,7 +487,7 @@ static void ficlPrimitiveSprintf(ficlVm *vm) /* */ ficlStackPushPointer(vm->dataStack, bufferStart); ficlStackPushInteger(vm->dataStack, buffer - bufferStart); @@ -9,7 +9,7 @@ } -@@ -1350,7 +1350,7 @@ static void ficlPrimitiveSetObjectFlag(f +@@ -1350,7 +1350,7 @@ static void ficlPrimitiveSetObjectFlag(ficlVm *vm) static void ficlPrimitiveIsObject(ficlVm *vm) { @@ -18,3 +18,23 @@ ficlWord *word = (ficlWord *)ficlStackPopPointer(vm->dataStack); flag = ((word != NULL) && (word->flags & FICL_WORD_OBJECT)) ? FICL_TRUE : FICL_FALSE; +@@ -2785,8 +2785,8 @@ TO_GLOBAL: + if (!word) + ficlVmThrowError(vm, "%.*s not found", FICL_STRING_GET_LENGTH(name), FICL_STRING_GET_POINTER(name)); + +- switch ((ficlInstruction)word->code) +- { ++ switch ((ficlInstruction)word->code) ++ { + case ficlInstructionConstantParen: + instruction = ficlInstructionStore; + stack = vm->dataStack; +@@ -2814,7 +2814,7 @@ TO_GLOBAL: + ficlVmThrowError(vm, "to %.*s : value/constant is of unknown type", FICL_STRING_GET_LENGTH(name), FICL_STRING_GET_POINTER(name)); + return; + } +- } ++ } + + if (vm->state == FICL_VM_STATE_INTERPRET) + { diff -u --minimal --recursive --new-file lang/ficl.orig/pkg-descr lang/ficl/pkg-descr --- lang/ficl.orig/pkg-descr 2020-08-27 15:23:53.144084000 +0300 +++ lang/ficl/pkg-descr 2020-08-27 15:32:43.899951000 +0300 @@ -1,7 +1,5 @@ FICL is an extremely lightweight, fast, portable implementation of FORTH which can be bound to C functions or even embedded within C/assembler -programs. This is a port for the current version of FICL. Older versions -can typically be found in /usr/src/sys/boot/ficl on FreeBSD with the -bindings needed by the OS loader. +programs. Ficl is an acronym for "Forth Inspired Command Language". WWW: http://ficl.sourceforge.net/