Beispiel #1
0
static bool DumpResource( WResDirWindow wind, WResFileID handle, uint_16 os )
/***************************************************************************/
{
    bool            error;
    char            resname[15];
    char            typename[20];
    WResTypeInfo    *type;
    WResResInfo     *res;
    WResLangInfo    *lang;

    type = WResGetTypeInfo( wind );
    res = WResGetResInfo( wind );
    lang = WResGetLangInfo( wind );

    if( CmdLineParms.Type != NULL ) {
        if( !WResIDCmp( CmdLineParms.Type, &(type->TypeName) ) ) {
            return( false );
        }
    }
    if( CmdLineParms.Name != NULL ) {
        if( !WResIDCmp( CmdLineParms.Name, &(res->ResName) ) ) {
            return( false );
        }
    }

    ConvertIDToStr( &(res->ResName), resname, 15 );
    ConvertTypeIDToStr( &(type->TypeName), typename, 20 );

    fprintf( stdout, "%-20.20s  %-15.15s  0x%04X 0x%02X  ", typename,
                resname, (int)lang->lang.lang, (int)lang->lang.sublang );
    PrintUint16Flags( lang->MemoryFlags, MemFlagsOnList, MemFlagsOffList, 53 );

    if( CmdLineParms.DumpContents ) {
        error = DumpContents( type, res, lang, handle, os );
        if( error ) {
            return( true );
        }
    }

    return( false );
}
Beispiel #2
0
WResResNode *WdeRenameWResResNode( WResTypeNode *tnode, WResResNode *rnode, WResID *name )
{
    WResResNode *new_rnode;

    if( tnode == NULL || rnode == NULL || name == NULL ) {
        return( NULL );
    }

    // check if the names are already the same
    if( WResIDCmp( &rnode->Info.ResName, name ) ) {
        return( rnode );
    }

    new_rnode = WdeAllocWResResNode( rnode->Info.NumResources, name );

    if( new_rnode != NULL ) {
        if( tnode->Head == rnode ) {
            tnode->Head = new_rnode;
        }
        if( tnode->Tail == rnode ) {
            tnode->Tail = new_rnode;
        }
        new_rnode->Head = rnode->Head;
        new_rnode->Tail = rnode->Tail;
        new_rnode->Next = rnode->Next;
        new_rnode->Prev = rnode->Prev;
        if( rnode->Prev != NULL ) {
            rnode->Prev->Next = new_rnode;
        }
        if( rnode->Next != NULL ) {
            rnode->Next->Prev = new_rnode;
        }
        WRMemFree( rnode );
    }

    return( new_rnode );
}