int parse_simple(char *start, char *end, Atom *result) { char *p; int value = strtoimax(start, &p, 10); /*it is integer*/ if(p == end) { result->type = ATOM_INTEGER; result->value.integer = value; //return true; return ERROR_OK; } /*nil or symbol*/ char *buf = malloc(end - start + 1); p = buf; while(start != end) { *p++= *start++; } *p = '\0'; /*convert to uppercase*/ convertToUpperCase(buf); if(strcmp(buf, "NIL") == 0) *result = nil; else *result = make_symbol(buf); free(buf); return ERROR_OK; }
int main(int argc, char *argv[]) { char *instruction = *(argv + 2); char *input = *(argv + 1); switch(*instruction) { case '1': convertToInt(input); break; case '2': convertToFloat(input); break; case '3': convertToUpperCase(input); break; case '4': revString(input); break; case '5': palindrome(input); break; default: printf("Error: \"%s\" was an invalid input.\n", argv[2]); } return 0; }
static struct query array_queryname(void *self, void *target){ int i; size_t length; struct query results = {-1,0}; if (self == 0 || target == 0){ results.success = -1; results.ncomparisons = 0; return results; } CountryStorage *rs = (CountryStorage *) self; for (i = 1; i <= rs->maxid; i++){ results.ncomparisons++; if(rs->countries[i] != 0){ length = sizeof (rs->countries[i]->name); int cond,diff; char *current = strndup(rs->countries[i]->name, length); char *pt = strdup(current); strncpy(pt, (char *)target, length); if ((diff = length - strlen(pt)) > 0) memset((void *)(pt + (length - diff)), (unsigned char) ' ', diff); convertToUpperCase(current); convertToUpperCase(pt); cond = strncmp(current, pt, length); free(current); free(pt); if (cond == 0){ prettyprint(rs->countries[i]); results.success = 1; return results; } } } printf("ERROR - NO COUNTRY WITH NAME: %s.\n", (char *) target); return results; }
void SelecionarArquivo(char *titulo, char *botao, void (*func)(char *), char *extensoes) { char exts[512], ext1[128],ext2[128]; GtkFileFilter *filter; GtkWidget *fileSelect=gtk_file_chooser_dialog_new(titulo, NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, botao, GTK_RESPONSE_ACCEPT, NULL); if (extensoes) { strncpy(exts,extensoes,512); char *pch = strtok(exts," "); while (pch != NULL) { sprintf(ext1, "*.%s", pch); convertToUpperCase(pch); sprintf(ext2, "Arquivos %s", pch); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter,ext2); gtk_file_filter_add_pattern(filter, ext1); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileSelect), filter); pch = strtok(NULL," "); } } filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter,"Todos os arquivos"); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileSelect), filter); if (gtk_dialog_run(GTK_DIALOG (fileSelect)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fileSelect)); func(filename); g_free (filename); } gtk_widget_destroy(fileSelect); }