Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/lua/Makefile,v
retrieving revision 1.43
diff -u -r1.43 Makefile
--- Makefile	4 Dec 2011 21:12:19 -0000	1.43
+++ Makefile	6 Mar 2012 14:03:28 -0000
@@ -3,7 +3,7 @@
 COMMENT=	powerful, light-weight programming language
 
 DISTNAME=	lua-5.1.4
-REVISION=	3
+REVISION=	4
 CATEGORIES=	lang
 
 MASTER_SITES=	http://www.lua.org/ftp/ \
Index: patches/patch-src_lobject_c
===================================================================
RCS file: /cvs/ports/lang/lua/patches/patch-src_lobject_c,v
retrieving revision 1.3
diff -u -r1.3 patch-src_lobject_c
--- patches/patch-src_lobject_c	29 Oct 2007 20:30:32 -0000	1.3
+++ patches/patch-src_lobject_c	6 Mar 2012 14:03:28 -0000
@@ -10,56 +10,3 @@
          pushstr(L, buff);
          break;
        }
-@@ -180,35 +180,33 @@ const char *luaO_pushfstring (lua_State *L, const char
- 
- 
- void luaO_chunkid (char *out, const char *source, size_t bufflen) {
--  if (*source == '=') {
--    strncpy(out, source+1, bufflen);  /* remove first char */
--    out[bufflen-1] = '\0';  /* ensures null termination */
--  }
-+  if (*source == '=')
-+    strlcpy(out, source+1, bufflen);  /* remove first char */
-   else {  /* out = "source", or "...source" */
-     if (*source == '@') {
--      size_t l;
-+      size_t l, m;
-       source++;  /* skip the `@' */
--      bufflen -= sizeof(" '...' ");
-       l = strlen(source);
--      strcpy(out, "");
--      if (l > bufflen) {
--        source += (l-bufflen);  /* get last part of file name */
--        strcat(out, "...");
-+      m = bufflen - sizeof(" '...' ");
-+      strlcpy(out, "", bufflen);
-+      if (l > m) {
-+        source += (l-m);  /* get last part of file name */
-+	strlcat(out, "...", bufflen);
-       }
--      strcat(out, source);
-+      strlcat(out, source, bufflen);
-     }
-     else {  /* out = [string "string"] */
--      size_t len = strcspn(source, "\n\r");  /* stop at first newline */
--      bufflen -= sizeof(" [string \"...\"] ");
--      if (len > bufflen) len = bufflen;
--      strcpy(out, "[string \"");
-+      size_t pos = strcspn(source, "\n\r");  /* stop at first newline */
-+      size_t len = bufflen - sizeof(" [string \"...\"] ");
-+      if (pos > len) pos = len;
-+      strlcpy(out, "[string \"", bufflen);
-       if (source[len] != '\0') {  /* must truncate? */
--        strncat(out, source, len);
--        strcat(out, "...");
-+        strlcat(out, source, len);
-+        strlcat(out, "...", bufflen);
-       }
-       else
--        strcat(out, source);
--      strcat(out, "\"]");
-+        strlcat(out, source, bufflen);
-+      strlcat(out, "\"]", bufflen);
-     }
-   }
- }
Index: patches/patch-src_lstrlib_c
===================================================================
RCS file: /cvs/ports/lang/lua/patches/patch-src_lstrlib_c,v
retrieving revision 1.4
diff -u -r1.4 patch-src_lstrlib_c
--- patches/patch-src_lstrlib_c	25 Aug 2011 07:02:42 -0000	1.4
+++ patches/patch-src_lstrlib_c	6 Mar 2012 14:03:28 -0000
@@ -1,20 +1,6 @@
 $OpenBSD: patch-src_lstrlib_c,v 1.4 2011/08/25 07:02:42 jasper Exp $
 --- src/lstrlib.c.orig	Wed Aug 24 22:24:32 2011
 +++ src/lstrlib.c	Wed Aug 24 22:24:32 2011
-@@ -746,10 +746,9 @@ static const char *scanformat (lua_State *L, const cha
- 
- static void addintlen (char *form) {
-   size_t l = strlen(form);
--  char spec = form[l - 1];
--  strcpy(form + l - 1, LUA_INTFRMLEN);
--  form[l + sizeof(LUA_INTFRMLEN) - 2] = spec;
--  form[l + sizeof(LUA_INTFRMLEN) - 1] = '\0';
-+  char spec[3] = { 'l', form[l - 1], '\0' };
-+  form[l - 1] = '\0';
-+  strlcat(form, spec, MAX_FORMAT);
- }
- 
- 
 @@ -774,22 +773,24 @@ static int str_format (lua_State *L) {
        strfrmt = scanformat(L, strfrmt, form);
        switch (*strfrmt++) {
