summaryrefslogtreecommitdiff
path: root/builtins/set.def
diff options
context:
space:
mode:
Diffstat (limited to 'builtins/set.def')
-rw-r--r--builtins/set.def5
1 files changed, 5 insertions, 0 deletions
diff --git a/builtins/set.def b/builtins/set.def
index cc94833..16e592f 100644
--- a/builtins/set.def
+++ b/builtins/set.def
@@ -395,6 +395,11 @@ set_posix_mode (on_or_off, option_name)
int on_or_off;
char *option_name;
{
+ /* short-circuit on no-op */
+ if ((on_or_off == FLAG_ON && posixly_correct) ||
+ (on_or_off == FLAG_OFF && posixly_correct == 0))
+ return 0;
+
posixly_correct = on_or_off == FLAG_ON;
if (posixly_correct == 0)
unbind_variable_noref ("POSIXLY_CORRECT");