From 9e334c1762dc964c6e267dca3780db3a7c8493c7 Mon Sep 17 00:00:00 2001
From: Kaz Kylheku <kaz@kylheku.com>
Date: Fri, 19 Apr 2019 01:03:17 -0700
Subject: No-op optimization in substring.

* lib.c (sub_str): Optimization: if the range spans
the entire string, just return it; don't allocate
a copy.
---
 lib.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib.c b/lib.c
index 14b4348d..ec8735e1 100644
--- a/lib.c
+++ b/lib.c
@@ -3742,6 +3742,8 @@ val sub_str(val str_in, val from, val to)
 
   if (ge(from, to)) {
     return null_string;
+  } else if (from == zero && eql(to, len)) {
+    return str_in;
   } else {
     size_t nchar = c_num(to) - c_num(from) + 1;
     wchar_t *sub = chk_wmalloc(nchar);
-- 
cgit v1.2.3