summaryrefslogtreecommitdiff
path: root/gemini/parseCommon.ml
diff options
context:
space:
mode:
authorRyan Kavanagh <rak@rak.ac>2020-06-08 22:04:42 -0400
committerRyan Kavanagh <rak@rak.ac>2020-06-08 22:04:42 -0400
commit08cf9b09f53f999cad569aad9547edf6d2bf819c (patch)
tree51b9753c032071c312c82932a405c097a9e3526e /gemini/parseCommon.ml
parentFix ciphers (diff)
Fix parsing errors involving crlf vs eol
Diffstat (limited to '')
-rw-r--r--gemini/parseCommon.ml12
-rw-r--r--gemini/parseCommon.mli4
2 files changed, 13 insertions, 3 deletions
diff --git a/gemini/parseCommon.ml b/gemini/parseCommon.ml
index 999cd83..3df2c55 100644
--- a/gemini/parseCommon.ml
+++ b/gemini/parseCommon.ml
@@ -12,7 +12,9 @@ sig
val skip_spaces : unit Angstrom.t
- val take_till_cr : string Angstrom.t
+ val take_till_crlf : string Angstrom.t
+
+ val take_till_eol : string Angstrom.t
end
module ParseCommon : PARSE_COMMON =
@@ -39,5 +41,11 @@ struct
let skip_spaces = skip_while is_whitespace
- let take_till_cr = take_till is_cr <* string "\r\n"
+ let take_till_crlf = take_till is_cr <* string "\r\n"
+
+ let take_till_eol =
+ let is_eol = function
+ | '\n' | '\r' -> true
+ | _ -> false in
+ take_till is_eol <* end_of_line
end
diff --git a/gemini/parseCommon.mli b/gemini/parseCommon.mli
index 2994e6e..f469c6f 100644
--- a/gemini/parseCommon.mli
+++ b/gemini/parseCommon.mli
@@ -12,7 +12,9 @@ sig
val skip_spaces : unit Angstrom.t
- val take_till_cr : string Angstrom.t
+ val take_till_crlf : string Angstrom.t
+
+ val take_till_eol : string Angstrom.t
end
module ParseCommon : PARSE_COMMON