WIP
This commit is contained in:
parent
fba0c84ab5
commit
db18f717ac
|
@ -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';
|
||||||
|
|
Loading…
Reference in New Issue