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 ); }
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 ); }