void FontGenerator::getFontNames( NameArray& nameArray ) { for (unsigned int i = 0; i < mFontNames.size(); ++i) { nameArray.push_back(mFontNames[i]); } }
// ----------------------------------------------------------------------------- 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; }
// ---------------------------------------------------------------------------- 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); } }