    # File bin/el4r-instance, line 383
        def newbuf(x)
          Hash === x            or raise ArgumentError, "argument must be a hash!"
          x[:name] || x[:file]  or raise ArgumentError, "`:name' or `:file' key is mandatory!"
          x[:name]              and b = get_buffer_create(x[:name])
          x[:file] && !x[:name] and b = find_file_noselect(x[:file])

          check = lambda{|key, type|  x[key] && (type===x[key] or raise ArgumentError) }
          with(:with_current_buffer, b) {
            elvar.buffer_read_only = nil
            # TODO: coding-system
            x[:name]              and erase_buffer
            x[:name] && x[:file]  and insert_file_contents(x[:file])
            x[:contents]          and insert x[:contents].to_s
            check[:line,Integer]  and goto_line x[:line]
            check[:point,Integer] and goto_char x[:point]
            block_given?          and yield
            x[:read_only]         and elvar.buffer_read_only = true
          }

          case x[:display]
          when :pop;  pop_to_buffer b
          when :only; delete_other_windows; switch_to_buffer b
          when true;  display_buffer b
          else
          end

          x[:bury]     and bury_buffer b
          x[:current]  and set_buffer b

          b
        end