summaryrefslogtreecommitdiffstats
path: root/common/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/util.c')
-rw-r--r--common/util.c58
1 files changed, 0 insertions, 58 deletions
diff --git a/common/util.c b/common/util.c
index 561b3804..78d46a2a 100644
--- a/common/util.c
+++ b/common/util.c
@@ -138,61 +138,3 @@ bool parse_boolean(const char *boolean, bool current) {
138 // All other values are false to match i3 138 // All other values are false to match i3
139 return false; 139 return false;
140} 140}
141
142char* resolve_path(const char* path) {
143 struct stat sb;
144 ssize_t r;
145 int i;
146 char *current = NULL;
147 char *resolved = NULL;
148
149 if(!(current = strdup(path))) {
150 return NULL;
151 }
152 for (i = 0; i < 16; ++i) {
153 if (lstat(current, &sb) == -1) {
154 goto failed;
155 }
156 if((sb.st_mode & S_IFMT) != S_IFLNK) {
157 return current;
158 }
159 if (!(resolved = malloc(sb.st_size + 1))) {
160 goto failed;
161 }
162 r = readlink(current, resolved, sb.st_size);
163 if (r == -1 || r > sb.st_size) {
164 goto failed;
165 }
166 resolved[r] = '\0';
167 free(current);
168 current = strdup(resolved);
169 free(resolved);
170 resolved = NULL;
171 }
172
173failed:
174 free(resolved);
175 free(current);
176 return NULL;
177}
178
179bool sway_dir_to_wlr(enum movement_direction dir, enum wlr_direction *out) {
180 switch (dir) {
181 case MOVE_UP:
182 *out = WLR_DIRECTION_UP;
183 break;
184 case MOVE_DOWN:
185 *out = WLR_DIRECTION_DOWN;
186 break;
187 case MOVE_LEFT:
188 *out = WLR_DIRECTION_LEFT;
189 break;
190 case MOVE_RIGHT:
191 *out = WLR_DIRECTION_RIGHT;
192 break;
193 default:
194 return false;
195 }
196
197 return true;
198}