mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
API: Implement buffer_{get,set}_name
This commit is contained in:
parent
978755eb90
commit
0e3aa877c0
@ -12,7 +12,9 @@
|
|||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "misc1.h"
|
#include "misc1.h"
|
||||||
#include "misc2.h"
|
#include "misc2.h"
|
||||||
|
#include "ex_cmds.h"
|
||||||
#include "mark.h"
|
#include "mark.h"
|
||||||
|
#include "fileio.h"
|
||||||
#include "move.h"
|
#include "move.h"
|
||||||
#include "../window.h"
|
#include "../window.h"
|
||||||
#include "undo.h"
|
#include "undo.h"
|
||||||
@ -269,12 +271,43 @@ void buffer_set_option(Buffer buffer, String name, Object value, Error *err)
|
|||||||
|
|
||||||
String buffer_get_name(Buffer buffer, Error *err)
|
String buffer_get_name(Buffer buffer, Error *err)
|
||||||
{
|
{
|
||||||
abort();
|
String rv = {.size = 0, .data = ""};
|
||||||
|
buf_T *buf = find_buffer(buffer, err);
|
||||||
|
|
||||||
|
if (!buf || buf->b_ffname == NULL) {
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
rv.data = xstrdup((char *)buf->b_ffname);
|
||||||
|
rv.size = strlen(rv.data);
|
||||||
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
void buffer_set_name(Buffer buffer, String name, Error *err)
|
void buffer_set_name(Buffer buffer, String name, Error *err)
|
||||||
{
|
{
|
||||||
abort();
|
buf_T *buf = find_buffer(buffer, err);
|
||||||
|
|
||||||
|
if (!buf) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
aco_save_T aco;
|
||||||
|
int ren_ret;
|
||||||
|
char *val = xstrndup(name.data, name.size);
|
||||||
|
|
||||||
|
try_start();
|
||||||
|
// Using aucmd_*: autocommands will be executed by rename_buffer
|
||||||
|
aucmd_prepbuf(&aco, buf);
|
||||||
|
ren_ret = rename_buffer((char_u *)val);
|
||||||
|
aucmd_restbuf(&aco);
|
||||||
|
|
||||||
|
if (try_end(err)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ren_ret == FAIL) {
|
||||||
|
set_api_error("failed to rename buffer", err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool buffer_is_valid(Buffer buffer)
|
bool buffer_is_valid(Buffer buffer)
|
||||||
|
Loading…
Reference in New Issue
Block a user