This commit is contained in:
Enrico Weigelt, metux IT consult 2025-02-26 11:46:34 +01:00
parent fba0c84ab5
commit db18f717ac

View File

@ -351,10 +351,10 @@ SetUpRemap(InputLine * line, RemapSpec * remap)
static Bool static Bool
MatchOneOf(const char *wanted, const char *vals_defined) MatchOneOf(const char *wanted, const char *vals_defined)
{ {
const char *str, *next;
int want_len = strlen(wanted); int want_len = strlen(wanted);
for (str = vals_defined, next = NULL; str != NULL; str = next) { const char *str, *next = NULL;
for (str = vals_defined; str != NULL; str = next) {
int len; int len;
next = strchr(str, ','); next = strchr(str, ',');
@ -377,11 +377,6 @@ static Bool
CheckLine(InputLine * line, CheckLine(InputLine * line,
RemapSpec * remap, XkbRF_RulePtr rule, XkbRF_GroupPtr group) RemapSpec * remap, XkbRF_RulePtr rule, XkbRF_GroupPtr group)
{ {
char *str, *tok;
register int nread;
_Xstrtokparams strtok_buf;
Bool append = FALSE;
if (line && line->line && line->line[0] == '!') { if (line && line->line && line->line[0] == '!') {
if (line->line[1] == '$' || if (line->line[1] == '$' ||
(line->line[1] == ' ' && line->line[2] == '$')) { (line->line[1] == ' ' && line->line[2] == '$')) {
@ -424,7 +419,13 @@ CheckLine(InputLine * line,
FileSpec tmp = { 0 }; FileSpec tmp = { 0 };
str = line->line; char *str = line->line;
int nread;
_Xstrtokparams strtok_buf;
char *tok;
Bool append = FALSE;
for (nread = 0; (tok = _XStrtok(str, " ", strtok_buf)) != NULL; nread++) { for (nread = 0; (tok = _XStrtok(str, " ", strtok_buf)) != NULL; nread++) {
str = NULL; str = NULL;
if (strcmp(tok, "=") == 0) { if (strcmp(tok, "=") == 0) {
@ -480,11 +481,9 @@ CheckLine(InputLine * line,
static char * static char *
_Concat(char *str1, const char *str2) _Concat(char *str1, const char *str2)
{ {
int len;
if ((!str1) || (!str2)) if ((!str1) || (!str2))
return str1; return str1;
len = strlen(str1) + strlen(str2) + 1; int len = strlen(str1) + strlen(str2) + 1;
str1 = realloc(str1, len * sizeof(char)); str1 = realloc(str1, len * sizeof(char));
if (str1) if (str1)
strcat(str1, str2); strcat(str1, str2);
@ -505,10 +504,10 @@ squeeze_spaces(char *p1)
static Bool static Bool
MakeMultiDefs(XkbRF_MultiDefsPtr mdefs, XkbRF_VarDefsPtr defs) MakeMultiDefs(XkbRF_MultiDefsPtr mdefs, XkbRF_VarDefsPtr defs)
{ {
char *options;
memset((char *) mdefs, 0, sizeof(XkbRF_MultiDefsRec)); memset((char *) mdefs, 0, sizeof(XkbRF_MultiDefsRec));
mdefs->model = defs->model; mdefs->model = defs->model;
options = Xstrdup(defs->options);
char *options = Xstrdup(defs->options);
if (options) if (options)
squeeze_spaces(options); squeeze_spaces(options);
mdefs->options = options; mdefs->options = options;
@ -518,15 +517,12 @@ MakeMultiDefs(XkbRF_MultiDefsPtr mdefs, XkbRF_VarDefsPtr defs)
mdefs->layout[0] = defs->layout; mdefs->layout[0] = defs->layout;
} }
else { else {
char *p; char *layout = Xstrdup(defs->layout);
char *layout;
layout = Xstrdup(defs->layout);
if (layout == NULL) if (layout == NULL)
return FALSE; return FALSE;
squeeze_spaces(layout); squeeze_spaces(layout);
mdefs->layout[1] = layout; mdefs->layout[1] = layout;
p = layout; char *p = layout;
for (int i = 2; i <= XkbNumKbdGroups; i++) { for (int i = 2; i <= XkbNumKbdGroups; i++) {
if ((p = strchr(p, ','))) { if ((p = strchr(p, ','))) {
*p++ = '\0'; *p++ = '\0';
@ -546,15 +542,12 @@ MakeMultiDefs(XkbRF_MultiDefsPtr mdefs, XkbRF_VarDefsPtr defs)
mdefs->variant[0] = defs->variant; mdefs->variant[0] = defs->variant;
} }
else { else {
char *p; char *variant = Xstrdup(defs->variant);
char *variant;
variant = Xstrdup(defs->variant);
if (variant == NULL) if (variant == NULL)
return FALSE; return FALSE;
squeeze_spaces(variant); squeeze_spaces(variant);
mdefs->variant[1] = variant; mdefs->variant[1] = variant;
p = variant; char *p = variant;
for (int i = 2; i <= XkbNumKbdGroups; i++) { for (int i = 2; i <= XkbNumKbdGroups; i++) {
if ((p = strchr(p, ','))) { if ((p = strchr(p, ','))) {
*p++ = '\0'; *p++ = '\0';