aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/util.c10
-rw-r--r--include/util.h5
-rw-r--r--sway/commands.c3
-rw-r--r--swaygrab/CMakeLists.txt1
-rw-r--r--swaygrab/main.c4
5 files changed, 5 insertions, 18 deletions
diff --git a/common/util.c b/common/util.c
index 243f90a8..7602216c 100644
--- a/common/util.c
+++ b/common/util.c
@@ -4,16 +4,6 @@ int wrap(int i, int max) {
4 return ((i % max) + max) % max; 4 return ((i % max) + max) % max;
5} 5}
6 6
7int numlen(int n) {
8 if (n >= 1000000) return 7;
9 if (n >= 100000) return 6;
10 if (n >= 10000) return 5;
11 if (n >= 1000) return 4;
12 if (n >= 100) return 3;
13 if (n >= 10) return 2;
14 return 1;
15}
16
17static struct modifier_key { 7static struct modifier_key {
18 char *name; 8 char *name;
19 uint32_t mod; 9 uint32_t mod;
diff --git a/include/util.h b/include/util.h
index dc47e343..7f4b3ace 100644
--- a/include/util.h
+++ b/include/util.h
@@ -11,11 +11,6 @@
11int wrap(int i, int max); 11int wrap(int i, int max);
12 12
13/** 13/**
14 * Count number of digits in int
15 */
16int numlen(int n);
17
18/**
19 * Get modifier mask from modifier name. 14 * Get modifier mask from modifier name.
20 * 15 *
21 * Returns the modifer mask or 0 if the name isn't found. 16 * Returns the modifer mask or 0 if the name isn't found.
diff --git a/sway/commands.c b/sway/commands.c
index 9f6e5032..58fc4aa5 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -14,6 +14,7 @@
14#include <limits.h> 14#include <limits.h>
15#include <float.h> 15#include <float.h>
16#include <libinput.h> 16#include <libinput.h>
17#include <math.h>
17#include "stringop.h" 18#include "stringop.h"
18#include "layout.h" 19#include "layout.h"
19#include "focus.h" 20#include "focus.h"
@@ -1580,7 +1581,7 @@ static struct cmd_results *cmd_bar(int argc, char **argv) {
1580 int i; 1581 int i;
1581 for (i = 0; i < config->bars->length; ++i) { 1582 for (i = 0; i < config->bars->length; ++i) {
1582 if (bar == config->bars->items[i]) { 1583 if (bar == config->bars->items[i]) {
1583 const int len = 5 + numlen(i); // "bar-" + i + \0 1584 const int len = 5 + log10(i) + 1; // "bar-" + i + \0
1584 bar->id = malloc(len * sizeof(char)); 1585 bar->id = malloc(len * sizeof(char));
1585 snprintf(bar->id, len, "bar-%d", i); 1586 snprintf(bar->id, len, "bar-%d", i);
1586 break; 1587 break;
diff --git a/swaygrab/CMakeLists.txt b/swaygrab/CMakeLists.txt
index 9035ac8b..9bd06c08 100644
--- a/swaygrab/CMakeLists.txt
+++ b/swaygrab/CMakeLists.txt
@@ -10,6 +10,7 @@ target_link_libraries(swaygrab
10 sway-common 10 sway-common
11 ${JSONC_LIBRARIES} 11 ${JSONC_LIBRARIES}
12 rt 12 rt
13 m
13) 14)
14 15
15install( 16install(
diff --git a/swaygrab/main.c b/swaygrab/main.c
index 82d623e7..b944222c 100644
--- a/swaygrab/main.c
+++ b/swaygrab/main.c
@@ -39,7 +39,7 @@ void grab_and_apply_magick(const char *file, const char *output,
39 39
40 const char *fmt = "convert -depth 8 -size %dx%d+0 rgba:- -flip %s"; 40 const char *fmt = "convert -depth 8 -size %dx%d+0 rgba:- -flip %s";
41 char *cmd = malloc(strlen(fmt) - 6 /*args*/ 41 char *cmd = malloc(strlen(fmt) - 6 /*args*/
42 + numlen(width) + numlen(height) + strlen(file) + 1); 42 + log10(width) + 1 + log10(height) + 1 + strlen(file) + 1);
43 sprintf(cmd, fmt, width, height, file); 43 sprintf(cmd, fmt, width, height, file);
44 44
45 FILE *f = popen(cmd, "w"); 45 FILE *f = popen(cmd, "w");
@@ -72,7 +72,7 @@ void grab_and_apply_movie_magic(const char *file, const char *output,
72 "-video_size %dx%d -pixel_format argb " 72 "-video_size %dx%d -pixel_format argb "
73 "-i pipe:0 -r %d -vf vflip %s"; 73 "-i pipe:0 -r %d -vf vflip %s";
74 char *cmd = malloc(strlen(fmt) - 8 /*args*/ 74 char *cmd = malloc(strlen(fmt) - 8 /*args*/
75 + numlen(width) + numlen(height) + numlen(framerate) * 2 75 + log10(width) + 1 + log10(height) + 1 + log10(framerate) + 1 * 2
76 + strlen(file) + 1); 76 + strlen(file) + 1);
77 sprintf(cmd, fmt, framerate, width, height, framerate, file); 77 sprintf(cmd, fmt, framerate, width, height, framerate, file);
78 78