1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-09-28 21:19:10 +00:00

Make max_user_text a lua setting

This commit is contained in:
Pavel Labath 2010-08-29 20:01:05 +02:00
parent 6364bbd380
commit a9893684ac
12 changed files with 105 additions and 112 deletions

View File

@ -259,11 +259,11 @@ int compare(const char *expr)
int check_if_match(struct text_object *obj)
{
std::unique_ptr<char []> expression(new char[max_user_text]);
std::unique_ptr<char []> expression(new char[max_user_text.get(*state)]);
int val;
int result = 1;
generate_text_internal(expression.get(), max_user_text, *obj->sub);
generate_text_internal(expression.get(), max_user_text.get(*state), *obj->sub);
DBGP("parsed arg into '%s'", expression.get());
val = compare(expression.get());

View File

@ -185,7 +185,7 @@ void ccurl_free_info(void)
/* straight copy, used by $curl */
static void ccurl_parse_data(char *result, const char *data)
{
if(result) strncpy(result, data, max_user_text);
if(result) strncpy(result, data, max_user_text.get(*state));
}
/* prints result data to text buffer, used by $curl */
@ -193,8 +193,8 @@ void ccurl_process_info(char *p, int p_max_size, char *uri, int interval)
{
ccurl_location_ptr curloc = ccurl_find_location(ccurl_locations, uri);
if (!curloc->p_timed_thread) {
curloc->result = (char*)malloc(max_user_text);
memset(curloc->result, 0, max_user_text);
curloc->result = (char*)malloc(max_user_text.get(*state));
memset(curloc->result, 0, max_user_text.get(*state));
curloc->process_function = std::bind(ccurl_parse_data,
std::placeholders::_1, std::placeholders::_2);
ccurl_init_thread(curloc, interval);

View File

@ -98,8 +98,8 @@ void print_combine(struct text_object *obj, char *p, int p_max_size)
struct combine_data *cd = (struct combine_data *)obj->data.opaque;
std::vector<std::vector<char>> buf;
buf.resize(2);
buf[0].resize(max_user_text);
buf[1].resize(max_user_text);
buf[0].resize(max_user_text.get(*state));
buf[1].resize(max_user_text.get(*state));
int i, j;
long longest=0;
int nextstart;
@ -121,7 +121,7 @@ void print_combine(struct text_object *obj, char *p, int p_max_size)
ll_rows[i] = (struct llrows*)malloc(sizeof(struct llrows));
current[i] = ll_rows[i];
for(j=0; j<i; j++) objsub = objsub->sub;
generate_text_internal(&(buf[i][0]), max_user_text, *objsub);
generate_text_internal(&(buf[i][0]), max_user_text.get(*state), *objsub);
for(j=0; buf[i][j] != 0; j++) {
if(buf[i][j] == '\t') buf[i][j] = ' ';
if(buf[i][j] == '\n') buf[i][j] = 0; //the vars inside combine may not have a \n at the end

View File

@ -659,10 +659,10 @@ void print_evaluate(struct text_object *obj, char *p, int p_max_size)
int if_empty_iftest(struct text_object *obj)
{
std::vector<char> buf(max_user_text);
std::vector<char> buf(max_user_text.get(*state));
int result = 1;
generate_text_internal(&(buf[0]), max_user_text, *obj->sub);
generate_text_internal(&(buf[0]), max_user_text.get(*state), *obj->sub);
if (strlen(&(buf[0])) != 0) {
result = 0;
@ -790,13 +790,13 @@ void print_battery_short(struct text_object *obj, char *p, int p_max_size)
void print_blink(struct text_object *obj, char *p, int p_max_size)
{
//blinking like this can look a bit ugly if the chars in the font don't have the same width
std::vector<char> buf(max_user_text);
std::vector<char> buf(max_user_text.get(*state));
static int visible = 1;
static int last_len = 0;
int i;
if (visible) {
generate_text_internal(&(buf[0]), max_user_text, *obj->sub);
generate_text_internal(&(buf[0]), max_user_text.get(*state), *obj->sub);
last_len = strlen(&(buf[0]));
} else {
for (i = 0; i < last_len; i++)
@ -809,12 +809,12 @@ void print_blink(struct text_object *obj, char *p, int p_max_size)
void print_include(struct text_object *obj, char *p, int p_max_size)
{
std::vector<char> buf(max_user_text);
std::vector<char> buf(max_user_text.get(*state));
if (!obj->sub)
return;
generate_text_internal(&(buf[0]), max_user_text, *obj->sub);
generate_text_internal(&(buf[0]), max_user_text.get(*state), *obj->sub);
snprintf(p, p_max_size, "%s", &(buf[0]));
}
@ -836,17 +836,17 @@ void free_stock(struct text_object *obj)
void print_to_bytes(struct text_object *obj, char *p, int p_max_size)
{
std::vector<char> buf(max_user_text);
std::vector<char> buf(max_user_text.get(*state));
long long bytes;
char unit[16]; // 16 because we can also have long names (like mega-bytes)
generate_text_internal(&(buf[0]), max_user_text, *obj->sub);
generate_text_internal(&(buf[0]), max_user_text.get(*state), *obj->sub);
if(sscanf(&(buf[0]), "%lli%s", &bytes, unit) == 2 && strlen(unit) < 16){
if(strncasecmp("b", unit, 1) == 0) snprintf(&(buf[0]), max_user_text, "%lli", bytes);
else if(strncasecmp("k", unit, 1) == 0) snprintf(&(buf[0]), max_user_text, "%lli", bytes * 1024);
else if(strncasecmp("m", unit, 1) == 0) snprintf(&(buf[0]), max_user_text, "%lli", bytes * 1024 * 1024);
else if(strncasecmp("g", unit, 1) == 0) snprintf(&(buf[0]), max_user_text, "%lli", bytes * 1024 * 1024 * 1024);
else if(strncasecmp("t", unit, 1) == 0) snprintf(&(buf[0]), max_user_text, "%lli", bytes * 1024 * 1024 * 1024 * 1024);
if(strncasecmp("b", unit, 1) == 0) snprintf(&(buf[0]), max_user_text.get(*state), "%lli", bytes);
else if(strncasecmp("k", unit, 1) == 0) snprintf(&(buf[0]), max_user_text.get(*state), "%lli", bytes * 1024);
else if(strncasecmp("m", unit, 1) == 0) snprintf(&(buf[0]), max_user_text.get(*state), "%lli", bytes * 1024 * 1024);
else if(strncasecmp("g", unit, 1) == 0) snprintf(&(buf[0]), max_user_text.get(*state), "%lli", bytes * 1024 * 1024 * 1024);
else if(strncasecmp("t", unit, 1) == 0) snprintf(&(buf[0]), max_user_text.get(*state), "%lli", bytes * 1024 * 1024 * 1024 * 1024);
}
snprintf(p, p_max_size, "%s", &(buf[0]));
}

View File

@ -466,7 +466,8 @@ static conky::simple_config_setting<bool> utf8_mode("override_utf8_locale",
#endif /* BUILD_X11 */
/* maximum size of config TEXT buffer, i.e. below TEXT line. */
unsigned int max_user_text;
conky::range_config_setting<unsigned int> max_user_text("max_user_text", 47,
std::numeric_limits<unsigned int>::max(), MAX_USER_TEXT_DEFAULT, false);
/* maximum size of individual text buffers, ie $exec buffer size */
unsigned int text_buffer_size = DEFAULT_TEXT_BUFFER_SIZE;
@ -893,7 +894,7 @@ static void generate_text(void)
p = text_buffer;
generate_text_internal(p, max_user_text, global_root_object);
generate_text_internal(p, max_user_text.get(*state), global_root_object);
unsigned int mw = max_text_width.get(*state);
if(mw > 0) {
for(i = 0, j = 0; p[i] != 0; i++) {
@ -2836,13 +2837,6 @@ char load_config_file(const char *f)
CONF_ERR;
}
}
CONF("max_user_text") {
if (value) {
max_user_text = atoi(value);
} else {
CONF_ERR;
}
}
CONF("text_buffer_size") {
if (value) {
text_buffer_size = atoi(value);
@ -2888,7 +2882,7 @@ char load_config_file(const char *f)
global_text = (char *) realloc(global_text, l + bl + 1);
strcat(global_text, buf);
if (strlen(global_text) > max_user_text) {
if (strlen(global_text) > max_user_text.get(*state)) {
break;
}
}
@ -3093,7 +3087,7 @@ void initialisation(int argc, char **argv) {
break;
}else if (c == 's') {
free_and_zero(global_text);
global_text = strndup(optarg, max_user_text);
global_text = strndup(optarg, max_user_text.get(*state));
convert_escapes(global_text);
total_run_times = 1;
@ -3164,7 +3158,7 @@ void initialisation(int argc, char **argv) {
#endif /* BUILD_X11 */
case 't':
free_and_zero(global_text);
global_text = strndup(optarg, max_user_text);
global_text = strndup(optarg, max_user_text.get(*state));
convert_escapes(global_text);
break;
@ -3234,8 +3228,8 @@ void initialisation(int argc, char **argv) {
start_update_threading();
text_buffer = (char*)malloc(max_user_text);
memset(text_buffer, 0, max_user_text);
text_buffer = (char*)malloc(max_user_text.get(*state));
memset(text_buffer, 0, max_user_text.get(*state));
tmpstring1 = (char*)malloc(text_buffer_size);
memset(tmpstring1, 0, text_buffer_size);
tmpstring2 = (char*)malloc(text_buffer_size);
@ -3277,7 +3271,6 @@ int main(int argc, char **argv)
argc_copy = argc;
argv_copy = argv;
g_signal_pending = 0;
max_user_text = MAX_USER_TEXT_DEFAULT;
clear_net_stats();
/* handle command line parameters that don't change configs */

View File

@ -306,7 +306,7 @@ int percent_print(char *, int, unsigned);
void human_readable(long long, char *, int);
/* maximum size of config TEXT buffer, i.e. below TEXT line. */
extern unsigned int max_user_text;
extern conky::range_config_setting<unsigned int> max_user_text;
/* path to config file */
extern std::string current_config;

View File

@ -1840,7 +1840,7 @@ int extract_variable_text_internal(struct text_object *retval, const char *const
char *arg = 0;
size_t len = 0;
p = strndup(const_p, max_user_text - 1);
p = strndup(const_p, max_user_text.get(*state) - 1);
while (text_contains_templates(p)) {
char *tmp;
tmp = find_and_replace_templates(p);

View File

@ -109,7 +109,7 @@ static int llua_conky_parse(lua_State *L)
{
int n = lua_gettop(L); /* number of arguments */
char *str;
char *buf = (char*)calloc(1, max_user_text);
char *buf = (char*)calloc(1, max_user_text.get(*state));
if (n != 1) {
lua_pushstring(L, "incorrect arguments, conky_parse(string) takes exactly 1 argument");
lua_error(L);
@ -119,7 +119,7 @@ static int llua_conky_parse(lua_State *L)
lua_error(L);
}
str = strdup(lua_tostring(L, 1));
evaluate(str, buf, max_user_text);
evaluate(str, buf, max_user_text.get(*state));
lua_pushstring(L, buf);
free(str);
free(buf);

View File

@ -106,9 +106,9 @@ int inlist(struct ll_string* front, char* string) {
void print_pid_chroot(struct text_object *obj, char *p, int p_max_size) {
char pathbuf[64];
std::unique_ptr<char []> buf(new char[max_user_text]);
std::unique_ptr<char []> buf(new char[max_user_text.get(*state)]);
generate_text_internal(buf.get(), max_user_text, *obj->sub);
generate_text_internal(buf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/root", buf.get());
pid_readlink(pathbuf, p, p_max_size);
}
@ -118,9 +118,9 @@ void print_pid_cmdline(struct text_object *obj, char *p, int p_max_size)
char* buf;
int i, bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if(*(objbuf.get()) != 0) {
snprintf(pathbuf, 64, PROCDIR "/%s/cmdline", objbuf.get());
@ -144,9 +144,9 @@ void print_pid_cwd(struct text_object *obj, char *p, int p_max_size)
std::unique_ptr<char []> buf(new char[p_max_size]);
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/cwd", objbuf.get());
bytes_read = readlink(pathbuf, buf.get(), p_max_size);
if(bytes_read != -1) {
@ -162,10 +162,10 @@ void print_pid_environ(struct text_object *obj, char *p, int p_max_size)
int i, total_read;
pid_t pid;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
char *buf, *var=strdup(obj->data.s);;
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if(sscanf(objbuf.get(), "%d %s", &pid, var) == 2) {
for(i = 0; var[i] != 0; i++) {
var[i] = toupper(var[i]);
@ -195,9 +195,9 @@ void print_pid_environ_list(struct text_object *obj, char *p, int p_max_size)
int bytes_read, total_read;
int i = 0;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/environ", objbuf.get());
buf = readfile(pathbuf, &total_read, 1);
@ -217,9 +217,9 @@ void print_pid_environ_list(struct text_object *obj, char *p, int p_max_size)
void print_pid_exe(struct text_object *obj, char *p, int p_max_size) {
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/exe", objbuf.get());
pid_readlink(pathbuf, p, p_max_size);
}
@ -229,9 +229,9 @@ void print_pid_nice(struct text_object *obj, char *p, int p_max_size) {
int bytes_read;
long int nice_value;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if(*(obj->data.s) != 0) {
snprintf(pathbuf, 64, PROCDIR "/%s/stat", objbuf.get());
@ -253,9 +253,9 @@ void print_pid_openfiles(struct text_object *obj, char *p, int p_max_size) {
int length, totallength = 0;
struct ll_string* files_front = NULL;
struct ll_string* files_back = NULL;
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
dir = opendir(objbuf.get());
if(dir != NULL) {
@ -288,9 +288,9 @@ void print_pid_parent(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -315,9 +315,9 @@ void print_pid_priority(struct text_object *obj, char *p, int p_max_size) {
int bytes_read;
long int priority;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if(*(objbuf.get()) != 0) {
snprintf(pathbuf, 64, PROCDIR "/%s/stat", objbuf.get());
@ -338,9 +338,9 @@ void print_pid_state(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -364,9 +364,9 @@ void print_pid_state_short(struct text_object *obj, char *p, int p_max_size) {
char *begin, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
@ -384,19 +384,19 @@ void print_pid_state_short(struct text_object *obj, char *p, int p_max_size) {
void print_pid_stderr(struct text_object *obj, char *p, int p_max_size) {
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/fd/2", objbuf.get());
pid_readlink(pathbuf, p, p_max_size);
}
void print_pid_stdin(struct text_object *obj, char *p, int p_max_size) {
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
char pathbuf[64];
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/fd/0", objbuf.get());
pid_readlink(pathbuf, p, p_max_size);
@ -404,9 +404,9 @@ void print_pid_stdin(struct text_object *obj, char *p, int p_max_size) {
void print_pid_stdout(struct text_object *obj, char *p, int p_max_size) {
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/fd/1", objbuf.get());
pid_readlink(pathbuf, p, p_max_size);
@ -414,10 +414,10 @@ void print_pid_stdout(struct text_object *obj, char *p, int p_max_size) {
void scan_cmdline_to_pid_arg(struct text_object *obj, const char *arg, void* free_at_crash) {
unsigned int i;
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
/* FIXME */
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if(strlen(arg) > 0) {
obj->data.s = strdup(arg);
@ -472,9 +472,9 @@ void print_pid_threads(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -499,9 +499,9 @@ void print_pid_thread_list(struct text_object *obj, char *p, int p_max_size) {
struct dirent *entry;
int totallength = 0;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/task", objbuf.get());
dir = opendir(pathbuf);
@ -524,9 +524,9 @@ void print_pid_time_kernelmode(struct text_object *obj, char *p, int p_max_size)
int bytes_read;
unsigned long int umtime;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if(*(objbuf.get()) != 0) {
snprintf(pathbuf, 64, PROCDIR "/%s/stat", objbuf.get());
@ -546,9 +546,9 @@ void print_pid_time_usermode(struct text_object *obj, char *p, int p_max_size) {
int bytes_read;
unsigned long int kmtime;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if(*(objbuf.get()) != 0) {
snprintf(pathbuf, 64, PROCDIR "/%s/stat", objbuf.get());
@ -568,9 +568,9 @@ void print_pid_time(struct text_object *obj, char *p, int p_max_size) {
int bytes_read;
unsigned long int umtime, kmtime;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
if(*(objbuf.get()) != 0) {
snprintf(pathbuf, 64, PROCDIR "/%s/stat", objbuf.get());
@ -591,9 +591,9 @@ void print_pid_uid(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -618,9 +618,9 @@ void print_pid_euid(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -646,9 +646,9 @@ void print_pid_suid(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -675,9 +675,9 @@ void print_pid_fsuid(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -706,9 +706,9 @@ void print_pid_gid(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -733,9 +733,9 @@ void print_pid_egid(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -761,9 +761,9 @@ void print_pid_sgid(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -790,9 +790,9 @@ void print_pid_fsgid(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -819,9 +819,9 @@ void internal_print_pid_vm(struct text_object *obj, char *p, int p_max_size, con
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/status", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -890,9 +890,9 @@ void print_pid_read(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/io", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);
@ -917,9 +917,9 @@ void print_pid_write(struct text_object *obj, char *p, int p_max_size) {
char *begin, *end, *buf = NULL;
int bytes_read;
char pathbuf[64];
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
snprintf(pathbuf, 64, PROCDIR "/%s/io", objbuf.get());
buf = readfile(pathbuf, &bytes_read, 1);

View File

@ -110,12 +110,12 @@ void print_scroll(struct text_object *obj, char *p, int p_max_size)
struct scroll_data *sd = (struct scroll_data *)obj->data.opaque;
unsigned int j, colorchanges = 0, frontcolorchanges = 0, visibcolorchanges = 0, strend;
char *pwithcolors;
std::vector<char> buf(max_user_text);
std::vector<char> buf(max_user_text.get(*state));
if (!sd)
return;
generate_text_internal(&(buf[0]), max_user_text, *obj->sub);
generate_text_internal(&(buf[0]), max_user_text.get(*state), *obj->sub);
for(j = 0; buf[j] != 0; j++) {
switch(buf[j]) {
case '\n': //place all the lines behind each other with LINESEPARATOR between them

View File

@ -311,9 +311,9 @@ static void do_format_time(struct text_object *obj, char *p, unsigned int p_max_
void print_format_time(struct text_object *obj, char *p, int p_max_size)
{
std::unique_ptr<char []> buf(new char[max_user_text]);
std::unique_ptr<char []> buf(new char[max_user_text.get(*state)]);
generate_text_internal(buf.get(), max_user_text, *obj->sub);
generate_text_internal(buf.get(), max_user_text.get(*state), *obj->sub);
obj->data.s = buf.get();
do_format_time(obj, p, p_max_size);
}

View File

@ -39,9 +39,9 @@ void print_uid_name(struct text_object *obj, char *p, int p_max_size) {
struct passwd *pw;
uid_t uid;
char* firstinvalid;
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
errno = 0;
uid = strtol(objbuf.get(), &firstinvalid, 10);
@ -61,9 +61,9 @@ void print_gid_name(struct text_object *obj, char *p, int p_max_size) {
struct group *grp;
gid_t gid;
char* firstinvalid;
std::unique_ptr<char []> objbuf(new char[max_user_text]);
std::unique_ptr<char []> objbuf(new char[max_user_text.get(*state)]);
generate_text_internal(objbuf.get(), max_user_text, *obj->sub);
generate_text_internal(objbuf.get(), max_user_text.get(*state), *obj->sub);
errno = 0;
gid = strtol(objbuf.get(), &firstinvalid, 10);