Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. int cmd_ren(char param[])
  3. {
  4.         char* argv[100];
  5.     int argc;
  6.     /*
  7.         argv[0] - path (abs or rel) to file
  8.         argv[1] - new filename
  9.     */
  10.  
  11.     argc = parameters_prepare(param, argv);
  12.     if (argc != 2)
  13.     {
  14.         #if LANG_ENG
  15.             printf("  ren <file> <new_name>\n\r");
  16.         #elif LANG_RUS
  17.             printf("  ren <ä ©«> <­®¢®¥_¨¬ï>\n\r");
  18.         #endif
  19.         parameters_free(argc, argv);
  20.         return TRUE;
  21.     }
  22.     char *x;
  23.     if (x = strrchr(argv[1], '/') != 0) // argv[1] must be file name, not path
  24.     {
  25.         //printf("%d %s", x, argv[1]);
  26.         return FALSE;
  27.     }
  28.  
  29.     char *new_filename  = (char*)malloc(FILENAME_MAX); new_filename[0] = '\0';
  30.  
  31.     get_file_dir_loc(argv[0], new_filename);
  32.     if (strlen(new_filename) > 0)
  33.     {
  34.         strcat(new_filename, "/");
  35.     }
  36.     strcat(new_filename, argv[1]);
  37.  
  38.     char *mv_params = (char*)malloc(FILENAME_MAX*2 + 1); mv_params[0] = '\0';
  39.     strcat(mv_params, argv[0]);
  40.     strcat(mv_params, " ");
  41.     strcat(mv_params, new_filename);
  42.  
  43.     //printf("(%s)\n", mv_params);
  44.     int res = cmd_mv(mv_params);
  45.  
  46.     free(new_filename);
  47.     free(mv_params);
  48.  
  49.     return res;
  50. }
  51.