Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 1 | This file is inlib.def, from which is created inlib.c. |
| 2 | It implements the Apollo-specific builtin "inlib" in Bash. |
| 3 | |
Jari Aalto | 7117c2d | 2002-07-17 14:10:11 +0000 | [diff] [blame] | 4 | Copyright (C) 1987-2002 Free Software Foundation, Inc. |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 5 | |
| 6 | This file is part of GNU Bash, the Bourne Again SHell. |
| 7 | |
Jari Aalto | 3185942 | 2009-01-12 13:36:28 +0000 | [diff] [blame] | 8 | Bash is free software: you can redistribute it and/or modify |
| 9 | it under the terms of the GNU General Public License as published by |
| 10 | the Free Software Foundation, either version 3 of the License, or |
| 11 | (at your option) any later version. |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 12 | |
Jari Aalto | 3185942 | 2009-01-12 13:36:28 +0000 | [diff] [blame] | 13 | Bash is distributed in the hope that it will be useful, |
| 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 16 | GNU General Public License for more details. |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 17 | |
Jari Aalto | 3185942 | 2009-01-12 13:36:28 +0000 | [diff] [blame] | 18 | You should have received a copy of the GNU General Public License |
| 19 | along with Bash. If not, see <http://www.gnu.org/licenses/>. |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 20 | |
| 21 | $PRODUCES inlib.c |
Jari Aalto | ccc6cda | 1996-12-23 17:02:34 +0000 | [diff] [blame] | 22 | #include <config.h> |
| 23 | |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 24 | #include <stdio.h> |
| 25 | #include "../shell.h" |
| 26 | |
| 27 | $BUILTIN inlib |
| 28 | $FUNCTION inlib_builtin |
| 29 | $DEPENDS_ON apollo |
| 30 | $SHORT_DOC inlib pathname [pathname...] |
Jari Aalto | 3185942 | 2009-01-12 13:36:28 +0000 | [diff] [blame] | 31 | Install user-supplied library. |
| 32 | |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 33 | Install a user-supplied library specified by pathname in the current |
| 34 | shell process. The library is used to resolve external references |
| 35 | in programs and libraries loaded after its installation. Note |
| 36 | that the library is not loaded into the address space unless it is |
| 37 | needed to resolve an external reference. The list of inlibed |
| 38 | libraries is passed to all children of the current shell. |
Jari Aalto | 3185942 | 2009-01-12 13:36:28 +0000 | [diff] [blame] | 39 | |
| 40 | Exit Status: |
| 41 | Returns success unless PATHNAME is not found or an error occurs. |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 42 | $END |
| 43 | |
| 44 | #if defined (apollo) |
| 45 | |
| 46 | #include <apollo/base.h> |
| 47 | #include <apollo/loader.h> |
| 48 | |
| 49 | inlib_builtin (list) |
| 50 | WORD_LIST *list; |
| 51 | { |
| 52 | status_$t status; |
| 53 | int return_value; |
| 54 | short len; |
| 55 | |
| 56 | if (!list) |
| 57 | { |
Jari Aalto | 7117c2d | 2002-07-17 14:10:11 +0000 | [diff] [blame] | 58 | builtin_usage (); |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 59 | return (EX_USAGE); |
| 60 | } |
| 61 | |
| 62 | return_value = EXECUTION_SUCCESS; |
| 63 | |
| 64 | while (list) |
| 65 | { |
| 66 | len = (short)strlen (list->word->word); |
| 67 | loader_$inlib (list->word->word, len, &status); |
| 68 | |
| 69 | if (status.all != status_$ok) |
| 70 | { |
Jari Aalto | 3185942 | 2009-01-12 13:36:28 +0000 | [diff] [blame] | 71 | builtin_error (_("%s: inlib failed"), list->word->word); |
Jari Aalto | 726f638 | 1996-08-26 18:22:31 +0000 | [diff] [blame] | 72 | return_value = EXECUTION_FAILURE; |
| 73 | } |
| 74 | |
| 75 | list = list->next; |
| 76 | } |
| 77 | |
| 78 | return (return_value); |
| 79 | } |
| 80 | #endif /* apollo */ |