+ /*
+ * Conventional actions files should have a match all block
+ * at the start:
+ * cur_line = {...global actions...}
+ * cur_line->next = /
+ * cur_line->next->next = {...actions...} or EOF
+ */
+ if ( (cur_line != NULL)
+ && (cur_line->type == FILE_LINE_ACTION)
+ && (cur_line->next != NULL)
+ && (cur_line->next->type == FILE_LINE_URL)
+ && (0 == strcmp(cur_line->next->unprocessed, "/"))
+ && ( (cur_line->next->next == NULL)
+ || (cur_line->next->next->type != FILE_LINE_URL)
+ ) )
+ {
+ /*
+ * Generate string with buttons to set actions for "/" to
+ * any predefined set of actions (named standard.*, propably
+ * residing in standard.action).
+ * FIXME: Shouldn't include hardwired HTML here, use line template instead!
+ */
+
+ buttons = strdup(" ");
+ for (i = 0; i < MAX_ACTION_FILES; i++)
+ {
+ if (((fl = csp->actions_list[i]) != NULL) && ((b = fl->f) != NULL))
+ {
+ for (b = b->next; NULL != b; b = b->next)
+ {
+ if (!strncmp(b->url->spec, "standard.", 9) && *(b->url->spec + 9) != '\0')
+ {
+ snprintf(buf, 150, "<p><a name=\"l@s@\" href=\"eas?f=@f@&v=@v@&s=@all-urls-s@&p=%s\">Set"
+ " to %s</a></p>", b->url->spec + 9, b->url->spec + 9);
+ if (!err) err = string_append(&buttons, buf);
+ }
+ }
+ }
+ }
+ if (!err) err = map(exports, "all-urls-buttons", 1, buttons, 0);
+
+ /*
+ * Conventional actions file, supply extra editing help.
+ * (e.g. don't allow them to make it an unconventional one).
+ */
+ err = map_conditional(exports, "all-urls-present", 1);
+
+ snprintf(buf, 150, "%d", line_number);
+ if (!err) err = map(exports, "all-urls-s", 1, buf, 1);
+ snprintf(buf, 150, "%d", line_number + 2);
+ if (!err) err = map(exports, "all-urls-s-next", 1, buf, 1);
+ if (!err) err = map(exports, "all-urls-actions", 1,
+ actions_to_html(cur_line->data.action), 0);
+
+ /* Skip the 2 lines */
+ cur_line = cur_line->next->next;
+ line_number += 2;
+
+ /*
+ * Note that prev_section_line_number is NOT set here.
+ * This is deliberate and not a bug. It stops a "Move up"
+ * option appearing on the next section. Clicking "Move
+ * up" would make the actions file unconventional, which
+ * we don't want, so we hide this option.
+ */
+ }
+ else
+ {
+ /*
+ * Non-standard actions file - does not begin with
+ * the "All URLs" section.
+ */
+ err = map_conditional(exports, "all-urls-present", 0);
+ }
+
+ /* Set up global exports */
+