summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsfeed_opml_export11
-rw-r--r--sfeed_opml_import.c10
2 files changed, 17 insertions, 4 deletions
diff --git a/sfeed_opml_export b/sfeed_opml_export
index 9665792..212b3c6 100755
--- a/sfeed_opml_export
+++ b/sfeed_opml_export
@@ -22,11 +22,20 @@ loadconfig() {
fi
}
+# escape(s)
+escape() {
+ printf '%s' "$1" | sed 's@"@\"@g'
+}
+
# override feeds function to ouput opml XML.
# feed(name, feedurl, [basesiteurl], [encoding])
feed() {
+ name=$(escape "$1")
+ xmlurl=$(escape "$2")
+ htmlurl=$(escape "$3")
+
printf '\t<outline title="%s" text="%s" xmlUrl="%s" htmlUrl="%s"/>\n' \
- "$1" "$1" "$2" "$3"
+ "${name}" "${name}" "${xmlurl}" "${htmlurl}"
}
# load config file.
diff --git a/sfeed_opml_import.c b/sfeed_opml_import.c
index fdee71a..46aed03 100644
--- a/sfeed_opml_import.c
+++ b/sfeed_opml_import.c
@@ -16,9 +16,13 @@ static char url[2048], text[256], title[256];
static void
printsafe(const char *s)
{
- for (; *s; s++)
- if (!iscntrl((int)*s) && *s != '\'' && *s != '\\')
- putchar((int)*s);
+ for (; *s; s++) {
+ if (iscntrl((int)*s))
+ continue;
+ if (*s == '\\' || *s == '\'')
+ putchar('\\');
+ putchar((int)*s);
+ }
}
static void