diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1996-02-09 17:02:30 -0200 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1996-02-09 17:02:30 -0200 |
| commit | ca412214cbbeb8f40e9abea534e6171044cc0a57 (patch) | |
| tree | 41fc8e4b38c1f43147435183f9dbe7b7ff2bab20 | |
| parent | 801722825d94b3bddd94d83887b081c328772147 (diff) | |
| download | lua-ca412214cbbeb8f40e9abea534e6171044cc0a57.tar.gz lua-ca412214cbbeb8f40e9abea534e6171044cc0a57.tar.bz2 lua-ca412214cbbeb8f40e9abea534e6171044cc0a57.zip | |
new function "date", replaces old "date" and "time".
| -rw-r--r-- | iolib.c | 58 | ||||
| -rw-r--r-- | manual.tex | 20 |
2 files changed, 32 insertions, 46 deletions
| @@ -3,7 +3,7 @@ | |||
| 3 | ** Input/output library to LUA | 3 | ** Input/output library to LUA |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | char *rcs_iolib="$Id: iolib.c,v 1.32 1996/01/29 16:40:09 roberto Exp roberto $"; | 6 | char *rcs_iolib="$Id: iolib.c,v 1.33 1996/02/05 21:32:19 roberto Exp roberto $"; |
| 7 | 7 | ||
| 8 | #include <stdio.h> | 8 | #include <stdio.h> |
| 9 | #include <ctype.h> | 9 | #include <ctype.h> |
| @@ -12,6 +12,7 @@ char *rcs_iolib="$Id: iolib.c,v 1.32 1996/01/29 16:40:09 roberto Exp roberto $"; | |||
| 12 | #include <string.h> | 12 | #include <string.h> |
| 13 | #include <time.h> | 13 | #include <time.h> |
| 14 | #include <stdlib.h> | 14 | #include <stdlib.h> |
| 15 | #include <errno.h> | ||
| 15 | 16 | ||
| 16 | #include "lua.h" | 17 | #include "lua.h" |
| 17 | #include "luadebug.h" | 18 | #include "luadebug.h" |
| @@ -490,9 +491,14 @@ static void io_remove (void) | |||
| 490 | lua_pushnil(); | 491 | lua_pushnil(); |
| 491 | } | 492 | } |
| 492 | 493 | ||
| 494 | static void io_errorno (void) | ||
| 495 | { | ||
| 496 | /* lua_pushstring(strerror(errno));*/ | ||
| 497 | } | ||
| 498 | |||
| 493 | 499 | ||
| 494 | /* | 500 | /* |
| 495 | ** To get a environment variables | 501 | ** To get a environment variable |
| 496 | */ | 502 | */ |
| 497 | static void io_getenv (void) | 503 | static void io_getenv (void) |
| 498 | { | 504 | { |
| @@ -502,42 +508,23 @@ static void io_getenv (void) | |||
| 502 | } | 508 | } |
| 503 | 509 | ||
| 504 | /* | 510 | /* |
| 505 | ** Return time: hour, min, sec | 511 | ** Return user formatted time stamp |
| 506 | */ | ||
| 507 | static void io_time (void) | ||
| 508 | { | ||
| 509 | time_t t; | ||
| 510 | struct tm *s; | ||
| 511 | |||
| 512 | time(&t); | ||
| 513 | s = localtime(&t); | ||
| 514 | lua_pushnumber(s->tm_hour); | ||
| 515 | lua_pushnumber(s->tm_min); | ||
| 516 | lua_pushnumber(s->tm_sec); | ||
| 517 | } | ||
| 518 | |||
| 519 | /* | ||
| 520 | ** Return date: dd, mm, yyyy, weekday | ||
| 521 | */ | 512 | */ |
| 522 | static void io_date (void) | 513 | static void io_date (void) |
| 523 | { | 514 | { |
| 524 | time_t t; | 515 | time_t t; |
| 525 | struct tm *s; | 516 | struct tm *tm; |
| 526 | 517 | char *s; | |
| 527 | time(&t); | 518 | char b[BUFSIZ]; |
| 528 | s = localtime(&t); | 519 | if (lua_getparam(1) == LUA_NOOBJECT) |
| 529 | lua_pushnumber(s->tm_mday); | 520 | s = "%c"; |
| 530 | lua_pushnumber(s->tm_mon+1); | 521 | else |
| 531 | lua_pushnumber(s->tm_year+1900); | 522 | s = lua_check_string(1, "date"); |
| 532 | lua_pushnumber(s->tm_wday+1); | 523 | time(&t); tm = localtime(&t); |
| 533 | } | 524 | if (strftime(b,sizeof(b),s,tm)) |
| 534 | 525 | lua_pushstring(b); | |
| 535 | /* | 526 | else |
| 536 | ** Beep | 527 | lua_error("`date' format too long"); |
| 537 | */ | ||
| 538 | static void io_beep (void) | ||
| 539 | { | ||
| 540 | printf("\a"); | ||
| 541 | } | 528 | } |
| 542 | 529 | ||
| 543 | /* | 530 | /* |
| @@ -628,10 +615,9 @@ void iolib_open (void) | |||
| 628 | lua_register ("write", io_write); | 615 | lua_register ("write", io_write); |
| 629 | lua_register ("execute", io_execute); | 616 | lua_register ("execute", io_execute); |
| 630 | lua_register ("remove", io_remove); | 617 | lua_register ("remove", io_remove); |
| 618 | lua_register ("ioerror", io_errorno); | ||
| 631 | lua_register ("getenv", io_getenv); | 619 | lua_register ("getenv", io_getenv); |
| 632 | lua_register ("time", io_time); | ||
| 633 | lua_register ("date", io_date); | 620 | lua_register ("date", io_date); |
| 634 | lua_register ("beep", io_beep); | ||
| 635 | lua_register ("exit", io_exit); | 621 | lua_register ("exit", io_exit); |
| 636 | lua_register ("debug", io_debug); | 622 | lua_register ("debug", io_debug); |
| 637 | lua_register ("print_stack", errorfb); | 623 | lua_register ("print_stack", errorfb); |
| @@ -1,4 +1,4 @@ | |||
| 1 | % $Id: manual.tex,v 1.7 1996/02/09 16:37:58 roberto Exp roberto $ | 1 | % $Id: manual.tex,v 1.8 1996/02/09 17:21:27 roberto Exp roberto $ |
| 2 | 2 | ||
| 3 | \documentstyle[A4,11pt,bnf]{article} | 3 | \documentstyle[A4,11pt,bnf]{article} |
| 4 | 4 | ||
| @@ -32,7 +32,7 @@ Waldemar Celes Filho | |||
| 32 | Departamento de Inform\'atica --- PUC-Rio | 32 | Departamento de Inform\'atica --- PUC-Rio |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | \date{\small \verb$Date: 1996/02/09 16:37:58 $} | 35 | \date{\small \verb$Date: 1996/02/09 17:21:27 $} |
| 36 | 36 | ||
| 37 | \maketitle | 37 | \maketitle |
| 38 | 38 | ||
| @@ -1440,17 +1440,17 @@ and strings with \verb'%s'. | |||
| 1440 | For better format facilities, | 1440 | For better format facilities, |
| 1441 | the function \verb'format' should be used (\see{format}). | 1441 | the function \verb'format' should be used (\see{format}). |
| 1442 | 1442 | ||
| 1443 | \subsubsection*{{\tt date ()}}\Deffunc{date} | 1443 | \subsubsection*{{\tt date ([format])}}\Deffunc{date} |
| 1444 | 1444 | ||
| 1445 | This function returns 4 values: | 1445 | This function returns a string containing date and time |
| 1446 | the current day of the month, | 1446 | formatted according to the given string \verb'format', |
| 1447 | the month ([1-12]), the current year, | 1447 | following the same rules of the ANSI C function \verb'strftime'. |
| 1448 | and the day of the week (1 = Sunday, 7 = Saturday). | 1448 | When called without arguments, |
| 1449 | it returns a reasonable date and time representation. | ||
| 1449 | 1450 | ||
| 1450 | \subsubsection*{{\tt time ()}}\Deffunc{time} | 1451 | This function replaces functions \verb'date' and \verb'time' from |
| 1452 | previous Lua versions. | ||
| 1451 | 1453 | ||
| 1452 | This function returns the current time through 3 values: | ||
| 1453 | hours ([0-23]), minutes, and seconds. | ||
| 1454 | 1454 | ||
| 1455 | % \subsubsection*{{\tt debug ()}} | 1455 | % \subsubsection*{{\tt debug ()}} |
| 1456 | % This function, when called, repeatedly presents a prompt \verb'lua_debug> ' | 1456 | % This function, when called, repeatedly presents a prompt \verb'lua_debug> ' |
