char * unescape_tag(char * tag) { modifyString(tag, "&amp;", "&", 0); modifyString(tag, "&amp;lt;", "<", 0); modifyString(tag, "&lt;", "<", 0); modifyString(tag, "&amp;gt;", ">", 0); modifyString(tag, "&gt;", ">", 0); return tag; }
char * escape_tag(const char *tag) { char *esc_tag = NULL; if( strchr(tag, '&') || strchr(tag, '<') || strchr(tag, '>') ) { esc_tag = strdup(tag); esc_tag = modifyString(esc_tag, "&", "&amp;", 0); esc_tag = modifyString(esc_tag, "<", "&lt;", 0); esc_tag = modifyString(esc_tag, ">", "&gt;", 0); } return esc_tag; }
char * escape_tag(const char *tag, int force_alloc) { char *esc_tag = NULL; if( strchr(tag, '&') || strchr(tag, '<') || strchr(tag, '>') || strchr(tag, '"') ) { esc_tag = strdup(tag); esc_tag = modifyString(esc_tag, "&", "&amp;", 0); esc_tag = modifyString(esc_tag, "<", "&lt;", 0); esc_tag = modifyString(esc_tag, ">", "&gt;", 0); esc_tag = modifyString(esc_tag, "\"", "&quot;", 0); } else if( force_alloc ) esc_tag = strdup(tag); return esc_tag; }
char * unescape_tag(const char *tag, int force_alloc) { char *esc_tag = NULL; if( strstr(tag, "&") || strstr(tag, "<") || strstr(tag, ">") || strstr(tag, """) ) { esc_tag = strdup(tag); esc_tag = modifyString(esc_tag, "&", "&", 1); esc_tag = modifyString(esc_tag, "<", "<", 1); esc_tag = modifyString(esc_tag, ">", ">", 1); esc_tag = modifyString(esc_tag, """, "\"", 1); } else if( force_alloc ) esc_tag = strdup(tag); return esc_tag; }
void doSthBefore(int pid) { struct pt_regs regs; int sysCallNumber = 0; ptrace(PTRACE_GETREGS,pid,NULL,®s); sysCallNumber = getSystemCallNumber(pid,®s); printf("before syscallno: %d\n", sysCallNumber); if(sysCallNumber == __NR_write){ printf("__NR_write << %ld, %p, %ld\n",regs.ARM_r0, (void*)regs.ARM_r1, regs.ARM_r2); modifyString(pid,regs.ARM_r1,regs.ARM_r2); } }
int main(int argc, char const ** argv) { // Parse the command line. ModifyStringOptions options; seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv); // If parsing was not successful then exit with code 1 if there were errors. // Otherwise, exit with code 0 (e.g. help was printed). if (res != seqan::ArgumentParser::PARSE_OK) return res == seqan::ArgumentParser::PARSE_ERROR; std::cout << modifyString(options.text, options) << '\n'; return 0; }
int fill_playlists() { int rows, i, found, len; char **result; char *plpath, *plname, *fname; char class[] = "playlistContainer"; struct song_metadata plist; struct stat file; char type[4]; sqlite_int64 plID, detailID; char sql_buf[1024] = "SELECT ID, NAME, PATH from PLAYLISTS where ITEMS > FOUND"; if( sql_get_table(db, sql_buf, &result, &rows, NULL) != SQLITE_OK ) return -1; if( !rows ) { sqlite3_free_table(result); return 0; } rows++; for( i=3; i<rows*3; i++ ) { plID = strtoll(result[i], NULL, 10); plname = result[++i]; plpath = result[++i]; strncpy(type, strrchr(plpath, '.')+1, 4); if( start_plist(plpath, NULL, &file, NULL, type) != 0 ) continue; DPRINTF(E_DEBUG, L_SCANNER, "Scanning playlist \"%s\" [%s]\n", plname, plpath); if( sql_get_int_field(db, "SELECT ID from OBJECTS where PARENT_ID = '"MUSIC_PLIST_ID"'" " and NAME = '%q'", plname) <= 0 ) { detailID = GetFolderMetadata(plname, NULL, NULL, NULL, NULL); sql_exec(db, "INSERT into OBJECTS" " (OBJECT_ID, PARENT_ID, DETAIL_ID, CLASS, NAME) " "VALUES" " ('%s$%llX', '%s', %lld, 'container.%s', '%q')", MUSIC_PLIST_ID, plID, MUSIC_PLIST_ID, detailID, class, plname); } plpath = dirname(plpath); found = 0; while( next_plist_track(&plist, &file, NULL, type) == 0 ) { if( sql_get_int_field(db, "SELECT 1 from OBJECTS where OBJECT_ID = '%s$%llX$%d'", MUSIC_PLIST_ID, plID, plist.track) == 1 ) { //DEBUG DPRINTF(E_DEBUG, L_SCANNER, "%d: already in database\n", plist.track); found++; freetags(&plist); continue; } fname = plist.path; DPRINTF(E_DEBUG, L_SCANNER, "%d: checking database for %s\n", plist.track, plist.path); if( !strpbrk(fname, "\\/") ) { len = strlen(fname) + strlen(plpath) + 2; plist.path = malloc(len); snprintf(plist.path, len, "%s/%s", plpath, fname); free(fname); fname = plist.path; } else { while( *fname == '\\' ) { fname++; } } retry: //DEBUG DPRINTF(E_DEBUG, L_SCANNER, "* Searching for %s in db\n", fname); detailID = sql_get_int_field(db, "SELECT ID from DETAILS where PATH like '%%%q'", fname); if( detailID > 0 ) { DPRINTF(E_DEBUG, L_SCANNER, "+ %s found in db\n", fname); sql_exec(db, "INSERT into OBJECTS" " (OBJECT_ID, PARENT_ID, CLASS, DETAIL_ID, NAME, REF_ID) " "SELECT" " '%s$%llX$%d', '%s$%llX', CLASS, DETAIL_ID, NAME, OBJECT_ID from OBJECTS" " where DETAIL_ID = %lld and OBJECT_ID glob '" BROWSEDIR_ID "$*'", MUSIC_PLIST_ID, plID, plist.track, MUSIC_PLIST_ID, plID, detailID); found++; } else { DPRINTF(E_DEBUG, L_SCANNER, "- %s not found in db\n", fname); if( strchr(fname, '\\') ) { fname = modifyString(fname, "\\", "/", 0); goto retry; } else if( (fname = strchr(fname, '/')) ) { fname++; goto retry; } } freetags(&plist); } sql_exec(db, "UPDATE PLAYLISTS set FOUND = %d where ID = %lld", found, plID); }