bool SVGPathTokenizer::next(std::string &output) { if (m_ipos < m_path.length()) { // Scan forward to first non-space character while (m_ipos < m_path.length() && _isspace(m_path.at(m_ipos))) { m_ipos++; } int start = m_ipos; char c = m_path.at(start); if (_isctrl(c)) { output = m_path.substr(start, 1); m_ipos++; return true; } if (_isnumber(c)) { while (m_ipos < m_path.length() && _isnumber(m_path.at(m_ipos))) { m_ipos++; }; int end = m_ipos; output = m_path.substr(start, end-start); m_ipos++; return true; } } return false; }
void _parsecmd(char cmd[]){ //if(cmd[1] == 'w'){ //switch(strcmp(cmd, if(strcmp(cmd, ":w") == 0){ lft_savefile(filename); saved = 1; }else if(strcmp(cmd, ":q") == 0){ if(!saved){ setdisplay("no write since last change! use :q! to override"); }else{ erase(); refresh(); endwin(); exit(0); } }else if(strcmp(cmd, ":q!") == 0){ erase(); refresh(); endwin(); exit(0); }else if(strcmp(cmd, ":write") == 0){ lft_savefile(filename); saved = 1; }else if(strcmp(cmd, ":wq") == 0 || strcmp(cmd, ":x") == 0){ lft_savefile(filename); saved = 1; erase(); refresh(); endwin(); exit(0); }else if(strcmp(cmd, ":quit") == 0){ erase(); refresh(); endwin(); exit(0); }else if(cmd[1]=='e' && cmd[2]==' '){ // if the file doesn't exist, clear the song if(lft_loadfile(cmd+3)){ initsonglines(); inittracks(); initinstrs(); } //yucky if statement below.....probably better way to do it // maybe this is better?? }else if(!strncmp(cmd+1,"save ",5)){ lft_saveinstrument(cmd+6); setdisplay("d-_-b saved ins! d-_-b"); }else if(!strncmp(cmd+1,"load ",5)){ lft_loadinstrument(cmd+6); setdisplay("d-_-b loaded ins! d-_-b"); }else if( _isnumber((char *)cmd+1,isxdigit) ){ unsigned int goton = 1; xtoi(cmd+1,&goton); switch(currtab){ case 0: songy = (goton>tune->songlen)? tune->songlen-1 : goton; break; case 1: currtrack = (goton>0xff)? 0xff : goton; break; case 2: currinstr = (goton>0xff)? 0xff : goton; break; } }else if(cmd[1] == 'c' && cmd[2] == ' '){ strncpy(comment, cmd+3, sizeof(comment)); }else setdisplay("not a tracker command!"); return; }