char *ft_itoa(int n) { t_itoa var; var.div = 1; var.cnt = 1; var.neg = 0; var.i = 0; if (n == 0 && ft_zero(&var)) return (var.nb); if (n == -2147483648 && ft_limit_neg(&var)) return (var.nb); if (n == 2147483647 && ft_limit_pos(&var)) return (var.nb); if (n < 0) { n *= -1; var.neg = 1; var.cnt++; } while (var.div <= n && var.cnt++) var.div *= 10; var.div /= 10; ft_alloc_fill(&var, n); return (var.nb); }
int ft_strcmp(const char *s1, const char *s2) { const uint64_t himagic = ((0x80808080L << 16) << 16) | 0x80808080L; const uint64_t lomagic = ((0x01010101L << 16) << 16) | 0x01010101L; const uint64_t *i1; const uint64_t *i2; i1 = (const uint64_t *)s1; i2 = (const uint64_t *)s2; while (42) { if (*i1 != *i2) return (ft_cmp((const char *)(i1), (const char *)(i2))); if (((*i1++ - lomagic) & himagic) && ft_zero((const char *)(i1 - 1))) return (ft_cmp((const char *)(i1 - 1), (const char *)i2)); else if (((*i2++ - lomagic) & himagic) && ft_zero((const char *)(i2 - 1))) return (ft_cmp((const char *)(i1 - 1), (const char *)(i2 - 1))); } }
int ft_print_c(t_env *env) { int i; i = 0; if (env->size && !env->zero && !env->minus && env->quest) i = ft_space(env->size, env); else if (env->size && env->zero && !env->minus && env->quest) i = ft_zero(env->size, env); else if (env->size && env->minus && env->quest) i = ft_minus(env->size, env); else { i = ft_strcmp(env->quest, "0") == -48 ? 1 : ft_strlen(env->quest); write(1, env->quest, ft_strlen(env->quest)); } return (i); }
t_pad ft_getpos2(const char *format, char *to_free, int i, t_pad p) { if (p.pos.max < 0) p.pos.max = 0; if (p.pos.min > -1) { if ((format[i] == 'c' || format[i] == 'C') && to_free[0] == '\0') p.pos.min = ft_atoi(format + p.pos.min) - 1; else if (format[i] != 'S' && format[i] != 's') p.pos.min = ft_atoi(format + p.pos.min) - ft_strlen(to_free); else p.pos.min = ft_atoi(format + p.pos.min); } if (p.pos.type == 1) p.pos.min -= p.pos.prec == 0 ? 0 : p.pos.max; if (p.pos.min < 0) p.pos.min = 0; if (ft_isheren(format, '-', i) == -1 && (ft_isheren(format, '.', i) == -1 || p.pos.type != 1)) p.pos.zero = ft_zero(format, i); p.c[0] = p.pos.zero == 1 ? '0' : ' '; p.c[1] = '\0'; return (p); }
int main(int argc, char **argv) { GError *error = NULL; GtkBuilder *builder; #if defined(_WIN32) && defined(GFT_USE_MANIFEST) { INITCOMMONCONTROLSEX tim; memset(&tim, 0, sizeof tim); tim.dwSize = sizeof tim; tim.dwICC = ICC_ANIMATE_CLASS | ICC_BAR_CLASSES | ICC_COOL_CLASSES | ICC_DATE_CLASSES | ICC_HOTKEY_CLASS | ICC_INTERNET_CLASSES | ICC_LISTVIEW_CLASSES | ICC_NATIVEFNTCTL_CLASS | ICC_PAGESCROLLER_CLASS | ICC_PROGRESS_CLASS | ICC_TAB_CLASSES | ICC_TREEVIEW_CLASSES | ICC_UPDOWN_CLASS | ICC_USEREX_CLASSES | ICC_STANDARD_CLASSES; if(InitCommonControlsEx(&tim) == FALSE) fputs("warning: InitCommomControlsEx() failed\n", stderr); } #endif #ifndef _WIN32 if(signal(SIGCHLD, SIG_IGN) == SIG_ERR) perror("signal(SIGCHLD)"); #endif ft_zero(&ft); ft_async(&ft) = 1; gtk_init(&argc, &argv); /* bail here if !$DISPLAY */ #ifdef _WIN32 { int debug = 0; if(argc == 2){ if(!strcmp(argv[1], "-d")){ debug = 1; fprintf(stderr, "%s: debug on\n", *argv); }else{ usage: fprintf(stderr, "Usage: %s [-d]\n", *argv); return 1; } }else if(argc != 1) goto usage; if(!debug){ fputs("gft: debug off\n", stderr); FreeConsole(); } } #else if(argc != 1){ fprintf(stderr, "Usage: %s\n", *argv); return 1; } #endif builder = gtk_builder_new(); if(gladegen_init()) return 1; if(!gtk_builder_add_from_file(builder, GLADE_XML_FILE, &error)){ g_warning("%s", error->message); /*g_free(error);*/ return 1; } gladegen_term(); if(getobjects(builder)) return 1; gtk_builder_connect_signals(builder, NULL); glist_init(&listTransfers, treeTransfers); /* don't need it anymore */ g_object_unref(G_OBJECT(builder)); /* signal setup */ g_signal_connect(G_OBJECT(winMain), "delete-event" , G_CALLBACK(on_winMain_delete_event), NULL); g_signal_connect(G_OBJECT(winMain), "destroy", G_CALLBACK(on_winMain_destroy), NULL); cfg_read(cboHost); tray_init(winMain, *argv); transfers_init(&listDone, treeDone); gtk_widget_set_sensitive(btnSend, FALSE); drag_init(); cmds(); gtk_widget_show_all(winMain); gtk_main(); tray_term(); return 0; }