3/12/19 WHAT'S NEW IN THIS RELEASE? The SP.ASSIGN command has been extended to allow inclusion of SETPTR options. Use of @RECORD as the final display clause element in a REFORMAT command appends the entire record with no conversion or formatting applied. A dictionary I-type expression can now refer to a field by field number using a name such as "F4" for field 4. The QMBasic INPUT statement (but not INPUT @) now has a RAW option that causes it to read a given number of characters with no special interpretation of newline or backspace. The QMBasic GETNLS() and SETNLS operations have been extended to allow programmatic control of European date format. The QMBasic debugger can now expand non-printing characters when displaying string variables. This is controlled by the "^" command in the same way as its equivalent in the ED editor. The default value of the SORTMEM configuration parameter has been increased to 4096 (4Mb) for improved performance. This change affects new QM installations only. The parameter may be modified on existing installations by editing the qmconfig file. Setting the USERPOOL configuration parameter to zero changes the way in which the user number is allocated when a user logs in. The default behaviour of QM is to allocate user numbers in a rotating manner. With USERPOOL set to zero, the lowest available user number is assigned. BUG FIXES IN THIS RELEASE The subfile component name of a multifile should be case insensitive if the VOC is case insensitive. The Proc "IF S10" reference to select list 10 was not processed correctly. Use of a UNC pathname (\\server\dir\file) to reference part of a distributed file caused an error. Triggers should be suppressed during ENCRYPT.FILE and DECRYPT.FILE. The GRANT.KEY and REVOKE.KEY commands could cause internal data corruption. Use of the SCROLL option in a query processor report on an ECS mode system did not restore the page correctly when scrolling back if the page contained characters outside the 8-bit set. Using the QMBasic EXECUTE operation to do a GRANT.KEY or REVOKE.KEY command caused the following action to fail in unpredictable ways. The QMBasic LOCATE statement could cause an abnormal termination if the item being searched for was a very long numeric value. The QMBasic MATBUILD statement did not work correctly if the matrix had trailing unassigned elements. The QMBasic MERGELIST() function behaved incorrectly for some merge types when one of the lists was empty. The QMBasic OSPATH() function with key OS$SET.LINK returned the incorrect value. The QMBasic !CALLHTTP() class POST method could cause the process to hang. CSV mode output from the query processor or any other use of sequential file output with an encoding that specified use of a byte order mark inserted the BOM on every line, not just the first. The query processor did not handle some WHEN clauses correctly. The I-type compiler did not handle multi-level links. The terminfo definitions for adds4000 and adds4000-at should include xmc#1. Several commands did not handle the terminfo "am" token correctly when deterining the usable screen width.