# shellcheck shell=bash

if [ zsh = "$___X_CMD_SHELL" ] || [ bash = "$___X_CMD_SHELL" ] || [ ash = "$___X_CMD_SHELL" ]; then # avoid sh = dash

___x_cmd_path_obj_rm_(){
    local pathdata=":${1}:"
    local dir="${2:?Provide a directory}"

    while [ "$pathdata" != "${pathdata#*":${dir}:"}" ]; do
        pathdata="${pathdata//:"${dir}":/:}"
    done

    pathdata="${pathdata#:}"
    pathdata="${pathdata%:}"
    x_="$pathdata"
}

else
___x_cmd_path_obj_rm_(){
    local pathdata="${1}"
    local dir="${2:?Provide a directory}"

    local IFS=:
    local p; for p in $pathdata; do
        [ -n "$p" ]         || continue
        [ "$p" != "$dir" ]  || continue
        x_="${x_}${p}:"
    done
    x_="${x_%:}"
}
fi

___x_cmd_path_obj_rm(){
    local x_=""
    ___x_cmd_path_obj_rm_ "$@" || return $?
    printf "%s\n" "$x_"
}

