| File ChangeLog changed (mode: 100644) (index 44e20bc98..310a265da) | 
	| 70 | 70 | Added detection of file handlers with GTK+ or libmagic and .desktop files | Added detection of file handlers with GTK+ or libmagic and .desktop files | 
	| 71 | 71 | (it works only for :file command). | (it works only for :file command). | 
	| 72 | 72 |  |  | 
	|  | 73 |  | Added C command (clone file). | 
	|  | 74 |  |  | 
	| 73 | 75 | Changed keys input handling. | Changed keys input handling. | 
	| 74 | 76 |  |  | 
	| 75 | 77 | Changed force dot files appear at the beginning of file list. | Changed force dot files appear at the beginning of file list. | 
| File src/fileops.c changed (mode: 100644) (index d002142ce..76b3d95e1) | 
	| ... | ... | yank_selected_files(FileView *view, int reg) | 
	| 178 | 178 |  |  | 
	| 179 | 179 | for(x = 0; x < view->selected_files; x++) | for(x = 0; x < view->selected_files; x++) | 
	| 180 | 180 | { | { | 
	| 181 |  | if(view->selected_filelist[x]) |  | 
	| 182 |  | { |  | 
	| 183 |  | char buf[PATH_MAX]; |  | 
	| 184 |  | namelen = strlen(view->selected_filelist[x]); |  | 
	| 185 |  | snprintf(buf, sizeof(buf), "%s/%s", view->curr_dir, |  | 
	| 186 |  | view->selected_filelist[x]); |  | 
	| 187 |  | append_to_register(reg, buf); |  | 
	| 188 |  | } |  | 
	| 189 |  | else |  | 
	| 190 |  | { |  | 
	| 191 |  | x--; |  | 
	|  | 181 |  | if(!view->selected_filelist[x]) | 
	| 192 | 182 | break; | break; | 
	| 193 |  | } |  | 
	|  | 183 |  |  | 
	|  | 184 |  | char buf[PATH_MAX]; | 
	|  | 185 |  | namelen = strlen(view->selected_filelist[x]); | 
	|  | 186 |  | snprintf(buf, sizeof(buf), "%s/%s", view->curr_dir, | 
	|  | 187 |  | view->selected_filelist[x]); | 
	|  | 188 |  | append_to_register(reg, buf); | 
	| 194 | 189 | } | } | 
	| 195 | 190 | } | } | 
	| 196 | 191 |  |  | 
|  | 
	| ... | ... | put_files_from_register(FileView *view, int name, int force_move) | 
	| 957 | 952 | return 1; | return 1; | 
	| 958 | 953 | } | } | 
	| 959 | 954 |  |  | 
	|  | 955 |  | void | 
	|  | 956 |  | clone_file(FileView* view) | 
	|  | 957 |  | { | 
	|  | 958 |  | char buf[PATH_MAX + NAME_MAX*2 + 4]; | 
	|  | 959 |  | char *escaped; | 
	|  | 960 |  | const char *filename; | 
	|  | 961 |  |  | 
	|  | 962 |  | filename = get_current_file_name(view); | 
	|  | 963 |  | if(strcmp(filename, ".") == 0) | 
	|  | 964 |  | return; | 
	|  | 965 |  | if(strcmp(filename, "..") == 0) | 
	|  | 966 |  | return; | 
	|  | 967 |  |  | 
	|  | 968 |  | if(view->dir_entry[view->list_pos].type == DIRECTORY) | 
	|  | 969 |  | escaped = escape_filename(filename, strlen(filename) - 1, 1); | 
	|  | 970 |  | else | 
	|  | 971 |  | escaped = escape_filename(filename, strlen(filename), 1); | 
	|  | 972 |  | snprintf(buf, sizeof(buf), "cp -pR %s %s_clone", escaped, escaped); | 
	|  | 973 |  | background_and_wait_for_errors(buf); | 
	|  | 974 |  | free(escaped); | 
	|  | 975 |  | } | 
	|  | 976 |  |  | 
	| 960 | 977 | /* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab : */ | /* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab : */ | 
| File src/fileops.h changed (mode: 100644) (index 476a67543..a31cc0229) | 
	| ... | ... | void change_owner(FileView *view); | 
	| 54 | 54 | void change_group(FileView *view); | void change_group(FileView *view); | 
	| 55 | 55 | /* Returns new value for save_msg flag. */ | /* Returns new value for save_msg flag. */ | 
	| 56 | 56 | int put_files_from_register(FileView *view, int name, int force_move); | int put_files_from_register(FileView *view, int name, int force_move); | 
	|  | 57 |  | void clone_file(FileView* view); | 
	| 57 | 58 |  |  | 
	| 58 | 59 | #endif | #endif | 
	| 59 | 60 |  |  | 
| File src/normal.c changed (mode: 100644) (index b600f9d15..ac90ab75e) | 
	| ... | ... | static void cmd_colon(struct key_info, struct keys_info *); | 
	| 76 | 76 | static void cmd_semicolon(struct key_info, struct keys_info *); | static void cmd_semicolon(struct key_info, struct keys_info *); | 
	| 77 | 77 | static void cmd_slash(struct key_info, struct keys_info *); | static void cmd_slash(struct key_info, struct keys_info *); | 
	| 78 | 78 | static void cmd_question(struct key_info, struct keys_info *); | static void cmd_question(struct key_info, struct keys_info *); | 
	|  | 79 |  | static void cmd_C(struct key_info, struct keys_info *); | 
	| 79 | 80 | static void cmd_F(struct key_info, struct keys_info *); | static void cmd_F(struct key_info, struct keys_info *); | 
	| 80 | 81 | static void find_F(int ch); | static void find_F(int ch); | 
	| 81 | 82 | static void cmd_G(struct key_info, struct keys_info *); | static void cmd_G(struct key_info, struct keys_info *); | 
|  | 
	| ... | ... | init_normal_mode(int *key_mode) | 
	| 251 | 252 | curr = add_cmd(L"?", NORMAL_MODE); | curr = add_cmd(L"?", NORMAL_MODE); | 
	| 252 | 253 | curr->data.handler = cmd_question; | curr->data.handler = cmd_question; | 
	| 253 | 254 |  |  | 
	|  | 255 |  | curr = add_cmd(L"C", NORMAL_MODE); | 
	|  | 256 |  | curr->data.handler = cmd_C; | 
	|  | 257 |  |  | 
	| 254 | 258 | curr = add_cmd(L"F", NORMAL_MODE); | curr = add_cmd(L"F", NORMAL_MODE); | 
	| 255 | 259 | curr->type = BUILDIN_WAIT_POINT; | curr->type = BUILDIN_WAIT_POINT; | 
	| 256 | 260 | curr->data.handler = cmd_F; | curr->data.handler = cmd_F; | 
|  | 
	| ... | ... | selector_S(struct key_info key_info, struct keys_info *keys_info) | 
	| 666 | 670 | keys_info->count = i; | keys_info->count = i; | 
	| 667 | 671 | } | } | 
	| 668 | 672 |  |  | 
	|  | 673 |  | /* Clone file. */ | 
	|  | 674 |  | static void | 
	|  | 675 |  | cmd_C(struct key_info key_info, struct keys_info *keys_info) | 
	|  | 676 |  | { | 
	|  | 677 |  | clone_file(curr_view); | 
	|  | 678 |  | } | 
	|  | 679 |  |  | 
	| 669 | 680 | static void | static void | 
	| 670 | 681 | cmd_F(struct key_info key_info, struct keys_info *keys_info) | cmd_F(struct key_info key_info, struct keys_info *keys_info) | 
	| 671 | 682 | { | { | 
| File src/vifm-help.txt changed (mode: 100644) (index c5c6b22dc..10fdeae76) | 
	| ... | ... | The basic vi key bindings are used to move through the files and popup | 
	| 21 | 21 | cp change file permissions. | cp change file permissions. | 
	| 22 | 22 | cw change word is used to rename a file. | cw change word is used to rename a file. | 
	| 23 | 23 | cW change WORD is used to change only name of file (without extension). | cW change WORD is used to change only name of file (without extension). | 
	|  | 24 |  | C clone file. | 
	| 24 | 25 | m [a-z][A-Z][0-9] to set bookmark | m [a-z][A-Z][0-9] to set bookmark | 
	| 25 | 26 | ' letter to goto bookmark | ' letter to goto bookmark | 
	| 26 | 27 | v start or stop visualy selecting files.  This works with the j and k keys | v start or stop visualy selecting files.  This works with the j and k keys | 
| File src/vifm.1 changed (mode: 100644) (index 15e806dd2..9683620b3) | 
	| ... | ... | change file group. | 
	| 169 | 169 | .BI cp | .BI cp | 
	| 170 | 170 | change file permissions. | change file permissions. | 
	| 171 | 171 | .TP | .TP | 
	|  | 172 |  | .BI C | 
	|  | 173 |  | clone file. | 
	|  | 174 |  | .TP | 
	| 172 | 175 | .BI "[count]d[selector] or [count]dd in compatibility mode" | .BI "[count]d[selector] or [count]dd in compatibility mode" | 
	| 173 | 176 | moves the selected files to the trash directory. | moves the selected files to the trash directory. | 
	| 174 | 177 | .TP | .TP | 
|  | 
	| ... | ... | sets a new user command. | 
	| 219 | 222 | will remove the command_name user command | will remove the command_name user command | 
	| 220 | 223 | .TP | .TP | 
	| 221 | 224 | .BI ":file [mime]" | .BI ":file [mime]" | 
	| 222 |  | popup menu of programs set for the file type of the current file. When argument passed, show programs set based on file mimetype. |  | 
	|  | 225 |  | popup menu of programs set for the file type of the current file. When argument passed, show programs set based on file mimetype. Add ' &' at the end of command to run program in background. | 
	| 223 | 226 | .TP | .TP | 
	| 224 | 227 | .BI ":fil regular_expression pattern" | .BI ":fil regular_expression pattern" | 
	| 225 | 228 | will filter all the files out of the directory listing that match the regular expression. | will filter all the files out of the directory listing that match the regular expression. | 
| File src/vifm.txt changed (mode: 100644) (index a0e4dcf96..fe0f31c89) | 
	| ... | ... | co - change owner of file. | 
	| 171 | 171 | cp - change file permissions. | cp - change file permissions. | 
	| 172 | 172 | cw - change word is used to rename a file. | cw - change word is used to rename a file. | 
	| 173 | 173 | cW - change WORD is used to change only name of file (without extension). | cW - change WORD is used to change only name of file (without extension). | 
	|  | 174 |  | C - clone file. | 
	| 174 | 175 | dd - move selected file or files to ~/.vifm/Trash (if option USE_TRASH is set | dd - move selected file or files to ~/.vifm/Trash (if option USE_TRASH is set | 
	| 175 | 176 | otherwise delete) | otherwise delete) | 
	| 176 | 177 | d<selector> - like dd. | d<selector> - like dd. |