diff options
author | Waldemar Celes <celes@tecgraf.puc-rio.br> | 1994-08-11 20:11:57 -0300 |
---|---|---|
committer | Waldemar Celes <celes@tecgraf.puc-rio.br> | 1994-08-11 20:11:57 -0300 |
commit | 3921b43e44a47334efd6da5c48e151cb3ad2fa96 (patch) | |
tree | a2436223cb42c6c6127fb36506e718f6a80c3c79 | |
parent | b28da81cfe371f602474f75c0c4f706772eed92a (diff) | |
download | lua-3921b43e44a47334efd6da5c48e151cb3ad2fa96.tar.gz lua-3921b43e44a47334efd6da5c48e151cb3ad2fa96.tar.bz2 lua-3921b43e44a47334efd6da5c48e151cb3ad2fa96.zip |
Implementacao das funcoes 'getenv' e 'abort'
-rw-r--r-- | iolib.c | 37 |
1 files changed, 34 insertions, 3 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.4 1994/04/25 20:11:23 celes Exp celes $"; | 6 | char *rcs_iolib="$Id: iolib.c,v 1.5 1994/08/04 16:23:29 celes Exp celes $"; |
7 | 7 | ||
8 | #include <stdlib.h> | 8 | #include <stdlib.h> |
9 | #include <string.h> | 9 | #include <string.h> |
@@ -443,7 +443,7 @@ static void io_write (void) | |||
443 | ** Execute a executable program using "system". | 443 | ** Execute a executable program using "system". |
444 | ** Return the result of execution. | 444 | ** Return the result of execution. |
445 | */ | 445 | */ |
446 | void io_execute (void) | 446 | static void io_execute (void) |
447 | { | 447 | { |
448 | lua_Object o = lua_getparam (1); | 448 | lua_Object o = lua_getparam (1); |
449 | if (o == NULL || !lua_isstring (o)) | 449 | if (o == NULL || !lua_isstring (o)) |
@@ -463,7 +463,7 @@ void io_execute (void) | |||
463 | ** Remove a file. | 463 | ** Remove a file. |
464 | ** On error put 0 on stack, otherwise put 1. | 464 | ** On error put 0 on stack, otherwise put 1. |
465 | */ | 465 | */ |
466 | void io_remove (void) | 466 | static void io_remove (void) |
467 | { | 467 | { |
468 | lua_Object o = lua_getparam (1); | 468 | lua_Object o = lua_getparam (1); |
469 | if (o == NULL || !lua_isstring (o)) | 469 | if (o == NULL || !lua_isstring (o)) |
@@ -481,6 +481,35 @@ void io_remove (void) | |||
481 | return; | 481 | return; |
482 | } | 482 | } |
483 | 483 | ||
484 | |||
485 | /* | ||
486 | ** To get a environment variables | ||
487 | */ | ||
488 | static void io_getenv (void) | ||
489 | { | ||
490 | lua_Object s = lua_getparam(1); | ||
491 | if (!lua_isstring(s)) | ||
492 | lua_pushnil(); | ||
493 | else | ||
494 | { | ||
495 | char *env = getenv(lua_getstring(s)); | ||
496 | if (env == NULL) lua_pushnil(); | ||
497 | else lua_pushstring(env); | ||
498 | } | ||
499 | } | ||
500 | |||
501 | /* | ||
502 | ** To abort | ||
503 | */ | ||
504 | static void io_abort (void) | ||
505 | { | ||
506 | lua_Object o = lua_getparam(1); | ||
507 | if (lua_isstring(o)) | ||
508 | printf("%s\n", lua_getstring(o)); | ||
509 | exit(1); | ||
510 | } | ||
511 | |||
512 | |||
484 | /* | 513 | /* |
485 | ** Open io library | 514 | ** Open io library |
486 | */ | 515 | */ |
@@ -493,4 +522,6 @@ void iolib_open (void) | |||
493 | lua_register ("write", io_write); | 522 | lua_register ("write", io_write); |
494 | lua_register ("execute", io_execute); | 523 | lua_register ("execute", io_execute); |
495 | lua_register ("remove", io_remove); | 524 | lua_register ("remove", io_remove); |
525 | lua_register ("getenv", io_getenv); | ||
526 | lua_register ("abort", io_abort); | ||
496 | } | 527 | } |