;;;***************************************************************************
;;;                                  _   _ ____  _
;;;  Project                     ___| | | |  _ \| |
;;;                             / __| | | | |_) | |
;;;                            | (__| |_| |  _ <| |___
;;;                             \___|\___/|_| \_\_____|
;;;
;;; Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
;;;
;;; This software is licensed as described in the file COPYING, which
;;; you should have received as part of this distribution. The terms
;;; are also available at https://curl.se/docs/copyright.html.
;;;
;;; You may opt to use, copy, modify, merge, publish, distribute and/or sell
;;; copies of the Software, and permit persons to whom the Software is
;;; furnished to do so, under the terms of the COPYING file.
;;;
;;; This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
;;; KIND, either express or implied.
;;;
;;;***************************************************************************
;;; Directory Local Variables
;;; See Info node `(emacs) Directory Variables' for more information.

((nil . ((indent-tabs-mode . nil)
         (show-trailing-whitespace . t)))
 (c-mode . ((c-basic-offset . 2)
            ))
 (c++-mode . ((c-basic-offset . 2)
              ))
 )
