Exemplo n.º 1
0
 void FontGenerator::getFontNames( NameArray& nameArray )
 {
     for (unsigned int i = 0; i < mFontNames.size(); ++i)
     {
         nameArray.push_back(mFontNames[i]);
     }
 }
Exemplo n.º 2
0
// -----------------------------------------------------------------------------
File::NameArray File::ExpandToFilenames(std::string const& fnameArg) {
  NameArray fnames;
#ifdef _WIN32
  fnames.push_back( fnameArg );
#else
  if (fnameArg.empty()) return fnames;
  wordexp_t expanded;
  int err = wordexp( fnameArg.c_str(), &expanded, WRDE_NOCMD );
  WexpErr( err );
  if ( err == 0 ) {
    for (unsigned int i = 0; i != expanded.we_wordc; i++) {
      if (expanded.we_wordv[i] == 0)
        mprinterr("Internal Error: Bad expansion at %i\n", i);
      else {
        FileName fn;
        fn.SetFileName_NoExpansion( expanded.we_wordv[i] );
        fnames.push_back( fn );
      }
    }
    wordfree( &expanded );
  }
#endif /* _WIN32 */
  return fnames;
}
Exemplo n.º 3
0
// ----------------------------------------------------------------------------
void DNA::parse(char *dp)
{
    /// dna tables
    int *ip = (int *)dp;

    if (strncmp(dp, "SDNA", 4)==0)
    {
        // skip ++ NAME
        ip++; ip++;
    }

    // -- Name Section --

    m_names.reserve(*ip++);
    char *bp = (char *)ip;

    size_t len = m_names.capacity();
    for (size_t i=0; i<len; i++)
    {
        hgString id;
        while (*bp) id.push_back(*bp++);
        ++bp;
        m_names.push_back(id);
    }

    size_t balign;

    balign = (size_t)bp;
    balign = (balign + 3) & ~3;
    ip = (int *)balign;

    // -- Type Section --
    bp = (char *)ip;
    assert(strncmp(bp, "TYPE", 4)==0); ip++;


    m_types.reserve(*ip++);
    bp = (char *)ip;

    len = m_types.capacity();
    for (size_t i=0; i<len; i++)
    {
        hgString id;
        while (*bp) id.push_back(*bp++);
        ++bp;

        m_types.push_back(id);
    }

    balign = (size_t)bp;
    balign = (balign + 3) & ~3;
    ip = (int *)balign;

    // -- Type Length Section --
    bp = (char *)ip;
    assert(strncmp(bp, "TLEN", 4)==0); ip++;

    m_lens.reserve(m_types.capacity());

    short *sp = (short *)ip;
    len = m_lens.capacity();
    for (size_t i=0; i<len; i++)
        m_lens.push_back(*sp++);

    balign = (size_t)sp;
    balign = (balign + 3) & ~3;
    ip = (int *)balign;

    bp = (char *)ip;
    assert(strncmp(bp, "STRC", 4)==0); ip++;

    m_structs.reserve(*ip++);

    short *strc = (short *)ip;

    len = m_structs.capacity();
    m_structType.resize(m_types.size());

    for (size_t i=0; i<len; i++)
    {
        m_structs.push_back(strc);

        const char *id = m_types[strc[0]].c_str();
        if (m_ptrSize== 0 && !strcmp(id, "ListBase"))
            m_ptrSize = m_lens[strc[0]]/2;

        m_structType[strc[0]] = i;

        size_t nr = strc[1];
        strc += 2;
        strc += (nr * 2);
    }
}