mirror of
https://github.com/labwc/labwc.git
synced 2025-11-03 09:01:51 -05:00
Add string-helpers.c
This commit is contained in:
parent
51507df2e7
commit
7e55e2cd09
6 changed files with 47 additions and 54 deletions
11
include/common/string-helpers.h
Normal file
11
include/common/string-helpers.h
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef __LABWC_STRING_HELPERs_H
|
||||
#define __LABWC_STRING_HELPERS_H
|
||||
|
||||
/**
|
||||
* string_strip - strip white space left and right
|
||||
* Note: this function does a left skip, so the returning pointer cannot be
|
||||
* used to free any allocated memory
|
||||
*/
|
||||
char *string_strip(char *s);
|
||||
|
||||
#endif /* __LABWC_STRING_HELPERs_H */
|
||||
|
|
@ -5,12 +5,12 @@
|
|||
* session_environment_init - set enrivonment variables
|
||||
* Note: Same as `. ~/.config/labwc/environment` (or equivalent XDG config dir)
|
||||
*/
|
||||
session_environment_init(void);
|
||||
void session_environment_init(void);
|
||||
|
||||
/**
|
||||
* session_autostart_init - run autostart file as shell script
|
||||
* Note: Same as `sh ~/.config/labwc/autostart` (or equivalent XDG config dir)
|
||||
*/
|
||||
session_autostart_init(void);
|
||||
void session_autostart_init(void);
|
||||
|
||||
#endif /* __LABWC_SESSION_H */
|
||||
|
|
|
|||
|
|
@ -5,4 +5,5 @@ labwc_sources += files(
|
|||
'grab-file.c',
|
||||
'log.c',
|
||||
'spawn.c',
|
||||
'string-helpers.c',
|
||||
)
|
||||
|
|
|
|||
27
src/common/string-helpers.c
Normal file
27
src/common/string-helpers.c
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
static void
|
||||
rtrim(char **s)
|
||||
{
|
||||
size_t len = strlen(*s);
|
||||
if (!len) {
|
||||
return;
|
||||
}
|
||||
char *end = *s + len - 1;
|
||||
while (end >= *s && isspace(*end)) {
|
||||
end--;
|
||||
}
|
||||
*(end + 1) = '\0';
|
||||
}
|
||||
|
||||
char *
|
||||
string_strip(char *s)
|
||||
{
|
||||
rtrim(&s);
|
||||
while (isspace(*s)) {
|
||||
s++;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
#include "common/dir.h"
|
||||
#include "common/log.h"
|
||||
#include "common/spawn.h"
|
||||
#include "common/string-helpers.h"
|
||||
|
||||
static bool
|
||||
isfile(const char *path)
|
||||
|
|
@ -22,30 +23,6 @@ string_empty(const char *s)
|
|||
return !s || !*s;
|
||||
}
|
||||
|
||||
static void
|
||||
rtrim(char **s)
|
||||
{
|
||||
size_t len = strlen(*s);
|
||||
if (!len) {
|
||||
return;
|
||||
}
|
||||
char *end = *s + len - 1;
|
||||
while (end >= *s && isspace(*end)) {
|
||||
end--;
|
||||
}
|
||||
*(end + 1) = '\0';
|
||||
}
|
||||
|
||||
static char *
|
||||
strstrip(char *s)
|
||||
{
|
||||
rtrim(&s);
|
||||
while (isspace(*s)) {
|
||||
s++;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
static void
|
||||
process_line(char *line)
|
||||
{
|
||||
|
|
@ -58,8 +35,8 @@ process_line(char *line)
|
|||
return;
|
||||
}
|
||||
*p = '\0';
|
||||
key = strstrip(line);
|
||||
value = strstrip(++p);
|
||||
key = string_strip(line);
|
||||
value = string_strip(++p);
|
||||
if (string_empty(key) || string_empty(value)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include "common/dir.h"
|
||||
#include "common/log.h"
|
||||
#include "common/string-helpers.h"
|
||||
#include "theme/theme.h"
|
||||
|
||||
static int
|
||||
|
|
@ -67,30 +68,6 @@ static void entry(const char *key, const char *value)
|
|||
}
|
||||
/* clang-format on */
|
||||
|
||||
static void
|
||||
rtrim(char **s)
|
||||
{
|
||||
size_t len = strlen(*s);
|
||||
if (!len) {
|
||||
return;
|
||||
}
|
||||
char *end = *s + len - 1;
|
||||
while (end >= *s && isspace(*end)) {
|
||||
end--;
|
||||
}
|
||||
*(end + 1) = '\0';
|
||||
}
|
||||
|
||||
static char *
|
||||
strstrip(char *s)
|
||||
{
|
||||
rtrim(&s);
|
||||
while (isspace(*s)) {
|
||||
s++;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
static void
|
||||
parse_config_line(char *line, char **key, char **value)
|
||||
{
|
||||
|
|
@ -99,8 +76,8 @@ parse_config_line(char *line, char **key, char **value)
|
|||
return;
|
||||
}
|
||||
*p = '\0';
|
||||
*key = strstrip(line);
|
||||
*value = strstrip(++p);
|
||||
*key = string_strip(line);
|
||||
*value = string_strip(++p);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue