MacOSX, inform6.33 and Swedish.h language ext won't cooperat

Hi! I’ve recently switched to MacOSX and I’m trying to compile an old (working) inform game using the Swedish.h extension but I am getting errors I cannot quite understand:

inform +$INFLIBS game
Inform 6.33 for Unix (10th May 2014)
"/Users/myname/if/libs/Swedish.h", line 135: Error:  Expected new global variable name but found caps_mode
> Global caps_mode
"/Users/myname/if/libs/Swedish.h", line 135: Error:  Expected ';' but found Global
> Global
"/Users/myname/if/libs/parserm.h", line 664: Error:  Expected constant but found <expression>
>         short_name  YOURSELF__TX,

Looking inside the Swedish.h reveals:

Constant LanguageVersion = "Översättning av biblioteket till svenska v1.6 (c) Fredrik Ramsberg 2003-2008";

Global caps_mode;
Global transcribe_mode;

It compiles just fine in a windows environment, so there is nothing wrong with the code. Anyone has a clue what’s going on?
The compiler I’m using is: … -b2.tar.gz

It’s the Unix version, so it should be compatible with MacOSX I guess?

Are you sure you’re using the same library files on Mac and Windows?

What is $INFLIBS? Does it point to the right thing?

That error is what I’d expect if you included a header file twice.


What I can tell so far:

I’ve compiled the source of the inform compiler from the link above under OSX 10.9.4 – and I managed to successfully compile a source story file together with the German library.

The inform-6.33b2 file was automatically located under usr/local/bin … and I’ve put the source of the story file together with the german library files into a separate folder (currently located on my desktop). I’ve compiled via a terminal shell script (.command) which contains the following lines:

cd dirname $BASH_SOURCE
inform-6.33b2 -D WHATEVER.inf

Hope this helps,

I tried building the Swedish bas.inf, including the 6/12 libraries and the Swedish library directory:

inform-6.33.1-b2/src/inform -D +inform-6.33.1-b2/lib,swedish_inform swedish_inform/bas.inf

I got the same error. However, if I compiled using the old 6/11 libraries, it worked. So this is a compatibility issue between the Swedish library files and the 6/12 library files.

I don’t know enough about 6/12 to say whether this is a bug or a deliberate change. But if you want to keep developing the same project, you should stick with the 6/11 libraries.

(It’s safe – in fact recommended – to use the 6.33 compiler. We’ve kept backwards compatibility for the compiler. But the Inform library does not maintain backwards compatibility across releases; it never has.)

Yes, that did it Zarf! Thank you! :slight_smile:

There were some changes in 6/12 that concerned definite and indefinite forms in Swedish. The relevant Mantis ticket is Is this helpful? I would like to see the sample game and the version of Swedish.h so I can see if I can work out what needs to be changed.