commit bash-20201230 snapshot

This commit is contained in:
Chet Ramey
2021-01-07 14:25:24 -05:00
parent e58dc557e2
commit 16d2c50605
10 changed files with 236 additions and 155 deletions
+34
View File
@@ -9260,3 +9260,37 @@ examples/loadables/stat.c
examples/loadables/Makefile.in
- stat: now built and installed by default
12/31
-----
command.h
- SUBSHELL_IGNTRAP: new flag value
jobs.c
- make_child: set SUBSHELL_IGNTRAP in subshell_environment in the
child process, meaning that we should not execute trap handlers for
trapped signals
execute_cmd.c
- execute_in_subshell, execute_simple_command, execute_disk_command:
make sure to unset SUBSHELL_IGNTRAP after a child process restores
the original signal dispositions
- execute_simple_command: make sure to set SUBSHELL_IGNTRAP after
make_child returns and we're setting subshell_environment directly
subst.c
- command_substitute,process_substitute: unset SUBSHELL_IGNTRAP after
the child process has reset the trapped signal dispositions
trap.c
- trap_handler: if we get a signal for which we have set a trap, but
SUBSHELL_IGNTRAP is set in subshell_environmnent, make sure we
restore the original signal disposition and resend the signal to
ourselves. Fixes issue reported by Nikolay Borisov <nborisov@suse.com>
(or at least makes the race window much smaller)
sig.c
- initialize_terminating_signal: set the original signal handler from
the return value from sigaction; a minor optimization that saves a
system call or two
+1
View File
@@ -124,6 +124,7 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select,
#define SUBSHELL_PROCSUB 0x20 /* subshell caused by <(command) or >(command) */
#define SUBSHELL_COPROC 0x40 /* subshell from a coproc pipeline */
#define SUBSHELL_RESETTRAP 0x80 /* subshell needs to reset trap strings on first call to trap */
#define SUBSHELL_IGNTRAP 0x100 /* subshell should reset trapped signals from trap_handler */
/* A structure which represents a word. */
typedef struct word_desc {
+7 -1
View File
@@ -1547,6 +1547,9 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
clear_pending_traps ();
reset_signal_handlers ();
subshell_environment |= SUBSHELL_RESETTRAP;
/* Note that signal handlers have been reset, so we should no longer
reset the handler and resend trapped signals to ourselves. */
subshell_environment &= ~SUBSHELL_IGNTRAP;
/* We are in a subshell, so forget that we are running a trap handler or
that the signal handler has changed (we haven't changed it!) */
@@ -4332,7 +4335,8 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close)
already_forked = 1;
cmdflags |= CMD_NO_FORK;
subshell_environment = SUBSHELL_FORK; /* XXX */
/* We redo some of what make_child() does with SUBSHELL_IGNTRAP */
subshell_environment = SUBSHELL_FORK|SUBSHELL_IGNTRAP; /* XXX */
if (pipe_in != NO_PIPE || pipe_out != NO_PIPE)
subshell_environment |= SUBSHELL_PIPE;
if (async)
@@ -4586,6 +4590,7 @@ run_builtin:
trap strings if we run trap to change a signal disposition. */
reset_signal_handlers ();
subshell_environment |= SUBSHELL_RESETTRAP;
subshell_environment &= ~SUBSHELL_IGNTRAP;
if (async)
{
@@ -5526,6 +5531,7 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
reset_terminating_signals (); /* XXX */
/* Cancel traps, in trap.c. */
restore_original_signals ();
subshell_environment &= ~SUBSHELL_IGNTRAP;
#if defined (JOB_CONTROL)
FREE (p);
+2
View File
@@ -2220,6 +2220,8 @@ make_child (command, flags)
signals to the default state for a new process. */
pid_t mypid;
subshell_environment |= SUBSHELL_IGNTRAP;
/* If this ends up being changed to modify or use `command' in the
child process, go back and change callers who free `command' in
the child process when this returns. */
+2
View File
@@ -575,6 +575,8 @@ make_child (command, flags)
last_asynchronous_pid = getpid ();
#endif
subshell_environment |= SUBSHELL_IGNTRAP;
default_tty_job_signals ();
}
else
BIN
View File
Binary file not shown.
+153 -153
View File
@@ -3,13 +3,13 @@
# This file is distributed under the same license as the bash package.
#
# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012, 2013.
# Božidar Putanec <bozidarp@yahoo.com>, 2018, 2019, 2020.
# Božidar Putanec <bozidarp@yahoo.com>, 2018, 2019, 2020, 2021.
msgid ""
msgstr ""
"Project-Id-Version: bash 5.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-28 12:51-0500\n"
"PO-Revision-Date: 2020-12-29 11:38-0800\n"
"PO-Revision-Date: 2021-01-02 13:56-0800\n"
"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
"Language: hr\n"
@@ -774,7 +774,7 @@ msgid ""
msgstr ""
"Doda direktorij na vrh stȏga direktorija ili zarotira stȏg tako da\n"
" učini novi vrh stȏga trenutnim radnim direktorijem. Bez argumenata\n"
" razmijeni pozicije dva direktorija na vrhu stȏga.\n"
" razmijeni pozicije dvama direktorijima na vrhu stȏga.\n"
"\n"
" Opcije:\n"
" -n spriječi uobičajenu promjenu direktorija kad dodaje\n"
@@ -810,8 +810,9 @@ msgid ""
" \n"
" The `dirs' builtin displays the directory stack."
msgstr ""
"Ukloni direktorije iz stȏga direktorija. Bez argumenata, ukloni\n"
" direktorij na vrhu stȏga i premjesti se u novi najviši direktorij.\n"
"Ukloni zapise iz stȏga direktorija. Bez argumenata, ukloni direktorij na\n"
" vrhu stȏga i učini da je trenutni radni direktorij jednak novom direktoriju\n"
" na vrhu stȏga.\n"
"\n"
" Opcije:\n"
" -n spriječi uobičajenu promjenu direktorija kad uklanja\n"
@@ -2334,7 +2335,7 @@ msgstr ""
msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
msgstr ""
"jobs [-lnprs] [SPECIFIKACIJA_POSLA...]\n"
" ili: jobs -x NAREDBA [ARGUMENTI]"
" ili: jobs -x NAREDBA [ARGUMENT...]"
#: builtins.c:131
msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
@@ -2431,7 +2432,7 @@ msgstr "wait [PID...]"
#: builtins.c:184
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
msgstr "for IME [in RIJEČIMA .... do NAREDBE; done"
msgstr "for IME [in RIJEČIMA...].; do NAREDBE; done"
#: builtins.c:186
msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
@@ -2439,7 +2440,7 @@ msgstr "for (( IZRAZ1; IZRAZ2; IZRAZ3 )); do NAREDBE; done"
#: builtins.c:188
msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
msgstr "select IME [in RIJEČI ....; do NAREDBE; done"
msgstr "select IME [in RIJEČI... ;] do NAREDBE; done"
#: builtins.c:190
msgid "time [-p] pipeline"
@@ -2489,7 +2490,7 @@ msgstr "[[ IZRAZ ]]"
#: builtins.c:212
msgid "variables - Names and meanings of some shell variables"
msgstr "varijable — imena i značenje nekih varijabla ljuske"
msgstr "var — imena i značenje nekih varijabla ljuske"
#: builtins.c:215
msgid "pushd [-n] [+N | -N | dir]"
@@ -2532,13 +2533,13 @@ msgstr "compopt [-o|+o OPCIJA] [-DEI] [IME...]"
#: builtins.c:242
msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
msgstr ""
"mapfile [-d MEĐA] [-n BROJ] [-O POČETAK] [-s BROJ] [-t] [-u FD]\n"
"mapfile [-d MEĐA] [-n KOLIČINA [-O POČETAK] [-s BROJ] [-t] [-u FD]\n"
" [-C FUNKCIJA] [-c TOLIKO] [POLJE]"
#: builtins.c:244
msgid "readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
msgstr ""
"readarray [-d MEĐA] [-n BROJ] [-O POČETAK] [-s BROJ] [-t] [-u FD]\n"
"readarray [-d MEĐA] [-n KOLIČINA] [-O POČETAK] [-s BROJ] [-t] [-u FD]\n"
" [-C FUNKCIJA] [-c TOLIKO] [POLJE]"
#: builtins.c:256
@@ -2561,11 +2562,11 @@ msgid ""
msgstr ""
"Definira ili prikaže aliase.\n"
"\n"
" Bez argumenata, „alias“ ispiše popis aliasa na standardni izlaz u\n"
" upotrebljivom formatu: 'alias IME=ZAMJENA'. S argumentima, alias je\n"
" definiran za svako IME za koje je navedena ZAMJENA. Ako ZAMJENA završi\n"
" s razmakom (bjelinom), onda alias pri ekspanziji provjeri da li je i\n"
" sljedeća riječ alias.\n"
" Bez argumenata (ili s opcijom -p), „alias“ ispiše popis aliasa na\n"
" standardni izlaz u upotrebljivom formatu: alias IME='ZAMJENA'.\n"
" S argumentima, alias je definiran za svako IME za koje je navedena ZAMJENA.\n"
" Zaostali razmak (bjelina) u ZAMJENI čini da alias prilikom ekspanzije\n"
" provjerava je li i sljedeća riječ zamjenska.\n"
"\n"
" Options:\n"
" -p ispiše sve definirane aliase u upotrebljivom formatu\n"
@@ -2632,7 +2633,7 @@ msgstr ""
"\n"
" Opcije:\n"
" -f DATOTEKA pročita prečace (bindings, key sequences) iz DATOTEKE\n"
" -l ispiše sve poznate funkcije\n"
" -l izlista imena svih poznatih funkcija\n"
" -m MAPA_TIPAKA koristi MAPU_TIPAKA (keymap) dok traje ova naredba;\n"
" moguće MAPE_TIPAKA su jedna od emacs, emacs-standard,\n"
" emacs-meta, emacs-ctlx, vi, vi-move, vi-command,\n"
@@ -2641,13 +2642,13 @@ msgstr ""
" -p ispiše imena funkcija i prečaca u obliku\n"
" koji se može iskoristiti kao ulaz\n"
" -r PREČAC razveže PREČAC (ukloni sekvenciju tipki za prečac)\n"
" -q FUNKCIJA ispita i ispiše tipke koje pozivaju navedenu FUNKCIJU\n"
" -q FUNKCIJA ispita i ispiše tipke koje pozivaju tu FUNKCIJU\n"
" -S izlista prečace (sekvencije tipki) koje pozivaju makroe\n"
" s njihovim vrijednostima\n"
" -s ispiše sekvencije tipki poje pozivaju makroe s\n"
" njihovim vrijednostima u obliku koji se može\n"
" iskoristiti kao ulaz\n"
" -u FUNKCIJA razveže sve prečace vezane na navedenu FUNKCIJU\n"
" -u FUNKCIJA razveže sve prečace vezane na tu FUNKCIJU\n"
" -V izlista imena varijabli s njihovim vrijednostima\n"
" -v ispiše imena varijabli s njihovim vrijednostima\n"
" u formatu koji se može iskoristiti kao ulaz\n"
@@ -2705,14 +2706,14 @@ msgid ""
msgstr ""
"Izvrši ugrađenu funkciju ljuske (shell builtins).\n"
"\n"
" Izvrši danu UGRAĐENU_SHELL_FUNKCIJU (SHELL-BUILTIN) funkciju s navedenim\n"
" ARGUMENTIMA. To je korisno ako želite redefinirati implementaciju\n"
" ugrađene shell funkcije kao vlastitu shell funkciju (skriptu s istim\n"
" imenom kao ugrađena shell funkcija), a potrebna vam je funkcionalnost\n"
" te ugrađene shell funkcije unutar vaše vlastite skripte (shell funkcije).\n"
" Izvrši danu UGRAĐENU_SHELL_FUNKCIJU s navedenim ARGUMENTIMA.\n"
" To je korisno ako želite redefinirati implementaciju ugrađene shell\n"
" funkcije kao vlastitu shell funkciju (skriptu s istim imenom kao ugrađena\n"
" shell funkcija), a potrebna vam je funkcionalnost te ugrađene shell\n"
" funkcije unutar vaše vlastite skripte.\n"
"\n"
" Završi s kȏdom UGRAĐENE_SHELL_FUNKCIJE ili s kȏdom 1 ako\n"
" UGRAĐENA_SHELL_FUNKCIJA nije ugrađene funkcija ljuske (shell builtin)."
" UGRAĐENA_SHELL_FUNKCIJA nije ugrađene funkcija ljuske."
#: builtins.c:369
msgid ""
@@ -2729,14 +2730,14 @@ msgid ""
" Returns 0 unless the shell is not executing a shell function or EXPR\n"
" is invalid."
msgstr ""
"Pokaže kontekst trenutnog poziva funkciji.\n"
"Vrati kontekst trenutnog poziva funkciji.\n"
"\n"
" Bez IZRAZA, vrati „$line $filename“. Ako je dan IZRAZ, vrati\n"
" „$line $subroutine $filename“; ova dodatna obavijest može poslužiti\n"
" za „stack trace“.\n"
" Bez IZRAZA, vrati „$line $filename“. Ako je dan IZRAZ, onda vrati\n"
" „$line $subroutine $filename“; ova dodatna informacija može poslužiti za\n"
" stvaranje „stack trace“.\n"
"\n"
" Vrijednost IZRAZA pokazuje koliko se treba vratiti unatrag od\n"
" trenutne pozicije, s time da je pozicija 0 trenutna pozicija.\n"
" Vrijednost IZRAZA naznačuje koliko ciklusa se treba vratiti\n"
" unatrag od trenutne pozicije; trenutni ciklus ima vrijednost 0.\n"
"\n"
" Završi s uspjehom osim ako ljuska ne izvršava ljuskinu funkciju\n"
" ili je IZRAZ nevaljan."
@@ -2780,7 +2781,7 @@ msgstr ""
"Promjeni trenutni direktorij.\n"
"\n"
" Promijeni trenutni direktorij u navedeni DIREKTORIJ. Ako DIREKTORIJ nije\n"
" naveden, onda se za DIREKTORIJ koristi vrijednost varijable HOME.\n"
" naveden, za DIREKTORIJ se koristi vrijednost varijable HOME.\n"
"\n"
" Varijabla CDPATH definira staze (direktorije) po kojima se\n"
" traži DIREKTORIJ.\n"
@@ -2794,12 +2795,11 @@ msgstr ""
" naziv, „cd“ prijeđe u direktorij s tim nazivom.\n"
"\n"
" Opcije:\n"
" -L slijedi simboličke veze; simboličke veze u DIREKTORIJU\n"
" razriješi nakon procesiranja „..“ instancije DIREKTORIJA;\n"
" opcija „-L“ je aktivna u zadanom (početnom) stanju\n"
" -P rabi fizičku strukturu direktorija umjesto da slijedi\n"
" simboličke veze; simboličke veze DIREKTORIJA\n"
" razriješi prije procesiranja „..“ instancije DIREKTORIJA\n"
" -L slijedi simboličke veze; simboličke veze u DIREKTORIJU razriješi\n"
" nakon obrade zapisa „..“\n"
" -P rabi fizičku strukturu direktorija umjesto da slijedi simboličke\n"
" veze; simboličke veze u DIREKTORIJU razriješi prije obrade\n"
" zapisa „..“\n"
" -e ako je dana s opcijom „-P“, i trenutni radni direktorij nije\n"
" moguće uspješno odrediti nakon uspješne promjene direktorija,\n"
" „cd“ završi s kȏdom različitim od 0.\n"
@@ -2893,8 +2893,8 @@ msgstr ""
" Opcije:\n"
" -p rabi zadanu vrijednost za PATH kao garanciju\n"
" pronalaženja svih standardnih programa\n"
" -v ispiše opis NAREDBE, slično kao „type“ builtin\n"
" -V ispiše opširniji opis svake navedene NAREDBE\n"
" -v pokaže ime naredbe koja bi se izvršila\n"
" -V == „-v” ali opširnije\n"
"\n"
" Završi s izlaznim kȏdom NAREDBE\n"
" ili s 1 ako NAREDBA nije pronađena."
@@ -2947,9 +2947,9 @@ msgstr ""
" Opcije:\n"
" -f prikaže samo definirane funkcije (ne prikaže varijable)\n"
" -F prikaže samo imena funkcija bez definicija\n"
" -g kreira globalne varijable samo za upotrebu u funkciji ljuske;\n"
" -g stvori globalne varijable samo za upotrebu u funkciji ljuske;\n"
" inače se ignoriraju\n"
" -I ako kreira lokalnu varijablu, neka naslijedi atribute i vrijednost\n"
" -I ako stvori lokalnu varijablu, neka naslijedi atribute i vrijednost\n"
" varijable s istim imenom u prethodnom opsegu\n"
" -p prikaže atribute i vrijednost za svako dano IME\n"
"\n"
@@ -2984,7 +2984,7 @@ msgid ""
msgstr ""
"Postavi vrijednosti i svojstva varijabli.\n"
"\n"
" Sinonim za „declare“. Za detalje, bez navodnika, utipkajte „help declare“."
" Sinonim za „declare“. Za detalje utipkajte (bez navodnika) „help declare“."
#: builtins.c:540
msgid ""
@@ -3002,14 +3002,14 @@ msgid ""
msgstr ""
"Definira lokalne varijable.\n"
"\n"
" Stvori lokalnu varijablu IME i dodijeli joj vrijednost. OPCIJA\n"
" može biti bilo koja od opcija koju prihvaća naredba „declare“.\n"
" Stvori lokalnu varijablu IME i dodijeli joj vrijednost. OPCIJA može biti\n"
" bilo koja od opcija koju prihvaća naredba „declare“.\n"
"\n"
" Lokalne varijable mogu se koristiti samo unutar funkcije i\n"
" vidljive su samo toj funkciji i njezinim potomcima.\n"
" Lokalne varijable mogu se koristiti samo unutar funkcije i vidljive su\n"
" samo toj funkciji i njezinim potomcima.\n"
"\n"
" Završi s uspjehom osim ako su navedene nevaljane opcije,ili\n"
" se dogodila greška pri dodijeli ili ljuska ne izvrši funkciju."
" Završi s uspjehom osim ako su navedene nevaljane opcije, ili se dogodila\n"
" greška pri dodijeli ili ljuska ne izvrši funkciju."
#: builtins.c:557
msgid ""
@@ -3144,7 +3144,7 @@ msgstr ""
"\n"
" Primjer: da koristite binarnu datoteku „test“ koja se nalazi na stazi\n"
" pretraživanja PATH, umjesto ugrađene (test) naredbe, utipkajte\n"
" bez navodnika „enable -n test“.\n"
" (bez navodnika) „enable -n test“.\n"
"\n"
" Završi s uspjehom osim ako IME nije ugrađena naredba ili se nije\n"
" dogodila greška."
@@ -3210,7 +3210,7 @@ msgstr ""
"\n"
" „getopts” se može koristiti u skriptama za raščlanjivanje\n"
" pozicijskih parametara kao opcija.\n"
" \n"
"\n"
" STRING_OPCIJA sadrži slova opcije koje treba prepoznati; ako iza\n"
" slova slijedi dvotočka, očekuje se da opcija ima argument koji treba\n"
" biti bjelinom odvojen od opcije.\n"
@@ -3223,11 +3223,11 @@ msgstr ""
" ljuskinu varijablu OPTARG.\n"
"\n"
" getopts javlja greške na jedan od dva načina. Ako je dvotočka prvi znaku\n"
" u STRINGU_OPCIJA, getopts tiho prijavi grešku (ne ispisuje poruke o greškama).\n"
" Ako naiđe na nevaljanu opciju, getopts smjesti nađeni znak opcije u OPTARG.\n"
" Ako zahtijevani argument nije pronađen, getopts smjesti „:“ u IME i postavi\n"
" OPTARG na pronađeni znak opcije. Ako getopts ne radi tiho i naiđe na\n"
" nevaljanu opciju, getopts smjesti „?“ u IME i poništi OPTARG.\n"
" u STRINGU_OPCIJA, getopts tiho prijavi grešku, tj. ne ispisuje poruke o\n"
" greškama. Ako naiđe na nevaljanu opciju, getopts smjesti nađeni znak opcije\n"
" u OPTARG. Ako zahtijevani argument nije pronađen, getopts smjesti „:“ u IME\n"
" i postavi OPTARG na pronađeni znak opcije. Ako getopts ne radi tiho i naiđe\n"
" na nevaljanu opciju, getopts smjesti „?“ u IME i poništi OPTARG.\n"
" Ako zahtijevani argument nije pronađen, getopts smjesti „?“ u IME, poništi\n"
" OPTARG i ispiše poruku o greškama.\n"
"\n"
@@ -3262,14 +3262,14 @@ msgid ""
msgstr ""
"Zamjeni ljusku s danom naredbom.\n"
"\n"
" Izvrši danu NAREDBU, zamijenivši ovu ljusku s ovim programom.\n"
" Izvrši danu NAREDBU, zamjenjujući ovu ljusku s ovim programom.\n"
" Eventualni ARGUMENTI postanu argumenti NAREDBE. Ako NAREDBA nije\n"
" specificirana, sva preusmjeravanja se dogode u trenutnoj ljusci.\n"
"\n"
" Opcije:\n"
" -a IME dȁde IME kao nulti argument NAREDBI\n"
" -c izvrši NAREDBU u praznoj okolini\n"
" -l uvrsti spojnicu („-“) na početak nultog argumenta NAREDBE\n"
" -l proslijedi crticu („-“) kao nulti argument NAREDBE\n"
"\n"
" Ako se naredba ne može izvršiti, ne-interaktivna ljuska završi,\n"
" osim ako je aktivna opcija ljuske „execfail“.\n"
@@ -3365,8 +3365,8 @@ msgstr ""
" Bez navedene specifikacije posla, premjesti u prednji plan posao koji\n"
" ljuska smatra trenutnim.\n"
"\n"
" Završi s kȏdom trenutne naredbe u prednjem planu\n"
" ili s neuspjehom ako se dogodi greška."
" Završi s kȏdom trenutne naredbe u prednjem planu ili s neuspjehom ako se\n"
" dogodi greška."
#: builtins.c:779
msgid ""
@@ -3448,7 +3448,7 @@ msgid ""
" Exit Status:\n"
" Returns success unless PATTERN is not found or an invalid option is given."
msgstr ""
"Prikaže podatke o ugrađenim (builtin) naredbama.\n"
"Prikaže podatke o ugrađenim (builtins) naredbama.\n"
"\n"
" Prikaže kratke sažetke o ugrađenim naredbama. Ako je specificiran\n"
" UZORAK, prikaže detaljnu pomoć za sve naredbe koje podudaraju UZORAK;\n"
@@ -3457,10 +3457,10 @@ msgstr ""
" Opcije:\n"
" -d ukratko opisano djelovanje naredbe\n"
" -m prikaže uporabu u pseudo manpage formatu\n"
" -s prikaže samo sinopsis uporabe za svaku naredbu koja podudara UZORAK\n"
" -s prikaže samo sažetak uporabe za svaku naredbu koja podudara UZORAK\n"
"\n"
" Završi s uspjehom osim ako UZORAK nije pronađen, ili je dana\n"
" nevaljana opcija."
" Završi s uspjehom osim ako UZORAK nije pronađen, ili je dana nevaljana\n"
" opcija."
#: builtins.c:842
msgid ""
@@ -3502,30 +3502,31 @@ msgstr ""
" ispiše samo N posljednjih redaka povijesti.\n"
"\n"
" Opcije:\n"
" -c počisti povijest iz memorije; zaboravi sve izvršene naredbe\n"
" -d POZICIJA izbriše redak povijesti na POZICIJI\n"
" -c izbriše povijest iz memorije; zaboravi sve izvršene naredbe\n"
" -d POZICIJA izbriše redak povijesti na toj POZICIJI. Negativna\n"
" POZICIJA odbrojava od kraja popisa.\n"
"\n"
" -a pripoji trenutnu povijest „povijesnoj“ datoteci\n"
" -n pripoji sve nepročitane retke povijesne datoteke\n"
" -a doda trenutnu povijest „povijesnoj“ datoteci\n"
" -n doda sve nepročitane retke povijesne datoteke\n"
" trenutnom popisu povijesti\n"
" -r pročita i pripoji povijesnu datoteku\n"
" -r pročita i doda povijesnu datoteku\n"
" trenutnom popisu povijesti\n"
" -w trenutnu povijest zapiše u povijesnu datoteku\n"
"\n"
" -p proširi povijest na svakom ARGUMENTU i prikaže rezultat\n"
" bez spremanja u povijesni popis\n"
" -s Pripoji ARGUMENTE popisu povijesti kao pojedinačne stavke \n"
" -s doda ARGUMENTE kao jednu stavku popisu povijesti\n"
"\n"
" Kao povijesna datoteka koristi se DATOTEKA ako je dana; ako nije dana,\n"
" koristi se varijabla HISTFILE (ako ima vrijednost), inače se koristi\n"
" Ako je dana, DATOTEKA se koristi se kao povijesna datoteka; ako nije dana,\n"
" koristi se varijabla HISTFILE (ako ima vrijednost). Inače se koristi\n"
" ~/.bash_history.\n"
"\n"
" Ako HISTTIMEFORMAT varijabla postoji i nije nula, njezinu vrijednost\n"
" koristi strftime(3) kao format string za ispis vremenskih oznaka\n"
" povijesnih stavki; inače, vremenske oznake se ne ispisuju.\n"
"\n"
" Završi s uspjehom osim ako nije dana nevaljana opcija\n"
" ili se dogodila greška."
" Završi s uspjehom osim ako nije dana nevaljana opcija ili se dogodila\n"
" greška."
#: builtins.c:879
msgid ""
@@ -3563,8 +3564,8 @@ msgstr ""
" -s ograniči izlaz samo na zaustavljene poslove\n"
"\n"
" Ako je navedena opcija '-x', dana NAREDBA će se izvršiti tek nakon\n"
" zatvaranja svih poslova navedenih u ARGUMENTIMA (tj. njihov ID procesa\n"
" zamijenjen je s ID-om njima nadređenog procesa).\n"
" zatvaranja svih navedenih poslova u ARGUMENTIMA (tj. njihov ID procesa je\n"
" zamijenjen s ID-om njima nadređenoga procesa).\n"
"\n"
" Završi s uspjehom osim ako je dana nevaljana opcija ili se dogodila greška.\n"
" Ako je dana opcija -x, završi sa izlaznim kȏdom NAREDBE."
@@ -3624,9 +3625,9 @@ msgid ""
msgstr ""
"Pošalje signal poslu.\n"
"\n"
" Pošalje procesu, identificiranim PID-om ili SPECIFIKACIJOM_POSLA,\n"
" signal naveden brojem ili imenom. Ako nije navedeno ni ime ni broj,\n"
" „kill” pošalje SIGTERM.\n"
" Procesima označenim s PID-om ili sa SPECIFIKACIJOM_POSLA pošalje signal\n"
" naveden brojem ili imenom. Ako nije naveden ni broj ni ime, „kill” pošalje\n"
" SIGTERM.\n"
"\n"
" Opcije:\n"
" -s IME IME je ime signala koji se šalje\n"
@@ -3634,15 +3635,14 @@ msgstr ""
" -l izlista imena dostupnih signala; ako su dani argumenti\n"
" iza „-l“, to su brojevi signala čija odgovarajuća\n"
" imena treba ispisati\n"
" -L isto kao -l\n"
" -L == -l\n"
"\n"
" „kill“ je ugrađena ljuskina naredba iz dva razloga: dopušta korištenje\n"
" ID posla umjesto ID procesa i također dopušta ubiti procese iako\n"
" ste dostigli vaše ograničenje za broj procesa koje možete stvoriti;\n"
" tj. ne morate pokrenuti novi proces da ubijete prekobrojne procese.\n"
"\n"
" Završi s uspjehom osim ako je dana nevaljana opcija\n"
" ili se dogodila greška."
" Završi s uspjehom osim ako je dana nevaljana opcija ili se dogodila greška."
#: builtins.c:949
msgid ""
@@ -3693,22 +3693,22 @@ msgstr ""
" obavlja za cijele brojeve fiksne širine bez provjere prelijevanja.\n"
" Ipak, dijeljenje s nulom se detektira i prijavi kao greška.\n"
"\n"
" Popis koji slijedi opisuje operatore s jednakom prednošću u\n"
" istom retku, a redci su poredani po opadajućoj prednosti.\n"
" Popis koji slijedi opisuje operatore s jednakom prednošću u istom retku,\n"
" a redci su poredani po opadajućoj prednosti.\n"
"\n"
" var++, var-- post-inkrement, post-dekrement varijable\n"
" ++var, --var pre-inkrement, pre-dekrement varijable\n"
" -, + unarni minus, unarni plus\n"
" !, ~ logička i bitna negacija\n"
" !, ~ logička i bitwise negacija\n"
" ** potenciranje\n"
" *, /, % množenje, dijeljenje, ostatak dijeljenja\n"
" +, - zbrajanje, oduzimanje\n"
" <<, >> pomak za bit ulijevo i udesno\n"
" <<, >> bitwise pomak ulijevo, udesno\n"
" <=, >=, <, > usporedba\n"
" ==, != jednako, nejednako\n"
" & vrednuje aritmetičke izraze AND\n"
" ^ bitni XOR\n"
" | bitni OR\n"
" & bitwise AND\n"
" ^ bitwise XOR\n"
" | bitwise OR\n"
" && logički AND\n"
" || logički OR\n"
"\n"
@@ -3794,7 +3794,7 @@ msgstr ""
" -p PROMPT ispiše taj string kao prompt (bez LF) prije početka čitanja\n"
" -r backslash je doslovno kosa crta (nema posebno značenje)\n"
" -s ne odjekuje (echo) ulaz koji dolazi iz terminala\n"
" -t BROJ nakon isteka BROJ SEKUNDI prestane čekati na ulaz i završi\n"
" -t BROJ nakon isteka BROJA sekundi prestane čekati na ulaz i završi\n"
" s kȏdom većim od 128; zadano, broj sekundi čekanja je\n"
" vrijednost varijable TMOUT; BROJ može biti i realni broj;\n"
" Ako je BROJ = 0, „read“ završi odmah bez da išta čita, a\n"
@@ -3805,8 +3805,7 @@ msgstr ""
"\n"
" Završi s uspjehom osim ako ne naiđe na konac datoteke (EOF) ili je\n"
" isteklo vrijeme čekanja ili se dogodila greška pri dodjeli ili je\n"
" naveden nevaljani deskriptor datoteke\n"
" kao argument opciji „-u“."
" naveden nevaljani deskriptor datoteke kao argument opciji „-u“."
#: builtins.c:1041
msgid ""
@@ -3819,7 +3818,7 @@ msgid ""
" Exit Status:\n"
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
"Povrat iz funkcije ljuske.\n"
"Vračanje iz funkcije ljuske.\n"
"\n"
" Učini da funkcija ili pokrenuta skripta završi sa izlaznom vrijednošću\n"
" specificiranom s N. Ako N nije dan, završi s kȏdom zadnje naredbe\n"
@@ -3930,7 +3929,7 @@ msgstr ""
" (a ne samo one argumente koji prethode imenu naredbe)\n"
" -m upravljanje poslovima je omogućeno (zadano)\n"
" -n pročita, ali ne izvrši naredbe\n"
" -o IME_OPCIJE omogući tu opciju (v. niže dugačke nazive IMENA_OPCIJA)\n"
" -o IME_OPCIJE omogući tu opciju (v. niže dugačke nazive za IME_OPCIJE)\n"
" -P ne razriješi simboličke veze pri izvršavanju naredbi poput „cd“\n"
" koje promjene trenutni direktorij\n"
" -p uključi privilegirani način: datoteke BASH_ENV i ENV se zanemare,\n"
@@ -3954,34 +3953,34 @@ msgstr ""
" pozicijski i dodijeljeni su u $1, $2, .. $N.\n"
"\n"
" Dugački nazivi za IME_OPCIJE koji se koriste s opcijom -o (ili +o)\n"
" allexport isto kao -a\n"
" braceexpand isto kao -B (zamjena vitičastih zagrada)\n"
" allexport == -a\n"
" braceexpand == -B (zamjena vitičastih zagrada)\n"
" emacs za uređivanje redaka koristi sučelje u „emacs“ stilu\n"
" errexit isto kao -e\n"
" errtrace isto kao -E\n"
" functrace isto kao -T\n"
" hashall isto kao -h\n"
" histexpand isto kao -H\n"
" errexit == -e\n"
" errtrace == -E\n"
" functrace == -T\n"
" hashall == -h\n"
" histexpand == -H\n"
" history omogući naredbu „history“\n"
" ignoreeof ignorira Ctrl-D; ne završi (ne iziđe iz) ljusku na EOF\n"
" interactive-comments dopusti komentiranje u interaktivnim naredbama\n"
" keyword isto kao -k\n"
" monitor isto kao -m\n"
" noclobber isto kao -C\n"
" noexec isto kao -n\n"
" noglob isto kao -f\n"
" nolog (prepoznata, ali se ignorira)\n"
" notify isto kao -b\n"
" nounset isto kao -u\n"
" onecmd isto kao -t\n"
" physical isto kao -P\n"
" keyword == -k\n"
" monitor == -m\n"
" noclobber == -C\n"
" noexec == -n\n"
" noglob == -f\n"
" nolog (prepoznata, ali je zanemarena)\n"
" notify == -b\n"
" nounset == -u\n"
" onecmd == -t\n"
" physical == -P\n"
" pipefail cjevovod vrati vrijednost izlaznog koda zadnje neuspješne\n"
" naredbe ili 0 ako su svi poslovi uspješno završeni\n"
" posix striktno poštuje POSIX standard\n"
" privileged isto kao -p\n"
" verbose isto kao -v\n"
" privileged == -p\n"
" verbose == -v\n"
" vi za uređivanje redaka koristi sučelje u „vi“ stilu\n"
" xtrace isto kao -x\n"
" xtrace == -x\n"
"\n"
" Završi s uspjehom osim ako je dana nevaljana opcija."
@@ -4019,8 +4018,8 @@ msgstr ""
" ne uspije, onda pokuša ukloniti funkciju. Neke varijable nije moguće\n"
" ukloniti; pogledajte „readonly.\n"
"\n"
" Završi s uspjehom osim ako je dana nevaljana opcija\n"
" ili IME je „samo-za-čitanje“."
" Završi s uspjehom osim ako je dana nevaljana opcija ili IME je\n"
" „samo-za-čitanje“. (bez navodnika)"
#: builtins.c:1161
msgid ""
@@ -4088,7 +4087,7 @@ msgstr ""
" -p prikaže popis svih nepromjenjivih varijabli ili funkcija\n"
" ovisno o opciji „-f“ (je li ili nije dana).\n"
"\n"
" Argument „--“ onemogući daljnje procesiranje opcija.\n"
" Argument „--“ onemogući daljnje obrađivanje opcija.\n"
"\n"
" Završi s uspjehom osim ako je dana nevaljana opcija ili je IME nevaljano."
@@ -4557,9 +4556,9 @@ msgid ""
" Exit Status:\n"
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
"Prikaže ili postavi masku prilikom kreiranje datoteke.\n"
"Prikaže ili postavi masku prilikom stvaranja datoteke.\n"
"\n"
" Postavi masku datoteke koju kreira korisnik na MODE.\n"
" Postavi masku datoteke koju stvori korisnik na MODE.\n"
" Ako MODE nije naveden, ispiše trenutnu vrijednost maske.\n"
"\n"
" Ako MODE počinje sa znamenkom, interpretira se kao oktalni broj;\n"
@@ -4652,9 +4651,9 @@ msgstr ""
"Izvrši naredbe za svakoga člana u popisu.\n"
"\n"
" Petlja „for“ izvrši sekvenciju naredbi za svakoga člana u popisu stavki.\n"
" Ako nema operanda „in RIJEČI ...., podrazumijeva se operand\n"
" Ako nema operanda „in RIJEČIMA...; podrazumijeva se operand\n"
" „in \"$@\"“. Svakom elementu u RIJEČIMA, IME se postavi na taj element\n"
" i izvrše se NAREDBE.\n"
" i NAREDBE se izvrše.\n"
"\n"
" Završi s kȏdom zadnje izvršene naredbe."
@@ -4712,9 +4711,9 @@ msgstr ""
" Nakon izbornika prikaže se PS3 prompt i redak se čita iz standardnoga\n"
" ulaza; ako se redak sastoji od broja koji odgovara jednoj od prikazanih\n"
" riječi, onda varijabla IME dobije vrijednost te riječi; ako je redak\n"
" prazan, RIJEČI i prompt se ponovno prikažu; ako se pročita EOF „select“\n"
" naredba završi s poslom. Bilo koja druga vrijednost koja se pročita učini\n"
" da se IME isprazni (nulira). Pročitani redak spremi se u varijablu REPLY.\n"
" prazan, RIJEČI i prompt se ponovno prikažu; ako se pročita EOF (Ctrl-D)\n"
" „select“ naredba završi. Bilo koja druga pročitana vrijednost učini da se\n"
" IME isprazni (nulira). Pročitani redak se spremi u varijablu REPLY.\n"
" NAREDBE se izvršavaju nakon svakog izbora, tako dugo dok „break“ naredba\n"
" ne prekine posao.\n"
"\n"
@@ -4784,10 +4783,10 @@ msgstr ""
" Izvrši naredbe iza „if“; ako to završi s kȏdom 0, izvrši naredbe\n"
" iza prvog „then“; inače, izvrši naredbe iza sljedećeg „elif“\n"
" (ako postoji) ili „else“ (ako postoji). Ako „elif“ završi s kȏdom\n"
" nula, izvrši naredbe iza odgovarajućeg „then“. Ako više nema „elif“,\n"
" nula, izvrši naredbe iza odgovarajućeg „then“. Ako nema više „elif“,\n"
" ili „else“ ili nakon izvršenih naredbi iza „then“, „if“ naredba završi.\n"
"\n"
" „if“ završi s kȏdom zadnjeg izvršenoga zadatka."
" „if“ završi s kȏdom zadnje izvršene naredbe."
#: builtins.c:1647
msgid ""
@@ -4801,8 +4800,8 @@ msgid ""
msgstr ""
"Izvršava naredbe tako dugo dok je test uspješan.\n"
"\n"
" Izvršava sukcesivne NAREDBE tako dugo dok zadnja naredba u\n"
" „while“ NAREDBAMA završava s kȏdom 0.\n"
" Izvršava sukcesivne NAREDBE tako dugo dok zadnja naredba u „while“\n"
" NAREDBAMA završava s kȏdom 0.\n"
"\n"
" Završi s kȏdom zadnje izvršene naredbe."
@@ -4835,7 +4834,7 @@ msgid ""
" Exit Status:\n"
" The coproc command returns an exit status of 0."
msgstr ""
"Kreira coprocess (suproces) s imenom IME.\n"
"Stvori koproces nazvan IME.\n"
"\n"
" Izvrši NAREDBU asinkrono, sa standardnim izlazom i standardnim ulazom\n"
" naredbe spojene preko cijevi na deskriptore datoteke dodijeljene\n"
@@ -4858,7 +4857,7 @@ msgid ""
msgstr ""
"Definira funkciju ljuske.\n"
"\n"
" Kreira funkciju ljuske nazvanu IME. Kad se pokrene kao jednostavna\n"
" Stvori funkciju ljuske nazvanu IME. Kad se pokrene kao jednostavna\n"
" naredba, IME izvrši NAREDBE unutar konteksta pozivne ljuske.\n"
" Kad se IME pozove, argumenti se proslijede funkciji kao $1...$N,\n"
" a ime funkcije je $FUNCNAME.\n"
@@ -5102,7 +5101,7 @@ msgstr ""
"\n"
" Doda direktorij na vrh stȏga direktorija ili zarotira stȏg tako da\n"
" učini novi vrh stȏga trenutnim radnim direktorijem. Bez argumenata\n"
" razmijeni pozicije dvaju direktorija na vrhu stȏga.\n"
" razmijeni pozicije dvama direktorijima na vrhu stȏga.\n"
"\n"
" Opcije:\n"
" -n izostavi uobičajenu promjenu direktorija kad dodaje\n"
@@ -5118,8 +5117,8 @@ msgstr ""
"\n"
" Naredba „dirs“ prikaže trenutni sadržaj stȏga direktorija.\n"
"\n"
" Završi s uspjehom osim ako je dana nevaljana opcija\n"
" ili nije uspjela promjena direktorija."
" Završi s uspjehom osim ako je dana nevaljana opcija ili promjena\n"
" direktorija nije uspjela"
#: builtins.c:1855
msgid ""
@@ -5149,8 +5148,9 @@ msgid ""
msgstr ""
"Ukloni direktorije iz stȏga.\n"
"\n"
" Ukloni direktorije iz stȏga direktorija. Bez argumenata, ukloni\n"
" direktorij na vrhu stȏga i premjesti se u novi najviši direktorij.\n"
" Ukloni zapise iz stȏga direktorija. Bez argumenata, ukloni direktorij na\n"
" vrhu stȏga i učini da je trenutni radni direktorij jednak novom direktoriju\n"
" na vrhu stȏga.\n"
"\n"
" Opcije:\n"
" -n izostavi uobičajenu promjenu direktorija kad uklanja\n"
@@ -5166,8 +5166,8 @@ msgstr ""
"\n"
" Naredba „dirs“ prikaže trenutni sadržaj stȏga direktorija.\n"
"\n"
" Završi s uspjehom osim ako je dana nevaljana opcija\n"
" ili nije uspjela promjena direktorija."
" Završi s uspjehom osim ako je dana nevaljana opcija ili promjena\n"
" direktorija nije uspjela."
#: builtins.c:1885
msgid ""
@@ -5299,7 +5299,7 @@ msgstr ""
" koji se pretvore i kopiraju na izlaz; specifikacije formata od kojih\n"
" svaka uzrokuje ispisivanje sljedećeg sukcesivnog argumenta.\n"
"\n"
" Pored standardnih simbola \"diouxXfeEgGcs\"za format opisanih u printf(1),\n"
" Pored standardnih simbola diouxXfeEgGcsza format opisanih u printf(1),\n"
" „printf” dodatno interpretira:\n"
" %b proširi backslash (\\) kontrolne znakove u odgovarajuće\n"
" argumente\n"
@@ -5379,8 +5379,8 @@ msgstr ""
"Prikaže moguća kompletiranja ovisno o opcijama.\n"
"\n"
" „compgen“ je namijenjen za upotrebu unutar funkcije koja generira\n"
" moguća kompletiranja. Ako je dana neobvezna opcija RIJEČ, generira\n"
" samo moguća kompletiranja podudarna s opcijom RIJEČ.\n"
" moguća kompletiranja. Ako je dana neobvezna opcija RIJEČ (word)\n"
" generira odgovarajuća kompletiranja podudarna s RIJEČI.\n"
"\n"
" Završi s uspjehom osim ako je dana nevaljana opcija ili se dogodila greška."
@@ -5412,18 +5412,18 @@ msgid ""
" Returns success unless an invalid option is supplied or NAME does not\n"
" have a completion specification defined."
msgstr ""
"Izmjeni ili pokaže opcije za kompletiranje.\n"
"Promijeni ili pokaže opcije za kompletiranje.\n"
"\n"
" Izmijeni opcije kompletiranja za svako IME u skladu s opcijama,\n"
" Promijeni opcije kompletiranja za svako IME u skladu s opcijama,\n"
" ili za kompletiranje koje se trenutno vrši ako nisu navedena IMENA.\n"
" Ako nema opcija, ispišu se opcije kompletiranja za svako IME ili\n"
" za trenutno kompletiranje.\n"
" Ako nema opcija, ispiše opcije kompletiranja za svako IME ili za\n"
" trenutno kompletiranje.\n"
"\n"
" Opcije:\n"
" -o OPCIJA ovu OPCIJU kompletiranja postavi za svako IME\n"
" -D promijeni opcije za kompletiranje „zadanih“ naredba\n"
" -E promijeni opcije za kompletiranje „praznih“ naredba\n"
" -I promijeni opcije za kompletiranje za početnu riječ\n"
" -o OPCIJA omogući ovu OPCIJU kompletiranja za svako IME\n"
" -D promijeni opcije za „zadano” kompletiranje\n"
" -E promijeni opcije za kompletiranje „prazne“ naredbe\n"
" -I promijeni opcije za kompletiranje na početnu riječ\n"
"\n"
" „+“ umjesto „-“ isključi odgovarajuću opciju.\n"
"\n"
@@ -5433,8 +5433,8 @@ msgstr ""
" pozvati „compopt“; time se onda promjene opcije za taj generator koji\n"
" trenutno izvršava kompletiranja.\n"
"\n"
" Završi s uspjehom osim ako nije dana nevaljana opcija\n"
" ili nije definirana specifikacija za kompletiranje IMENA."
" Završi s uspjehom osim ako nije dana nevaljana opcija ili nije definirana\n"
" specifikacija za kompletiranje IMENA."
#: builtins.c:2047
msgid ""
@@ -5472,13 +5472,13 @@ msgid ""
msgstr ""
"Pročitane retke iz standardnoga ulaza upiše u varijablu indeksirano polje.\n"
"\n"
" Pročitane retke iz standardnog ulaza (ili, ako je navedena -u opcija iz\n"
" Pročitane retke iz standardnog ulaza (ili ako je navedena opcija -u, iz\n"
" deskriptora datoteke FD) upiše u indeksiranu varijablu POLJE. Ako argument\n"
" POLJE nije dan, za POLJE se (zadano) koristi varijabla MAPFILE\n"
"\n"
" Opcije:\n"
" -d MEĐA prvi znak u MEĐI (umjesto LF) je znak za kraj retka\n"
" -n BROJ kopira ne više od BROJ redaka (0 znači sve retke)\n"
" -n KOLIČINA kopira ne više od KOLIČINE redaka (0 kopira sve retke)\n"
" -O POČETAK upisivanje u POLJE započinje od indeksa POČETAK (zadano 0)\n"
" -s BROJ preskoči (izostavi) prvih BROJ redaka\n"
" -t ukloni zaostalu MEĐU (zadano LF) iz svakog učitanog retka\n"
@@ -5506,7 +5506,7 @@ msgid ""
" \n"
" A synonym for `mapfile'."
msgstr ""
"Učita retke iz datoteke u varijablu vrste indeksirano polje.\n"
"Učita retke iz datoteke u varijablu indeksirano polje.\n"
"\n"
" Sinonim za „mapfile“."
+9 -1
View File
@@ -55,7 +55,8 @@
# include "bashhist.h"
#endif
extern void initialize_siglist ();
extern void initialize_siglist PARAMS((void));
extern void set_original_signal PARAMS((int, SigHandler *));
#if !defined (JOB_CONTROL)
extern void initialize_job_signals PARAMS((void));
@@ -255,6 +256,13 @@ initialize_terminating_signals ()
sigaction (XSIG (i), &act, &oact);
XHANDLER(i) = oact.sa_handler;
XSAFLAGS(i) = oact.sa_flags;
#if 0
set_original_signal (XSIG(i), XHANDLER(i)); /* optimization */
#else
set_original_signal (XSIG(i), act.sa_handler); /* optimization */
#endif
/* Don't do anything with signals that are ignored at shell entry
if the shell is not interactive. */
/* XXX - should we do this for interactive shells, too? */
+2
View File
@@ -5951,6 +5951,7 @@ process_substitute (string, open_for_read_in_child)
free_pushed_string_input ();
/* Cancel traps, in trap.c. */
restore_original_signals (); /* XXX - what about special builtins? bash-4.2 */
subshell_environment &= ~SUBSHELL_IGNTRAP;
QUIT; /* catch any interrupts we got post-fork */
setup_async_signals ();
#if 0
@@ -6382,6 +6383,7 @@ command_substitute (string, quoted, flags)
}
QUIT; /* catch any interrupts we got post-fork */
subshell_environment |= SUBSHELL_RESETTRAP;
subshell_environment &= ~SUBSHELL_IGNTRAP;
}
#if defined (JOB_CONTROL)
+26
View File
@@ -481,6 +481,32 @@ trap_handler (sig)
SIGRETURN (0);
}
/* This means we're in a subshell, but have not yet reset the handler for
trapped signals. We're not supposed to execute the trap in this situation;
we should restore the original signal and resend the signal to ourselves
to preserve the Posix "signal traps that are not being ignored shall be
set to the default action" semantics. */
if ((subshell_environment & SUBSHELL_IGNTRAP) && trap_list[sig] != (char *)IGNORE_SIG)
{
sigset_t mask;
/* Paranoia */
if (original_signals[sig] == IMPOSSIBLE_TRAP_HANDLER)
original_signals[sig] = SIG_DFL;
restore_signal (sig);
/* Make sure we let the signal we just caught through */
sigemptyset (&mask);
sigprocmask (SIG_SETMASK, (sigset_t *)NULL, &mask);
sigdelset (&mask, sig);
sigprocmask (SIG_SETMASK, &mask, (sigset_t *)NULL);
kill (getpid (), sig);
SIGRETURN (0);
}
if ((sig >= NSIG) ||
(trap_list[sig] == (char *)DEFAULT_SIG) ||
(trap_list[sig] == (char *)IGNORE_SIG))