Merge branch 'i3bar_fix_tabs' into next

This commit is contained in:
Axel Wagner 2011-08-12 18:44:36 +02:00
commit 4e0ccbf57b
4 changed files with 47 additions and 47 deletions

View File

@ -17,10 +17,10 @@ char *statusline;
char *statusline_buffer; char *statusline_buffer;
struct rect_t { struct rect_t {
int x; int x;
int y; int y;
int w; int w;
int h; int h;
}; };
#include "queue.h" #include "queue.h"

View File

@ -22,33 +22,33 @@ struct outputs_head *outputs;
* Start parsing the received json-string * Start parsing the received json-string
* *
*/ */
void parse_outputs_json(char* json); void parse_outputs_json(char* json);
/* /*
* Initiate the output-list * Initiate the output-list
* *
*/ */
void init_outputs(); void init_outputs();
/* /*
* Returns the output with the given name * 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 { struct i3_output {
char* name; /* Name of the output */ char* name; /* Name of the output */
bool active; /* If the output is active */ bool active; /* If the output is active */
int ws; /* The number of the currently visible ws */ int ws; /* The number of the currently visible ws */
rect rect; /* The rect (relative to the root-win) */ rect rect; /* The rect (relative to the root-win) */
xcb_window_t bar; /* The id of the bar of the output */ xcb_window_t bar; /* The id of the bar of the output */
xcb_pixmap_t buffer; /* An extra pixmap for double-buffering */ xcb_pixmap_t buffer; /* An extra pixmap for double-buffering */
xcb_gcontext_t bargc; /* The graphical context of the bar */ 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 #endif

View File

@ -87,7 +87,7 @@ void stdin_io_cb(struct ev_loop *loop, ev_io *watcher, int revents) {
if (rec == buffer_len) { if (rec == buffer_len) {
buffer_len += STDIN_CHUNK_SIZE; buffer_len += STDIN_CHUNK_SIZE;
buffer = realloc(buffer, buffer_len); buffer = realloc(buffer, buffer_len);
} }
} }
if (*buffer == '\0') { if (*buffer == '\0') {
FREE(buffer); FREE(buffer);

View File

@ -23,18 +23,18 @@ static iconv_t conversion_descriptor2 = 0;
* *
*/ */
char *convert_ucs_to_utf8(char *input) { char *convert_ucs_to_utf8(char *input) {
size_t input_size = 2; size_t input_size = 2;
/* UTF-8 may consume up to 4 byte */ /* UTF-8 may consume up to 4 byte */
int buffer_size = 8; int buffer_size = 8;
char *buffer = calloc(buffer_size, 1); char *buffer = calloc(buffer_size, 1);
if (buffer == NULL) if (buffer == NULL)
err(EXIT_FAILURE, "malloc() failed\n"); err(EXIT_FAILURE, "malloc() failed\n");
size_t output_size = buffer_size; size_t output_size = buffer_size;
/* We need to use an additional pointer, because iconv() modifies it */ /* We need to use an additional pointer, because iconv() modifies it */
char *output = buffer; 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) { if (conversion_descriptor == 0) {
conversion_descriptor = iconv_open("UTF-8", "UCS-2BE"); conversion_descriptor = iconv_open("UTF-8", "UCS-2BE");
if (conversion_descriptor == 0) { if (conversion_descriptor == 0) {
@ -43,17 +43,17 @@ char *convert_ucs_to_utf8(char *input) {
} }
} }
/* Get the conversion descriptor back to original state */ /* Get the conversion descriptor back to original state */
iconv(conversion_descriptor, NULL, NULL, NULL, NULL); iconv(conversion_descriptor, NULL, NULL, NULL, NULL);
/* Convert our text */ /* Convert our text */
int rc = iconv(conversion_descriptor, (void*)&input, &input_size, &output, &output_size); int rc = iconv(conversion_descriptor, (void*)&input, &input_size, &output, &output_size);
if (rc == (size_t)-1) { if (rc == (size_t)-1) {
perror("Converting to UCS-2 failed"); perror("Converting to UCS-2 failed");
return NULL; 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) { char *convert_utf8_to_ucs2(char *input, int *real_strlen) {
size_t input_size = strlen(input) + 1; size_t input_size = strlen(input) + 1;
/* UCS-2 consumes exactly two bytes for each glyph */ /* UCS-2 consumes exactly two bytes for each glyph */
int buffer_size = input_size * 2; int buffer_size = input_size * 2;
char *buffer = malloc(buffer_size); char *buffer = malloc(buffer_size);
if (buffer == NULL) if (buffer == NULL)
err(EXIT_FAILURE, "malloc() failed\n"); err(EXIT_FAILURE, "malloc() failed\n");
size_t output_size = buffer_size; size_t output_size = buffer_size;
/* We need to use an additional pointer, because iconv() modifies it */ /* We need to use an additional pointer, because iconv() modifies it */
char *output = buffer; 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) { if (conversion_descriptor2 == 0) {
conversion_descriptor2 = iconv_open("UCS-2BE", "UTF-8"); conversion_descriptor2 = iconv_open("UCS-2BE", "UTF-8");
if (conversion_descriptor2 == 0) { 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 */ /* Get the conversion descriptor back to original state */
iconv(conversion_descriptor2, NULL, NULL, NULL, NULL); iconv(conversion_descriptor2, NULL, NULL, NULL, NULL);
/* Convert our text */ /* Convert our text */
int rc = iconv(conversion_descriptor2, (void*)&input, &input_size, &output, &output_size); int rc = iconv(conversion_descriptor2, (void*)&input, &input_size, &output, &output_size);
if (rc == (size_t)-1) { if (rc == (size_t)-1) {
perror("Converting to UCS-2 failed"); perror("Converting to UCS-2 failed");
if (real_strlen != NULL) if (real_strlen != NULL)
*real_strlen = 0; *real_strlen = 0;
return NULL; return NULL;
} }
if (real_strlen != 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;
} }