patch 9.1.0451: No test for escaping '<' with shellescape()

Problem:  No test for escaping '<' with shellescape()
Solution: Add a test.  Use memcpy() in code to make it easier to
          understand.  Fix a typo (zeertzjq).

closes: #14876

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/structs.h b/src/structs.h
index b5341e3..804581b 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -4795,7 +4795,7 @@
 typedef struct spat
 {
     char_u	    *pat;	// the pattern (in allocated memory) or NULL
-    size_t	    patlen;	// the length of the patten (0 is pat is NULL)
+    size_t	    patlen;	// the length of the pattern (0 if pat is NULL)
     int		    magic;	// magicness of the pattern
     int		    no_scs;	// no smartcase for this pattern
     soffset_T	    off;