+** New function: read-string!/partial str [port_or_fdes [start [end]]]
+
+ Read characters from an fport or file descriptor into a string
+ STR. This procedure is scsh-compatible and can efficiently read
+ large strings. It will:
+
+ * attempt to fill the entire string, unless the START and/or
+ END arguments are supplied. i.e., START defaults to 0 and
+ END defaults to `(string-length str)'
+
+ * use the current input port if PORT_OR_FDES is not supplied.
+
+ * read any characters that are currently available, without
+ waiting for the rest (short reads are possible).
+
+ * wait for as long as it needs to for the first character to
+ become available, unless the port is in non-blocking mode
+
+ * return `#f' if end-of-file is encountered before reading any
+ characters, otherwise return the number of characters read.
+
+ * return 0 if the port is in non-blocking mode and no characters
+ are immediately available.
+
+ * return 0 if the request is for 0 bytes, with no end-of-file
+ check
+