コード例 #1
0
//*
//* MAKE NEW FOLDER
//*
byte auia_newfolder(AUI_VARSP v) {
  byte redoing = 0;
  char new_folder_name[256];
  snprintf(new_folder_name, 256, "New Folder");
  byte dispatch_ret = 1;
  
  do {
    redoing = 0;
    dispatch_ret = 1;
    char * ret =
      aw_ime(v->hWin, new_folder_name, alang_get("newfolder"));
      
    if (ret != NULL) {
      if (strlen(ret) == 0) {
        redoing = aw_confirm(v->hWin,
                             alang_get("newfolder"),
                             alang_get
                             ("newfolder.insertname"),
                             aui_icons(37),
                             alang_get("tryagain"),
                             alang_get("cancel"));
      }
      else {
        char * path_newfolder = NULL;
        aui_setpath(&path_newfolder, v->path, ret, 0);
        
        if (path_newfolder != NULL) {
          if (file_exists(path_newfolder)) {
            redoing = aw_confirm(v->hWin,
                                 alang_get
                                 ("newfolder"),
                                 alang_get
                                 ("newfolder.exist"),
                                 aui_icons
                                 (39),
                                 alang_get
                                 ("tryagain"),
                                 alang_get
                                 ("cancel"));
          }
          else {
            int retval =
              mkdir(path_newfolder, 0777);
              
            if (retval == 0) {
              dispatch_ret = 0;
              v->reshow = 1;
              snprintf(v->selfile,
                       256, "%s",
                       ret);
            }
            else {
              redoing =
                aw_confirm(v->hWin,
                           alang_get
                           ("newfolder"),
                           alang_get
                           ("newfolder.error"),
                           aui_icons
                           (37),
                           alang_get
                           ("tryagain"),
                           alang_get
                           ("cancel"));
            }
          }
          
          free(path_newfolder);
        }
      }
      
      snprintf(new_folder_name, 256, "%s", ret);
      free(ret);
    }
  }
  while (redoing);
  
  return dispatch_ret;
}
コード例 #2
0
//* 
//* ONHOLD
//*
//* 
//* MAKE NEW FOLDER
//*
byte auia_hold_rename(AUI_VARSP v, char *oldname)
{
	byte redoing = 0;
	char new_folder_name[256];
	snprintf(new_folder_name, 256, oldname);
	byte dispatch_ret = 1;
	do {
		redoing = 0;
		dispatch_ret = 1;
		char *ret =
		    aw_ime(v->hWin, new_folder_name, alang_get("rename"));
		if (ret != NULL) {
			if (strlen(ret) == 0) {
				redoing = aw_confirm(v->hWin,
						     alang_get("rename"),
						     alang_get
						     ("rename.insertname"),
						     aui_icons(37),
						     alang_get("tryagain"),
						     alang_get("cancel"));
			} else if (strcmp(ret, oldname) == 0) {
				redoing = 0;
			} else {
				char *path_newfolder = NULL;
				aui_setpath(&path_newfolder, v->path, ret, 0);
				if (path_newfolder != NULL) {
					if (file_exists(path_newfolder)) {
						redoing = aw_confirm(v->hWin,
								     alang_get
								     ("rename"),
								     alang_get
								     ("rename.exist"),
								     aui_icons
								     (39),
								     alang_get
								     ("tryagain"),
								     alang_get
								     ("cancel"));
					} else {
						char *path_oldfolder = NULL;
						aui_setpath(&path_oldfolder,
							    v->path, oldname,
							    0);

						if (path_oldfolder) {
							int retval =
							    rename
							    (path_oldfolder,
							     path_newfolder);
							if (retval != -1) {
								dispatch_ret =
								    0;
								v->reshow = 1;
								snprintf(v->
									 selfile,
									 256,
									 "%s",
									 ret);
							} else {
								redoing =
								    aw_confirm
								    (v->hWin,
								     alang_get
								     ("rename"),
								     alang_get
								     ("rename.error"),
								     aui_icons
								     (37),
								     alang_get
								     ("tryagain"),
								     alang_get
								     ("cancel"));
							}
							free(path_oldfolder);
						}
					}
					free(path_newfolder);
				}
			}
			snprintf(new_folder_name, 256, ret);
			free(ret);
		}
	}
	while (redoing);
	return dispatch_ret;
}