void type_dir___show (char *command_line) { int status; wmove (show_pad,0,0); show_pad_info.max_line=-1; search_dir_entries (&action_show,&status); show_pad_info.line=file_info.dir_entry_num-show_pad_info.display_lines/2; refresh_show_pad (); show_dir_status (); }
void type_dir___show (char *command_line) /* We use search_dir_entries to run on all the entries. Each time, action_show will be called to show one entry. */ { int status; wmove (show_pad,0,0); show_pad_info.max_line=-1; search_dir_entries (&action_show,&status); show_pad_info.line=file_info.dir_entry_num-show_pad_info.display_lines/2; refresh_show_pad (); show_dir_status (); }
void type_dir___set (char *command_line) { int found=0; unsigned char *ptr,buffer [80],variable [80],value [80],temp [80]; struct ext2_dir_entry_2 *dir_entry_ptr; dir_entry_ptr=(struct ext2_dir_entry_2 *) (file_info.buffer+file_info.dir_entry_offset); ptr=parse_word (command_line,buffer); if (*ptr==0) { wprintw (command_win,"Error - Missing arguments\n");refresh_command_win (); return; } parse_word (ptr,buffer); ptr=strchr (buffer,'='); if (ptr==NULL) { wprintw (command_win,"Error - Bad syntax\n");refresh_command_win ();return; } strncpy (variable,buffer,ptr-buffer);variable [ptr-buffer]=0; strcpy (value,++ptr); if (strcasecmp ("inode",variable)==0) { found=1; dir_entry_ptr->inode=atol (value); wprintw (command_win,"Variable %s set to %lu\n",variable,dir_entry_ptr->inode);refresh_command_win (); } if (strcasecmp ("rec_len",variable)==0) { found=1; dir_entry_ptr->rec_len=(unsigned int) atol (value); wprintw (command_win,"Variable %s set to %lu\n",variable,dir_entry_ptr->rec_len);refresh_command_win (); } if (strcasecmp ("name_len",variable)==0) { found=1; dir_entry_ptr->name_len=(unsigned int) atol (value); wprintw (command_win,"Variable %s set to %lu\n",variable,dir_entry_ptr->name_len);refresh_command_win (); } if (strcasecmp ("name",variable)==0) { found=1; if (strlen (value) > dir_entry_ptr->name_len) { wprintw (command_win,"Error - Length of name greater then name_len\n"); refresh_command_win ();return; } strncpy (dir_entry_ptr->name,value,strlen (value)); wprintw (command_win,"Variable %s set to %s\n",variable,value);refresh_command_win (); } if (found) { wattrset (show_pad,A_REVERSE); strncpy (temp,dir_entry_ptr->name,dir_entry_ptr->name_len); temp [dir_entry_ptr->name_len]=0; wmove (show_pad,file_info.dir_entry_num,0); wprintw (show_pad,"inode = %-8lu rec_len = %-4lu name_len = %-3lu name = %s\n", dir_entry_ptr->inode,dir_entry_ptr->rec_len,dir_entry_ptr->name_len,temp); wattrset (show_pad,A_NORMAL); show_pad_info.line=file_info.dir_entry_num-show_pad_info.display_lines/2; refresh_show_pad (); show_dir_status (); } else { wprintw (command_win,"Error - Variable %s not found\n",variable); refresh_command_win (); } }