91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8.52MB
    文件類型: .gz
    金幣: 1
    下載: 0 次
    發布日期: 2023-10-06
  • 語言: 其他
  • 標簽: bash??源碼??

資源簡介

bash4.4源代碼,學習了解bash原理,及系統級別開發的絕佳參考

資源截圖

代碼片段和文件信息

/*?alias.c?--?Not?a?full?alias?but?just?the?kind?that?we?use?in?the
???shell.??Csh?style?alias?is?somewhere?else?(‘over?there?in?a?box‘).?*/

/*?Copyright?(C)?1987-2015?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?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.

???You?should?have?received?a?copy?of?the?GNU?General?Public?License
???along?with?Bash.??If?not?see?.
*/

#include?“config.h“

#if?defined?(ALIAS)

#if?defined?(HAVE_UNISTD_H)
#??ifdef?_MINIX
#????include?
#??endif
#??include?
#endif

#include?
#include?“chartypes.h“
#include?“bashansi.h“
#include?“command.h“
#include?“general.h“
#include?“externs.h“
#include?“alias.h“

#if?defined?(PROGRAMMABLE_COMPLETION)
#??include?“pcomplete.h“
#endif

#if?defined?(HAVE_MBSTR_H)?&&?defined?(HAVE_MBSCHR)
#??include? /*?mbschr?*/
#endif

#define?ALIAS_HASH_BUCKETS 64 /*?must?be?power?of?two?*/

typedef?int?sh_alias_map_func_t?__P((alias_t?*));

static?void?free_alias_data?__P((PTR_T));
static?alias_t?**map_over_aliases?__P((sh_alias_map_func_t?*));
static?void?sort_aliases?__P((alias_t?**));
static?int?qsort_alias_compare?__P((alias_t?**?alias_t?**));

#if?defined?(READLINE)
static?int?skipquotes?__P((char?*?int));
static?int?skipws?__P((char?*?int));
static?int?rd_token?__P((char?*?int));
#endif

/*?Non-zero?means?expand?all?words?on?the?line.??Otherwise?expand
???after?first?expansion?if?the?expansion?ends?in?a?space.?*/
int?alias_expand_all?=?0;

/*?The?list?of?aliases?that?we?have.?*/
HASH_TABLE?*aliases?=?(HASH_TABLE?*)NULL;

void
initialize_aliases?()
{
??if?(aliases?==?0)
????aliases?=?hash_create?(ALIAS_HASH_BUCKETS);
}

/*?Scan?the?list?of?aliases?looking?for?one?with?NAME.??Return?NULL
???if?the?alias?doesn‘t?exist?else?a?pointer?to?the?alias_t.?*/
alias_t?*
find_alias?(name)
?????char?*name;
{
??BUCKET_CONTENTS?*al;

??if?(aliases?==?0)
????return?((alias_t?*)NULL);

??al?=?hash_search?(name?aliases?0);
??return?(al???(alias_t?*)al->data?:?(alias_t?*)NULL);
}

/*?Return?the?value?of?the?alias?for?NAME?or?NULL?if?there?is?none.?*/
char?*
get_alias_value?(name)
?????char?*name;
{
??alias_t?*alias;

??if?(aliases?==?0)
????return?((char?*)NULL);

??alias?=?find_alias?(name);
??return?(alias???alias->value?:?(char?*)NULL);
}

/*?Make?a?new?alias?from?NAME?and?VALUE.??If?NAME?can?be?found
???then?replace?its?value.?*/
void
add_alias?(name?value)
?????char?*name?*value;
{
??BUCKET_CONTENTS?*elt;
??alias_t?*temp;
??int?n;

??if?(aliases?==?0

評論

共有 條評論