aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorLibravatar Nils Schulte <git@nilsschulte.de>2020-07-16 10:23:24 +0200
committerLibravatar Simon Ser <contact@emersion.fr>2020-07-21 10:07:01 +0200
commit6898d1963f7a7f6dcc0bff5d4c484818f38cdacf (patch)
treed8fd7ba5347f23e24cfa470727b2b6bd5b693342 /common
parentsway.5: add missing underscore (diff)
downloadsway-6898d1963f7a7f6dcc0bff5d4c484818f38cdacf.tar.gz
sway-6898d1963f7a7f6dcc0bff5d4c484818f38cdacf.tar.zst
sway-6898d1963f7a7f6dcc0bff5d4c484818f38cdacf.zip
moved and renamed movement-unit parsing to common
Diffstat (limited to 'common')
-rw-r--r--common/util.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/common/util.c b/common/util.c
index cb142a5e..5ea94f48 100644
--- a/common/util.c
+++ b/common/util.c
@@ -71,6 +71,40 @@ float parse_float(const char *value) {
71 return flt; 71 return flt;
72} 72}
73 73
74enum movement_unit parse_movement_unit(const char *unit) {
75 if (strcasecmp(unit, "px") == 0) {
76 return MOVEMENT_UNIT_PX;
77 }
78 if (strcasecmp(unit, "ppt") == 0) {
79 return MOVEMENT_UNIT_PPT;
80 }
81 if (strcasecmp(unit, "default") == 0) {
82 return MOVEMENT_UNIT_DEFAULT;
83 }
84 return MOVEMENT_UNIT_INVALID;
85}
86
87int parse_movement_amount(int argc, char **argv,
88 struct movement_amount *amount) {
89 char *err;
90 amount->amount = (int)strtol(argv[0], &err, 10);
91 if (*err) {
92 // e.g. 10px
93 amount->unit = parse_movement_unit(err);
94 return 1;
95 }
96 if (argc == 1) {
97 amount->unit = MOVEMENT_UNIT_DEFAULT;
98 return 1;
99 }
100 // Try the second argument
101 amount->unit = parse_movement_unit(argv[1]);
102 if (amount->unit == MOVEMENT_UNIT_INVALID) {
103 amount->unit = MOVEMENT_UNIT_DEFAULT;
104 return 1;
105 }
106 return 2;
107}
74 108
75const char *sway_wl_output_subpixel_to_string(enum wl_output_subpixel subpixel) { 109const char *sway_wl_output_subpixel_to_string(enum wl_output_subpixel subpixel) {
76 switch (subpixel) { 110 switch (subpixel) {