mkdir working (at least on windows)
This commit is contained in:
parent
edd941b5fd
commit
59872d0b38
|
@ -1126,6 +1126,37 @@ CUSTOM_DOC("Queries the user for a new name and renames the file of the current
|
|||
}
|
||||
}
|
||||
|
||||
CUSTOM_COMMAND_SIG(make_directory_query)
|
||||
CUSTOM_DOC("Queries the user for a name and creates a new directory with the given name.")
|
||||
{
|
||||
char hot_space[2048];
|
||||
int32_t hot_length = directory_get_hot(app, hot_space, sizeof(hot_space));
|
||||
if (hot_length < sizeof(hot_space)){
|
||||
String hot = make_string(hot_space, hot_length);
|
||||
|
||||
// Query the user
|
||||
Query_Bar bar;
|
||||
|
||||
char prompt_space[4096];
|
||||
bar.prompt = make_fixed_width_string(prompt_space);
|
||||
append(&bar.prompt, "Make directory at '");
|
||||
append(&bar.prompt, hot);
|
||||
append(&bar.prompt, "': ");
|
||||
|
||||
char name_space[4096];
|
||||
bar.string = make_fixed_width_string(name_space);
|
||||
if (!query_user_string(app, &bar)) return;
|
||||
if (bar.string.size == 0) return;
|
||||
|
||||
char cmd_space[4096];
|
||||
String cmd = make_fixed_width_string(cmd_space);
|
||||
append(&cmd, "mkdir ");
|
||||
if (append_checked(&cmd, bar.string)){
|
||||
exec_system_command(app, 0, buffer_identifier(0), hot.str, hot.size, cmd.str, cmd.size, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// cmdid wrappers
|
||||
//
|
||||
|
|
|
@ -725,6 +725,9 @@ CUSTOM_DOC("Execute a 'long form' command.")
|
|||
else if (match_ss(bar.string, make_lit_string("rename file"))){
|
||||
rename_file_query(app);
|
||||
}
|
||||
else if (match_ss(bar.string, make_lit_string("mkdir"))){
|
||||
make_directory_query(app);
|
||||
}
|
||||
else{
|
||||
print_message(app, literal("unrecognized command\n"));
|
||||
}
|
||||
|
|
|
@ -2604,10 +2604,10 @@ DOC_SEE(Theme_Color)
|
|||
API_EXPORT int32_t
|
||||
Directory_Get_Hot(Application_Links *app, char *out, int32_t capacity)
|
||||
/*
|
||||
DOC_PARAM(out, This parameter provides a character buffer that receives the 4coder 'hot directory'.)
|
||||
DOC_PARAM(capacity, This parameter specifies the maximum size to be output to the out buffer.)
|
||||
DOC_RETURN(This call returns the size of the string written into the buffer.)
|
||||
DOC(4coder has a concept of a 'hot directory' which is the directory most recently accessed in the GUI. Whenever the GUI is opened it shows the hot directory. In the future this will be deprecated and eliminated in favor of more flexible directories controlled on the custom side.)
|
||||
DOC_PARAM(out, On success this character buffer is filled with the 4coder 'hot directory'.)
|
||||
DOC_PARAM(capacity, Specifies the capacity in bytes of the of the out buffer.)
|
||||
DOC(4coder has a concept of a 'hot directory' which is the directory most recently accessed in the GUI. Whenever the GUI is opened it shows the hot directory. In the future this will be deprecated and eliminated in favor of more flexible hot directories created and controlled in the custom layer.)
|
||||
DOC_RETURN(This call returns the length of the hot directory string whether or not it was successfully copied into the output buffer. The call is successful if and only if capacity is greater than or the return size.)
|
||||
DOC_SEE(directory_set_hot)
|
||||
*/{
|
||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||
|
|
Loading…
Reference in New Issue