Jef Driesen ed21d776dd Fix undefined behaviour in left shifts
Due to the integer promotion rules of the C language, the unsigned char
values are promoted to a signed integer (and not an unsigned integer)
before being shifted. But the result of a left shift on a signed type is
undefined if the resulting value can't be represented in the signed
type.

GCC's Undefined Behavior Sanitizer (ubsan), enabled with the option
-fsanitize=undefined, detects this type of problem at runtime with the
following warning: "left shift of X by Y places cannot be represented in
type 'int'".

Fixed with an explicit cast to unsigned integer.
2018-12-05 10:21:09 +01:00
2018-08-27 10:28:02 +02:00
2018-08-20 07:55:54 +02:00
2018-08-30 08:11:18 +02:00
2014-03-19 09:16:07 +01:00
2017-11-24 23:47:58 +01:00

Overview
========

Libdivecomputer is a cross-platform and open source library for
communication with dive computers from various manufacturers.

The official web site is:

  http://www.libdivecomputer.org/

The sourceforge project page is:

  http://sourceforge.net/projects/libdivecomputer/

Installation
============

On UNIX-like systems (including Linux, Mac OS X, MinGW), use the
autotools based build system. Run the following commands from the top
directory (containing this file) to configure, build and install the
library and utilities:

  $ ./configure
  $ make
  $ make install

If you downloaded the libdivecomputer source code directly from the git
source code repository, then you need to create the configure script as
the first step:

  $ autoreconf --install

To uninstall libdivecomputer again, run:

  $ make uninstall

Support
=======

Please send bug reports, feedback or questions to the mailing list:

  http://libdivecomputer.org/cgi-bin/mailman/listinfo/devel

or contact me directly:

  jef@libdivecomputer.org

License
=======

Libdivecomputer is free software, released under the terms of the GNU
Lesser General Public License (LGPL).

You can find a copy of the license in the file COPYING.
Description
No description provided
Readme 4.5 MiB
Languages
C 98.3%
M4 1.2%
Makefile 0.5%