<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">The documentation is correct - the option was renamed from 'line_delim' to 'line_delimiter'.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">In terms of multi-character line delimiters - the default delimiter is '\n', but it will correctly handle lines separated by "\r\n" - that was the unmodified legacy behavior. So it'll correctly parse HTTP headers. What's changed was the ability to specify an alternative delimiting character, which is useful for some protocols (e.g. FIX that uses '\1').  The choice of a single character was for having minimal impact on the existing implementation.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Note that there is a similar PR for file:read_line/1 (<a href="https://github.com/erlang/otp/pull/757">https://github.com/erlang/otp/pull/757</a>), but it's currently stalled as it presently only supports reading in raw mode. If there are any volunteers to help it get working in the non-raw mode, that would help to get it merged sooner.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 24, 2016 at 8:14 AM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Noticed one small oddity:<br>
<br>
  OTP-12837    Application(s): kernel<br>
<br>
               Add {line_delim, byte()} option to inet:setopts/2 and<br>
               decode_packet/3<br>
<br>
In the documentation it appears to be {line_delimiter, byte()}.<br>
<br>
In the documentation it is listed in the text below the function, but not in the types (true for both decode_packet and inet:setopts/gen_tcp:option).<br>
<br>
Finally the choice of a single byte is curious. For example in HTTP the line delimiter is \r\n.<br>
<br>
On 06/22/2016 12:18 PM, Kenneth Lundin wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Erlang/OTP 19.0 has been released<br>
--------------------------------------------------<br>
<br>
Erlang/OTP 19.0 is a new major release with new features, quite a few<br>
(characteristics) improvements, as well as a few incompatibilities.<br>
<br>
Some highlights of the release are:<br>
<br>
  * *compiler, stdlib*:<br>
      o New preprocessor macros *?FUNCTION_NAME, ?FUNCTION_ARITY*<br>
      o New preprocessor directives -error(Term) and -warning(Term) to<br>
        cause a compilation error or warning, respectively.<br>
<br>
  * *gen_statem* a new state machine behavior<br>
  * *mnesia_ext*: plugin of external storage solutions to mnesia<br>
  * *crypto*: uses EVP interface in OpenSSL resulting in generally<br>
    better performance and support for HW acceleration<br>
  * *ssh*: performance improvements, uses the new gen_statem behavior<br>
  * *ssl*: enhanced error log messages<br>
  * *dialyzer*: the support for maps is very much extended both the type<br>
    specification syntax and the type analysis.<br>
  * *erts*:<br>
      o erlang:open_port(spawn, ...) 3-5 times faster<br>
      o tracing, extensive improvements (scalability, speed, match<br>
        specifications on send/receive, support for lttng, ...)<br>
      o dirty schedulers improved<br>
      o per process configurable handling of message_queue<br>
      o fast loading of multiple modules<br>
      o max_heap_size process flag<br>
  * *erts/kernel:*<br>
      o |Experimental support for Unix Domain Sockets<br>
        ||Example: ||gen_udp:open(0, [{ifaddr,{local,"/tmp/socket"}}])|||<br>
  * and much more ....<br>
<br>
You can find the Release Notes with more detailed info at<br>
<br>
<a href="http://www.erlang.org/download/otp_src_19.0.readme" rel="noreferrer" target="_blank">http://www.erlang.org/download/otp_src_19.0.readme</a><br>
<br>
You find the source code at <a href="http://github.com" rel="noreferrer" target="_blank">github.com</a> <<a href="http://github.com/erlang" rel="noreferrer" target="_blank">http://github.com/erlang</a>> in the<br>
official Erlang repository.<br>
<br>
Git tag OTP-19.0<br>
<br>
<a href="https://github.com/erlang/otp/tree/OTP-19.0" rel="noreferrer" target="_blank">https://github.com/erlang/otp/tree/OTP-19.0</a><br>
<br>
You can also read the documentation on-line here:<br>
(see the Release Notes mentioned above for release notes which<br>
are not updated in the doc, but the new functionality is)<br>
<br>
<a href="http://www.erlang.org/doc" rel="noreferrer" target="_blank">http://www.erlang.org/doc</a><br>
<br>
We also want to thank all of you that have contributed with new<br>
features, bug-fixes, suggestions and bug reports.<br>
<br>
The Erlang/OTP Team at Ericsson<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br><span class="HOEnZb"><font color="#888888">
</font></span></blockquote><span class="HOEnZb"><font color="#888888">
<br>
-- <br>
Loïc Hoguin<br>
<a href="http://ninenines.eu" rel="noreferrer" target="_blank">http://ninenines.eu</a><br>
Author of The Erlanger Playbook,<br>
A book about software development using Erlang<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</font></span></blockquote></div><br></div>