mirror of
https://github.com/cc65/cc65.git
synced 2025-01-12 02:30:44 +00:00
Fix FindInputFormat.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5577 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
3cef75b26c
commit
15a8a51aa2
@ -33,6 +33,8 @@
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
/* common */
|
||||
#include "fileid.h"
|
||||
|
||||
@ -78,14 +80,27 @@ static const FileId FormatTable[] = {
|
||||
|
||||
|
||||
|
||||
static int Compare (const void* Key, const void* Id)
|
||||
/* Compare function for bsearch */
|
||||
{
|
||||
return strcmp (Key, ((const FileId*) Id)->Ext);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int FindInputFormat (const char* Name)
|
||||
/* Find an input format by name. The function returns a value less than zero
|
||||
* if Name is not a known input format.
|
||||
*/
|
||||
{
|
||||
/* Search for the entry in the table */
|
||||
const FileId* F = GetFileId (Name, FormatTable,
|
||||
sizeof (FormatTable) / sizeof (FormatTable[0]));
|
||||
/* Search for the entry in the table. */
|
||||
const FileId* F = bsearch (Name,
|
||||
FormatTable,
|
||||
sizeof (FormatTable) / sizeof (FormatTable[0]),
|
||||
sizeof (FormatTable[0]),
|
||||
Compare);
|
||||
|
||||
/* Return the id or an error code */
|
||||
return (F == 0)? -1 : F->Id;
|
||||
}
|
||||
|
||||
|
@ -118,7 +118,7 @@ static void OptRead (const char* Opt, const char* Arg)
|
||||
const char* Format = GetAttrVal (C, "format");
|
||||
if (Format != 0) {
|
||||
IF = FindInputFormat (Format);
|
||||
if (IF <= 0) {
|
||||
if (IF < 0) {
|
||||
Error ("Unknown input format `%s'", Format);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user