Merge branch 'i3bar_fix_tabs' into next
This commit is contained in:
commit
4e0ccbf57b
@ -17,10 +17,10 @@ char *statusline;
|
||||
char *statusline_buffer;
|
||||
|
||||
struct rect_t {
|
||||
int x;
|
||||
int y;
|
||||
int w;
|
||||
int h;
|
||||
int x;
|
||||
int y;
|
||||
int w;
|
||||
int h;
|
||||
};
|
||||
|
||||
#include "queue.h"
|
||||
|
@ -22,33 +22,33 @@ struct outputs_head *outputs;
|
||||
* Start parsing the received json-string
|
||||
*
|
||||
*/
|
||||
void parse_outputs_json(char* json);
|
||||
void parse_outputs_json(char* json);
|
||||
|
||||
/*
|
||||
* Initiate the output-list
|
||||
*
|
||||
*/
|
||||
void init_outputs();
|
||||
void init_outputs();
|
||||
|
||||
/*
|
||||
* Returns the output with the given name
|
||||
*
|
||||
*/
|
||||
i3_output* get_output_by_name(char* name);
|
||||
i3_output* get_output_by_name(char* name);
|
||||
|
||||
struct i3_output {
|
||||
char* name; /* Name of the output */
|
||||
bool active; /* If the output is active */
|
||||
int ws; /* The number of the currently visible ws */
|
||||
rect rect; /* The rect (relative to the root-win) */
|
||||
char* name; /* Name of the output */
|
||||
bool active; /* If the output is active */
|
||||
int ws; /* The number of the currently visible ws */
|
||||
rect rect; /* The rect (relative to the root-win) */
|
||||
|
||||
xcb_window_t bar; /* The id of the bar of the output */
|
||||
xcb_pixmap_t buffer; /* An extra pixmap for double-buffering */
|
||||
xcb_gcontext_t bargc; /* The graphical context of the bar */
|
||||
xcb_window_t bar; /* The id of the bar of the output */
|
||||
xcb_pixmap_t buffer; /* An extra pixmap for double-buffering */
|
||||
xcb_gcontext_t bargc; /* The graphical context of the bar */
|
||||
|
||||
struct ws_head *workspaces; /* The workspaces on this output */
|
||||
struct ws_head *workspaces; /* The workspaces on this output */
|
||||
|
||||
SLIST_ENTRY(i3_output) slist; /* Pointer for the SLIST-Macro */
|
||||
SLIST_ENTRY(i3_output) slist; /* Pointer for the SLIST-Macro */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -87,7 +87,7 @@ void stdin_io_cb(struct ev_loop *loop, ev_io *watcher, int revents) {
|
||||
if (rec == buffer_len) {
|
||||
buffer_len += STDIN_CHUNK_SIZE;
|
||||
buffer = realloc(buffer, buffer_len);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*buffer == '\0') {
|
||||
FREE(buffer);
|
||||
|
@ -23,18 +23,18 @@ static iconv_t conversion_descriptor2 = 0;
|
||||
*
|
||||
*/
|
||||
char *convert_ucs_to_utf8(char *input) {
|
||||
size_t input_size = 2;
|
||||
/* UTF-8 may consume up to 4 byte */
|
||||
int buffer_size = 8;
|
||||
size_t input_size = 2;
|
||||
/* UTF-8 may consume up to 4 byte */
|
||||
int buffer_size = 8;
|
||||
|
||||
char *buffer = calloc(buffer_size, 1);
|
||||
char *buffer = calloc(buffer_size, 1);
|
||||
if (buffer == NULL)
|
||||
err(EXIT_FAILURE, "malloc() failed\n");
|
||||
size_t output_size = buffer_size;
|
||||
/* We need to use an additional pointer, because iconv() modifies it */
|
||||
char *output = buffer;
|
||||
size_t output_size = buffer_size;
|
||||
/* We need to use an additional pointer, because iconv() modifies it */
|
||||
char *output = buffer;
|
||||
|
||||
/* We convert the input into UCS-2 big endian */
|
||||
/* We convert the input into UCS-2 big endian */
|
||||
if (conversion_descriptor == 0) {
|
||||
conversion_descriptor = iconv_open("UTF-8", "UCS-2BE");
|
||||
if (conversion_descriptor == 0) {
|
||||
@ -43,17 +43,17 @@ char *convert_ucs_to_utf8(char *input) {
|
||||
}
|
||||
}
|
||||
|
||||
/* Get the conversion descriptor back to original state */
|
||||
iconv(conversion_descriptor, NULL, NULL, NULL, NULL);
|
||||
/* Get the conversion descriptor back to original state */
|
||||
iconv(conversion_descriptor, NULL, NULL, NULL, NULL);
|
||||
|
||||
/* Convert our text */
|
||||
int rc = iconv(conversion_descriptor, (void*)&input, &input_size, &output, &output_size);
|
||||
/* Convert our text */
|
||||
int rc = iconv(conversion_descriptor, (void*)&input, &input_size, &output, &output_size);
|
||||
if (rc == (size_t)-1) {
|
||||
perror("Converting to UCS-2 failed");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return buffer;
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -64,18 +64,18 @@ char *convert_ucs_to_utf8(char *input) {
|
||||
*
|
||||
*/
|
||||
char *convert_utf8_to_ucs2(char *input, int *real_strlen) {
|
||||
size_t input_size = strlen(input) + 1;
|
||||
/* UCS-2 consumes exactly two bytes for each glyph */
|
||||
int buffer_size = input_size * 2;
|
||||
size_t input_size = strlen(input) + 1;
|
||||
/* UCS-2 consumes exactly two bytes for each glyph */
|
||||
int buffer_size = input_size * 2;
|
||||
|
||||
char *buffer = malloc(buffer_size);
|
||||
char *buffer = malloc(buffer_size);
|
||||
if (buffer == NULL)
|
||||
err(EXIT_FAILURE, "malloc() failed\n");
|
||||
size_t output_size = buffer_size;
|
||||
/* We need to use an additional pointer, because iconv() modifies it */
|
||||
char *output = buffer;
|
||||
size_t output_size = buffer_size;
|
||||
/* We need to use an additional pointer, because iconv() modifies it */
|
||||
char *output = buffer;
|
||||
|
||||
/* We convert the input into UCS-2 big endian */
|
||||
/* We convert the input into UCS-2 big endian */
|
||||
if (conversion_descriptor2 == 0) {
|
||||
conversion_descriptor2 = iconv_open("UCS-2BE", "UTF-8");
|
||||
if (conversion_descriptor2 == 0) {
|
||||
@ -84,20 +84,20 @@ char *convert_utf8_to_ucs2(char *input, int *real_strlen) {
|
||||
}
|
||||
}
|
||||
|
||||
/* Get the conversion descriptor back to original state */
|
||||
iconv(conversion_descriptor2, NULL, NULL, NULL, NULL);
|
||||
/* Get the conversion descriptor back to original state */
|
||||
iconv(conversion_descriptor2, NULL, NULL, NULL, NULL);
|
||||
|
||||
/* Convert our text */
|
||||
int rc = iconv(conversion_descriptor2, (void*)&input, &input_size, &output, &output_size);
|
||||
/* Convert our text */
|
||||
int rc = iconv(conversion_descriptor2, (void*)&input, &input_size, &output, &output_size);
|
||||
if (rc == (size_t)-1) {
|
||||
perror("Converting to UCS-2 failed");
|
||||
if (real_strlen != NULL)
|
||||
*real_strlen = 0;
|
||||
*real_strlen = 0;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (real_strlen != NULL)
|
||||
*real_strlen = ((buffer_size - output_size) / 2) - 1;
|
||||
*real_strlen = ((buffer_size - output_size) / 2) - 1;
|
||||
|
||||
return buffer;
|
||||
return buffer;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user