Skip to content

Commit ef58a76

Browse files
committed
feat: Add convience functions for IFS handling. Closes #13
1 parent af84851 commit ef58a76

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

pkg/src/public/bash-core.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,17 @@ core.print_debug() {
380380
fi
381381
}
382382

383+
core.ifs_save() {
384+
local new_ifs="$1"
385+
386+
___global_ifs_variable_saved___=$IFS
387+
IFS=$new_ifs
388+
}
389+
390+
core.ifs_restore() {
391+
IFS=$___global_ifs_variable_saved___
392+
}
393+
383394
# @description (DEPRECATED). Determine if color should be printed. Note that this doesn't
384395
# use tput because simple environment variable checking heuristics suffice. Deprecated because this code
385396
# has been moved to bash-std

tests/ifs.bats

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env bats
2+
3+
load './util/init.sh'
4+
5+
@test "core.ifs_save sets new ifs" {
6+
core.ifs_save 'w'
7+
8+
assert [ "$IFS" = 'w' ]
9+
}
10+
11+
@test "core.ifs_restore restores ifs that was saved" {
12+
IFS=q
13+
core.ifs_save 'w'
14+
core.ifs_restore
15+
16+
assert [ "$IFS" = 'q' ]
17+
}

0 commit comments

Comments
 (0)