diff --git a/ChangeLog b/ChangeLog index 90b0afc6..bc354da5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -52,6 +52,12 @@ v0.35.05 19-Oct-2002 Added length check when importing taglines. Now writes also ~/etc/msg.txt for MsgEd after messagebase is updated. + When a new echomail area was created with a default group + setting, then when the group was selected setup would create + the jam basepath itself instead of using the base from the + group. + New JAM areas will not have spaces anymore in the pathnames. + Spaces are replaced by underscores. mbfido: With ticfile processing, the KeepDate setup setting now works. diff --git a/mbsetup/m_marea.c b/mbsetup/m_marea.c index 7b1674bf..207d992e 100644 --- a/mbsetup/m_marea.c +++ b/mbsetup/m_marea.c @@ -1156,19 +1156,40 @@ int EditMsgRec(int Area) * Invent the place for the JAM message base. */ temp = calloc(PATH_MAX, sizeof(char)); - sprintf(temp, "%s/%s", msgs.Group, msgs.Tag); - for (i = 0; i < strlen(temp); i++) { - if (isupper(temp[i])) - temp[i] = tolower(temp[i]); - /* - * If dots in the group or area tag, replace them - * with directory slashes to create a group tree. - */ - if (temp[i] == '.') - temp[i] = '/'; + if (strlen(mgroup.BasePath)) { + sprintf(temp, "%s", msgs.Tag); + for (i = 0; i < strlen(temp); i++) { + if (isupper(temp[i])) + temp[i] = tolower(temp[i]); + /* + * If dots in the group or area tag, replace them + * with directory slashes to create a group tree. + */ + if (temp[i] == '.') + temp[i] = '/'; + } + sprintf(msgs.Base, "%s/%s", mgroup.BasePath, temp); + } else { + sprintf(temp, "%s/%s", msgs.Group, msgs.Tag); + for (i = 0; i < strlen(temp); i++) { + if (isupper(temp[i])) + temp[i] = tolower(temp[i]); + /* + * If dots in the group or area tag, replace them + * with directory slashes to create a group tree. + */ + if (temp[i] == '.') + temp[i] = '/'; + } + sprintf(msgs.Base, "%s/var/mail/%s", getenv("MBSE_ROOT"), temp); } - sprintf(msgs.Base, "%s/var/mail/%s", getenv("MBSE_ROOT"), temp); free(temp); + /* + * Now fix any spaces in the path. + */ + for (i = 0; i < strlen(msgs.Base); i++) + if (msgs.Base[i] == ' ') + msgs.Base[i] = '_'; } } SetScreen();