anchor.diff:        case length(Params) of  
           0 -> 
             io:format("Enter file name, or press <Enter> for default: 'LinkBloxConfig': "),
  -          case get_input() of
  +          case get_input("") of
                     [] -> FileName = "LinkBloxConfig";
               FileName -> FileName
             end;
  
positive.code: loop() ->
    % use the current node for the UI prompt
    Prompt = atom_to_list(get_node()) ++ ">",
    
    Raw1 = io:get_line(Prompt),
  
    % In nerves environment, get_line() returns a binary.
    % Convert it to a string
    case is_binary(Raw1) of
      true  -> Raw2 = erlang:binary_to_list(Raw1);
      false -> Raw2  = Raw1 
    end, 
  
    % Remove new line char from the end, 
    % and leading and trailing whitespace
    Raw3 = string:strip(string:strip(Raw2, right, $\n)), 
      
    % Split up the string into command and parameter words
    CmdAndParams = string:tokens(Raw3, " "),  
      
    if 0 < length(CmdAndParams) ->
      [Cmd | Params] = CmdAndParams,
  
negative.code:         "hosts"     -> ui_hosts(Params);
          "help"      -> ui_help(Params);
              
          Unknown    -> io:format("Error: Unknown command: ~p~n", [Unknown])
        end,
        loop();  % processed command keep looping
  
  