/* */
/* */
/* */
-/* (C) 1998-2005, Ullrich von Bassewitz */
-/* Rรถmerstrasse 52 */
+/* (C) 1998-2008, Ullrich von Bassewitz */
+/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* Predefined macro packages converted into C strings by a perl script */
+#include "atari.inc"
#include "cbm.inc"
#include "cpu.inc"
#include "generic.inc"
char* Package;
} MacPackages[MAC_COUNT] = {
/* Packages sorted by id */
+ { "atari", MacAtari },
{ "cbm", MacCBM },
{ "cpu", MacCPU },
{ "generic", MacGeneric },
-int MacPackFind (const char* Name)
+int MacPackFind (const StrBuf* Name)
/* Find a macro package by name. The function will either return the id or
* -1 if the package name was not found.
*/
int I;
for (I = 0; I < MAC_COUNT; ++I) {
- if (StrCaseCmp (Name, MacPackages[I].Name) == 0) {
+ if (SB_CompareStr (Name, MacPackages[I].Name) == 0) {
/* Found */
return I;
}
-void MacPackInsert (int Id)
-/* Insert the macro package with the given id in the input stream */
-{
+int MacPackInsert (int Id)
+/* Insert the macro package with the given id in the input stream. Returns
+ * true if the macro package was found and successfully inserted. Returns
+ * false otherwise.
+ */
+{
+ int RetCode;
+
/* Check the parameter */
CHECK (Id >= 0 && Id < MAC_COUNT);
/* Insert the builtin package */
NewInputData (MacPackages[Id].Package, 0);
+ /* Always successful */
+ RetCode = 1;
+
} else {
StrBuf Filename = AUTO_STRBUF_INITIALIZER;
SB_Terminate (&Filename);
/* Open the macro package as include file */
- NewInputFile (SB_GetConstBuf (&Filename));
+ RetCode = NewInputFile (SB_GetConstBuf (&Filename));
/* Destroy the contents of Filename */
- DoneStrBuf (&Filename);
+ SB_Done (&Filename);
}
+
+ /* Return the success code */
+ return RetCode;
}
-void MacPackSetDir (const char* Dir)
+void MacPackSetDir (const StrBuf* Dir)
/* Set a directory where files for macro packages can be found. Standard is
* to use the builtin packages. For debugging macro packages, external files
* can be used.
*/
{
/* Copy the directory name to the buffer */
- SB_CopyStr (&MacPackDir, Dir);
+ SB_Copy (&MacPackDir, Dir);
/* Make sure that the last character is a path delimiter */
if (SB_NotEmpty (&MacPackDir)) {