X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=builtins%2Ftype.def;h=ee341bb8b0613a32f020233b74f0c409759b5e39;hb=3185942a5234e26ab13fa02f9c51d340cec514f8;hp=d03ccb2d91bc7260c098fa4d8ccfd007531a5175;hpb=f1be666c7d78939ad775078d290bec2758fa29a2;p=platform%2Fupstream%2Fbash.git diff --git a/builtins/type.def b/builtins/type.def index d03ccb2..ee341bb 100644 --- a/builtins/type.def +++ b/builtins/type.def @@ -1,50 +1,53 @@ This file is type.def, from which is created type.c. It implements the builtin "type" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. -Bash is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. +Bash is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +Bash is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. -You should have received a copy of the GNU General Public License along -with Bash; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES type.c $BUILTIN type $FUNCTION type_builtin $SHORT_DOC type [-afptP] name [name ...] +Display information about command type. + For each NAME, indicate how it would be interpreted if used as a command name. -If the -t option is used, `type' outputs a single word which is one of -`alias', `keyword', `function', `builtin', `file' or `', if NAME is an -alias, shell reserved word, shell function, shell builtin, disk file, -or unfound, respectively. - -If the -p flag is used, `type' either returns the name of the disk -file that would be executed, or nothing if `type -t NAME' would not -return `file'. - -If the -a flag is used, `type' displays all of the places that contain -an executable named `file'. This includes aliases, builtins, and -functions, if and only if the -p flag is not also used. - -The -f flag suppresses shell function lookup. - -The -P flag forces a PATH search for each NAME, even if it is an alias, -builtin, or function, and returns the name of the disk file that would -be executed. +Options: + -a display all locations containing an executable named NAME; + includes aliases, builtins, and functions, if and only if + the `-p' option is not also used + -f suppress shell function lookup + -P force a PATH search for each NAME, even if it is an alias, + builtin, or function, and returns the name of the disk file + that would be executed + -p returns either the name of the disk file that would be executed, + or nothing if `type -t NAME' would not return `file'. + -t output a single word which is one of `alias', `keyword', + `function', `builtin', `file' or `', if NAME is an alias, shell + reserved word, shell function, shell builtin, disk file, or not + found, respectively + +Arguments: + NAME Command name to be interpreted. + +Exit Status: +Returns success if all of the NAMEs are found; fails if any are not found. $END #include @@ -108,14 +111,14 @@ int type_builtin (list) WORD_LIST *list; { - int dflags, successful_finds, opt; + int dflags, any_failed, opt; WORD_LIST *this; if (list == 0) return (EXECUTION_SUCCESS); dflags = CDESC_SHORTDESC; /* default */ - successful_finds = 0; + any_failed = 0; /* Handle the obsolescent `-type', `-path', and `-all' by prescanning the arguments and converting those options to the form that @@ -181,13 +184,12 @@ type_builtin (list) if (!found && (dflags & (CDESC_PATH_ONLY|CDESC_TYPE)) == 0) sh_notfound (list->word->word); - successful_finds += found; + any_failed += found == 0; list = list->next; } - fflush (stdout); - - return ((successful_finds != 0) ? EXECUTION_SUCCESS : EXECUTION_FAILURE); + opt = (any_failed == 0) ? EXECUTION_SUCCESS : EXECUTION_FAILURE; + return (sh_chkwrite (opt)); } /* @@ -267,18 +269,14 @@ describe_command (command, dflags) puts ("function"); else if (dflags & CDESC_SHORTDESC) { -#define PRETTY_PRINT_FUNC 1 char *result; printf (_("%s is a function\n"), command); /* We're blowing away THE_PRINTED_COMMAND here... */ - result = named_function_string (command, - (COMMAND *) function_cell (func), - PRETTY_PRINT_FUNC); + result = named_function_string (command, function_cell (func), FUNC_MULTILINE|FUNC_EXTERNAL); printf ("%s\n", result); -#undef PRETTY_PRINT_FUNC } else if (dflags & CDESC_REUSABLE) printf ("%s\n", command); @@ -390,7 +388,7 @@ describe_command (command, dflags) if (dflags & CDESC_TYPE) puts ("file"); else if (dflags & CDESC_SHORTDESC) - printf ("%s is %s\n", command, full_path); + printf (_("%s is %s\n"), command, full_path); else if (dflags & (CDESC_REUSABLE|CDESC_PATH_ONLY)) printf ("%s\n", full_path);