Преглед на файлове

new macro 'luai_writeline' to print newlines (and flush 'stdout')

Roberto Ierusalimschy преди 14 години
родител
ревизия
ee7d0c2649
променени са 3 файла, в които са добавени 11 реда и са изтрити 9 реда
  1. 4 4
      lbaselib.c
  2. 4 3
      lua.c
  3. 3 2
      luaconf.h

+ 4 - 4
lbaselib.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lbaselib.c,v 1.259 2011/01/26 16:30:02 roberto Exp roberto $
+** $Id: lbaselib.c,v 1.260 2011/02/28 17:32:10 roberto Exp roberto $
 ** Basic library
 ** Basic library
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -32,13 +32,13 @@ static int luaB_print (lua_State *L) {
     lua_call(L, 1, 1);
     lua_call(L, 1, 1);
     s = lua_tolstring(L, -1, &l);  /* get result */
     s = lua_tolstring(L, -1, &l);  /* get result */
     if (s == NULL)
     if (s == NULL)
-      return luaL_error(L, LUA_QL("tostring") " must return a string to "
-                           LUA_QL("print"));
+      return luaL_error(L,
+         LUA_QL("tostring") " must return a string to " LUA_QL("print"));
     if (i>1) luai_writestring("\t", 1);
     if (i>1) luai_writestring("\t", 1);
     luai_writestring(s, l);
     luai_writestring(s, l);
     lua_pop(L, 1);  /* pop result */
     lua_pop(L, 1);  /* pop result */
   }
   }
-  luai_writestring("\n", 1);
+  luai_writeline();
   return 0;
   return 0;
 }
 }
 
 

+ 4 - 3
lua.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: lua.c,v 1.197 2011/03/14 15:39:42 roberto Exp roberto $
+** $Id: lua.c,v 1.198 2011/05/03 16:01:57 roberto Exp roberto $
 ** Lua stand-alone interpreter
 ** Lua stand-alone interpreter
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -183,7 +183,8 @@ static int docall (lua_State *L, int narg, int nres) {
 
 
 
 
 static void print_version (void) {
 static void print_version (void) {
-  luai_writestring(LUA_COPYRIGHT "\n", sizeof(LUA_COPYRIGHT) + 1);
+  luai_writestring(LUA_COPYRIGHT, sizeof(LUA_COPYRIGHT));
+  luai_writeline();
 }
 }
 
 
 
 
@@ -320,7 +321,7 @@ static void dotty (lua_State *L) {
     }
     }
   }
   }
   lua_settop(L, 0);  /* clear stack */
   lua_settop(L, 0);  /* clear stack */
-  luai_writestring("\n", 1);
+  luai_writeline();
   progname = oldprogname;
   progname = oldprogname;
 }
 }
 
 

+ 3 - 2
luaconf.h

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: luaconf.h,v 1.156 2011/04/20 18:25:54 roberto Exp roberto $
+** $Id: luaconf.h,v 1.157 2011/04/29 13:56:28 roberto Exp roberto $
 ** Configuration file for Lua
 ** Configuration file for Lua
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -209,10 +209,11 @@
 
 
 
 
 /*
 /*
-@@ luai_writestring defines how 'print' prints its results.
+@@ luai_writestring/luai_writeline define how 'print' prints its results.
 */
 */
 #include <stdio.h>
 #include <stdio.h>
 #define luai_writestring(s,l)	fwrite((s), sizeof(char), (l), stdout)
 #define luai_writestring(s,l)	fwrite((s), sizeof(char), (l), stdout)
+#define luai_writeline()	(luai_writestring("\n", 1), fflush(stdout))
 
 
 /*
 /*
 @@ luai_writestringerror defines how to print error messages.
 @@ luai_writestringerror defines how to print error messages.