Logo Search packages:      
Sourcecode: djvulibre version File versions  Download package

void GIFFManager::del_chunk ( GUTF8String  name )

Will remove chunk with name {name}. You may use dots, colons and brackets to specify the chunk uniquely.

{ Examples:} {verbatim} ;; To remove 2nd DjVu document from DjVm archive use m.delChunk(".DJVM.DJVU[1]"); ;; Same thing without top-level chunk name specification m.delChunk("DJVU[1]"); ;; Same thing for the first DJVU chunk m.delChunk("DJVU"); {verbatim}

Definition at line 464 of file GIFFManager.cpp.

References create(), del_chunk(), GBaseString::length(), GBaseString::search(), and GUTF8String::substr().

Referenced by del_chunk().

  DEBUG_MSG("GIFFManager::del_chunk(): Deleting chunk '" << name << "'\n");
  if (!name.length())
    G_THROW( ERR_MSG("GIFFManager.del_empty") );

  if (name[0]=='.')
    const int next_dot=name.search('.',1);
    if (next_dot < 0)
      if (top_level->check_name(name.substr(1,(unsigned int)-1)))
        DEBUG_MSG("Removing top level chunk..\n");
      G_THROW( ERR_MSG("GIFFManager.wrong_name2") "\t"+name.substr(1,(unsigned int)-1));
    const GUTF8String top_name=name.substr(1,next_dot-1);
    if (!top_level->check_name(top_name))
      G_THROW( ERR_MSG("GIFFManager.wrong_name2") "\t"+top_name);
    name=name.substr(next_dot+1,(unsigned int)-1);
  GP<GIFFChunk> cur_sec=top_level;
  const char * start, * end=(const char *)name-1;
    if (end>start && *end=='.')
      cur_sec=cur_sec->get_chunk(GUTF8String(start, end-start));
    if (!cur_sec)
      G_THROW( ERR_MSG("GIFFManager.cant_find") "\t"+GUTF8String(name));
  } while(*end);
  if (!start[0])
    G_THROW(GUTF8String( ERR_MSG("GIFFManager.malformed") "\t")+name);

Here is the call graph for this function:

Here is the caller graph for this function:

Generated by  Doxygen 1.6.0   Back to index