summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Čihař <nijel@debian.org>2017-06-30 15:35:46 +0200
committerMichal Čihař <nijel@debian.org>2017-06-30 15:35:46 +0200
commit2c605769ea566cb79b7684b4c3b6a9f5740e858c (patch)
treec46d5f005d026d0ab1e73d67815d4e9141190fc6
parentb4bcd4b358a5ed9701642d1f8153306363374047 (diff)
parentab91c30e54a279ee9f8f7c5a63a597860c99a705 (diff)
Updated version 1.38.4 from 'upstream/1.38.4'
with Debian dir 249cb84c262b83b3a28191dde33c1d5a55b5927d
-rw-r--r--CMakeLists.txt23
-rw-r--r--ChangeLog14
-rwxr-xr-xadmin/codecov.sh5
-rw-r--r--admin/windows-coverage.bat1
-rwxr-xr-xadmin/windows-coverage.py65
-rw-r--r--appveyor.yml6
-rw-r--r--contrib/CMakeLists.txt1
-rw-r--r--contrib/coveragehelper/CMakeLists.txt4
-rw-r--r--contrib/coveragehelper/coveragehelper.c161
-rwxr-xr-xcontrib/coveragehelper/merge-cobertura.py176
-rwxr-xr-xcontrib/coveragehelper/split-codecov.py25
-rw-r--r--contrib/smscgi/smsd.c15
-rw-r--r--description-pak2
-rw-r--r--docs/man/gammu-backup.52
-rw-r--r--docs/man/gammu-config.12
-rw-r--r--docs/man/gammu-detect.12
-rw-r--r--docs/man/gammu-smsbackup.52
-rw-r--r--docs/man/gammu-smsd-dbi.72
-rw-r--r--docs/man/gammu-smsd-files.72
-rw-r--r--docs/man/gammu-smsd-inject.12
-rw-r--r--docs/man/gammu-smsd-monitor.12
-rw-r--r--docs/man/gammu-smsd-mysql.72
-rw-r--r--docs/man/gammu-smsd-null.72
-rw-r--r--docs/man/gammu-smsd-odbc.713
-rw-r--r--docs/man/gammu-smsd-pgsql.72
-rw-r--r--docs/man/gammu-smsd-run.72
-rw-r--r--docs/man/gammu-smsd-sql.72
-rw-r--r--docs/man/gammu-smsd-tables.72
-rw-r--r--docs/man/gammu-smsd.12
-rw-r--r--docs/man/gammu-smsdrc.517
-rw-r--r--docs/man/gammu.12
-rw-r--r--docs/man/gammurc.52
-rw-r--r--docs/man/jadmaker.12
-rw-r--r--docs/manual/project/install.rst4
-rw-r--r--docs/manual/python/gammu.rst4
-rw-r--r--docs/manual/smsd/config.rst15
-rw-r--r--docs/manual/smsd/odbc.rst11
-rw-r--r--gammu-detect/CMakeLists.txt1
-rw-r--r--gammu-detect/bluez.c10
-rw-r--r--gammu-detect/win32-serial.c2
-rw-r--r--gammu.spec2
-rw-r--r--gammu/CMakeLists.txt1
-rw-r--r--gammu/backup.c2
-rw-r--r--gammu/backupsms.c2
-rw-r--r--gammu/common.h2
-rw-r--r--gammu/depend/nokia/dct3.c2
-rw-r--r--gammu/depend/nokia/dct4.c2
-rw-r--r--gammu/files.c2
-rw-r--r--gammu/gammu.c12
-rw-r--r--gammu/memory.c2
-rw-r--r--gammu/message.c2
-rw-r--r--gammu/misc.c4
-rw-r--r--gammu/mms.c2
-rw-r--r--gammu/nokia.c2
-rw-r--r--gammu/search.c2
-rw-r--r--helper/CMakeLists.txt21
-rw-r--r--helper/message-cmdline.c2
-rw-r--r--libgammu/CMakeLists.txt18
-rw-r--r--libgammu/device/bluetooth/bluetooth.c2
-rw-r--r--libgammu/device/proxy/proxy.c4
-rw-r--r--libgammu/device/serial/ser_w32.c3
-rw-r--r--libgammu/device/usb/usb.c2
-rw-r--r--libgammu/gsmphones.c6
-rw-r--r--libgammu/gsmstate.c2
-rw-r--r--libgammu/misc/array.c (renamed from helper/array.c)0
-rw-r--r--libgammu/misc/array.h (renamed from helper/array.h)0
-rw-r--r--libgammu/misc/cfg.c2
-rw-r--r--libgammu/misc/string.c (renamed from helper/string.c)0
-rw-r--r--libgammu/misc/string.h (renamed from helper/string.h)0
-rw-r--r--libgammu/misc/strptime.c (renamed from helper/strptime.c)0
-rw-r--r--libgammu/misc/strptime.h (renamed from helper/strptime.h)0
-rw-r--r--libgammu/misc/tzfile.h (renamed from helper/tzfile.h)0
-rw-r--r--libgammu/misc/win32-dirent.c (renamed from helper/win32-dirent.c)0
-rw-r--r--libgammu/misc/win32-dirent.h (renamed from helper/win32-dirent.h)0
-rw-r--r--libgammu/phone/at/at-sms.c2
-rw-r--r--libgammu/phone/at/atgen.c20
-rw-r--r--libgammu/phone/at/motorola.c2
-rw-r--r--libgammu/phone/dummy/dummy.c4
-rw-r--r--libgammu/phone/dummy/dummy.h2
-rw-r--r--libgammu/phone/nokia/dct4s40/6510/6510file.c5
-rw-r--r--libgammu/phone/obex/obexgen.c2
-rw-r--r--libgammu/phone/s60/s60phone.c2
-rw-r--r--libgammu/service/backup/backtext.c2
-rw-r--r--libgammu/service/backup/gsmback.c2
-rw-r--r--libgammu/service/gsmcal.c2
-rw-r--r--libgammu/service/gsmlogo.c2
-rw-r--r--libgammu/service/gsmmisc.c2
-rw-r--r--locale/fi/libgammu.po8
-rw-r--r--locale/fr/docs.po56
-rw-r--r--locale/fr/gammu.po783
-rw-r--r--locale/fr/libgammu.po34
-rw-r--r--smsd/CMakeLists.txt5
-rw-r--r--smsd/core.c69
-rw-r--r--smsd/core.h2
-rw-r--r--smsd/log-event.c2
-rw-r--r--smsd/services/files.c2
-rw-r--r--smsd/services/odbc.c3
-rw-r--r--smsd/services/sql.c12
-rw-r--r--tests/CMakeLists.txt4
-rw-r--r--tests/array-test.c2
-rw-r--r--tests/at-sms/40.dump4
-rw-r--r--tests/sms-at-parse.c7
-rw-r--r--tests/sql-parse-date.c2
103 files changed, 1057 insertions, 701 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d3f113d..e9c997a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@ if (LARGE_FILES)
endif (LARGE_FILES)
# Set version
-set (GAMMU_VERSION "1.38.2" CACHE INTERNAL "")
+set (GAMMU_VERSION "1.38.4" CACHE INTERNAL "")
string (REGEX REPLACE "^([0-9]*)\\.([0-9]*)\\.([0-9]*)$" "\\1" "GAMMU_VERSION_MAJOR" "${GAMMU_VERSION}")
string (REGEX REPLACE "^([0-9]*)\\.([0-9]*)\\.([0-9]*)$" "\\2" "GAMMU_VERSION_MINOR" "${GAMMU_VERSION}")
string (REGEX REPLACE "^([0-9]*)\\.([0-9]*)\\.([0-9]*)$" "\\3" "GAMMU_VERSION_PATCH" "${GAMMU_VERSION}")
@@ -430,7 +430,7 @@ if(MSVC)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
set(MATH_LIBS "")
-
+
# Call cmake with "-DMSVC_RUNTIME=static" to link with static runtime libraries
configure_msvc_runtime()
else(MSVC)
@@ -490,16 +490,13 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_MINGW OR
MACRO_TUNE_COMPILER("-Wno-format-security")
endif (WIN32 AND NOT CYGWIN)
- # This is extremely noisy, use only in debug builds
- if (DEBUG)
- MACRO_TUNE_COMPILER("-Wextra")
- if (NOT CLANG_COMPILER)
- MACRO_TUNE_COMPILER("-Wunused-but-set-variable")
- endif (NOT CLANG_COMPILER)
- # Just silent this for now, too much code to fix here
- MACRO_TUNE_COMPILER("-Wno-unused-parameter")
- # Not sure if this is safe for all architectures
- endif (DEBUG)
+ # Enable extra warnings
+ MACRO_TUNE_COMPILER("-Wextra")
+ if (NOT CLANG_COMPILER)
+ MACRO_TUNE_COMPILER("-Wunused-but-set-variable")
+ endif (NOT CLANG_COMPILER)
+ # Just silent this for now, too much code to fix here
+ MACRO_TUNE_COMPILER("-Wno-unused-parameter")
#
# Security related flags
@@ -893,7 +890,7 @@ set (CPACK_COMPONENT_EXAMPLES_GROUP "Documentation")
set (CPACK_COMPONENT_MANUAL_GROUP "Documentation")
set (CPACK_COMPONENT_MEDIA_GROUP "Documentation")
-set (CPACK_ALL_INSTALL_TYPES Standard Developer Full)
+set (CPACK_ALL_INSTALL_TYPES Full Standard Developer)
set (CPACK_COMPONENT_GAMMU_INSTALL_TYPES Standard Developer Full)
set (CPACK_COMPONENT_SMSD_INSTALL_TYPES Standard Developer Full)
diff --git a/ChangeLog b/ChangeLog
index bff1050..3d04cbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -19,6 +19,20 @@ the issue.
ChangeLog
=========
+20170618 - 1.38.4
+
+[-] * Improved support for Huawei E3531 and E1756.
+[-] * Fixed several issues with using library on Windows.
+
+20170523 - 1.38.3
+
+[-] * Improved support for ZTE MF626.
+[-] * Fixed USSD handling with longer codes.
+[-] * Increased default value for StatusFrequency.
+[-] * Improved SMSD response on signals.
+[-] * Improved SMSD throughput on big queue.
+[-] * Improved SMSD compatibility with Microsoft SQL Server.
+
20170328 - 1.38.2
[-] * Improved support for Huawei K3765, E150 and E372.
diff --git a/admin/codecov.sh b/admin/codecov.sh
index eff1b4c..1e43f19 100755
--- a/admin/codecov.sh
+++ b/admin/codecov.sh
@@ -11,5 +11,8 @@ export PATH="C:/MinGW/bin:$PATH"
# Download codecov script
curl -s -o codecov.sh https://codecov.io/bash
+# Merge files
+python ./contrib/coveragehelper/merge-cobertura.py --output cobertura.xml --match 'cobertura*.xml'
+
# Upload in chunks of 5 files
-ls cobertura*.xml | sed -e 's/^/-f /' | xargs -n 10 bash ./codecov.sh -X nocolor -X gcov -F windows
+bash ./codecov.sh -X nocolor -X gcov -F windows -f cobertura.xml -f cobertura1.xml
diff --git a/admin/windows-coverage.bat b/admin/windows-coverage.bat
deleted file mode 100644
index c311640..0000000
--- a/admin/windows-coverage.bat
+++ /dev/null
@@ -1 +0,0 @@
-@python c:\projects\gammu\admin\windows-coverage.py %*
diff --git a/admin/windows-coverage.py b/admin/windows-coverage.py
deleted file mode 100755
index c9ada14..0000000
--- a/admin/windows-coverage.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env python
-
-# Wrapper for CTest to execute every test through OpenCPPCoverage.
-
-# Unfortunately there doesn't seem to be way to hook into the process than
-# pretending to be valgrind memory tester.
-
-# Usage:
-
-# cmake \
-# -DMEMORYCHECK_COMMAND=windows-coverage.bat \
-# -DMEMORYCHECK_COMMAND_OPTIONS=--separator \
-# -DMEMORYCHECK_TYPE=Valgrind
-# ctest -D NightlyMemCheck
-
-
-import os
-import subprocess
-import sys
-
-
-ROOT_DIR = 'c:\\projects\\gammu'
-COVERAGE = 'c:\\projects\\gammu\\cobertura{0}.xml'
-
-
-def main():
-
- # Parse params passed by CTest
- logfile = None
- for arg in sys.argv:
- if arg.startswith('--log-file='):
- logfile = arg.split('=', 1)[1]
- break
- if logfile is None:
- raise Exception('Missing --log-file')
-
- # Create empty file (CTest expects to find it)
- open(logfile, 'w')
-
- # Figure out test number (it's included in log name)
- test_num = os.path.basename(logfile).split('.')[1]
- coverage_file = COVERAGE.format(test_num)
-
- # Coverage command
- cmd = [
- 'OpenCppCoverage.exe',
- '--quiet',
- '--export_type', 'cobertura:{0}'.format(coverage_file),
- '--modules', ROOT_DIR,
- '--sources', ROOT_DIR,
- '--'
- ]
-
- # Get test command out of passed args
- command = sys.argv[sys.argv.index('--separator') + 1:]
-
- # Execute with code coverage
- result = subprocess.call(cmd + command)
-
- # Propagate error code
- sys.exit(result)
-
-
-if __name__ == '__main__':
- main()
diff --git a/appveyor.yml b/appveyor.yml
index 28b1de0..0349f3f 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -33,16 +33,16 @@ before_build:
-DODBC_TESTING=OFF "-DODBC_DSN=mysql:Driver={MySQL ODBC 5.3 Unicode Driver}:host=localhost;dbname=smsd"
-DMYSQL_TESTING=ON -DMYSQL_USER=root "-DMYSQL_PASSWORD=Password12!"
-DPSQL_TESTING=ON -DPSQL_USER=postgres "-DPSQL_PASSWORD=Password12!"
- -DMEMORYCHECK_COMMAND="c:/projects/gammu/admin/windows-coverage.bat" -DMEMORYCHECK_COMMAND_OPTIONS="--separator" -DMEMORYCHECK_TYPE=Valgrind
+ -DMEMORYCHECK_COMMAND="c:/projects/gammu/contrib/coveragehelper/Debug/coveragehelper.exe" -DMEMORYCHECK_COMMAND_OPTIONS="--separator" -DMEMORYCHECK_TYPE=Valgrind
-DPOSTGRES_FOUND=OFF -DMYSQL_FOUND=OFF
build:
project: ALL_BUILD.vcxproj
parallel: true
- verbosity: quiet
+ verbosity: minimal
after_build:
- - cmake --build . --config %CONFIGURATION% --target package
+ - cmake --build . --config %CONFIGURATION% --target package -- /verbosity:minimal
test_script:
- "SET PATH=%MYSQL_PATH%\\bin;%POSTGRESQL_PATH%\\bin;c:\\projects\\gammu;%PATH%"
diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt
index 63bb70b..eadf00a 100644
--- a/contrib/CMakeLists.txt
+++ b/contrib/CMakeLists.txt
@@ -129,6 +129,7 @@ endif (INSTALL_UDEV_RULES)
add_subdirectory(smscgi)
add_subdirectory(convert)
add_subdirectory(sqlreply)
+add_subdirectory(coveragehelper)
if (DEBUG OR "$ENV{TRAVIS}" STREQUAL "true")
add_subdirectory(cpp-sample)
diff --git a/contrib/coveragehelper/CMakeLists.txt b/contrib/coveragehelper/CMakeLists.txt
new file mode 100644
index 0000000..f6cc226
--- /dev/null
+++ b/contrib/coveragehelper/CMakeLists.txt
@@ -0,0 +1,4 @@
+project (Gammu-contrib-coveragehelper C)
+
+add_executable(coveragehelper "coveragehelper.c")
+
diff --git a/contrib/coveragehelper/coveragehelper.c b/contrib/coveragehelper/coveragehelper.c
new file mode 100644
index 0000000..eb2426d
--- /dev/null
+++ b/contrib/coveragehelper/coveragehelper.c
@@ -0,0 +1,161 @@
+/*
+ * Wrapper for CTest to execute every test through OpenCPPCoverage.
+ *
+ * Unfortunately there doesn't seem to be way to hook into the process than
+ * pretending to be valgrind memory tester.
+ *
+ * Usage:
+ *
+ * cmake \
+ * -DMEMORYCHECK_COMMAND=coveragehelper \
+ * -DMEMORYCHECK_COMMAND_OPTIONS=--separator \
+ * -DMEMORYCHECK_TYPE=Valgrind
+ * ctest -D NightlyMemCheck
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+#define ROOT_DIR "c:\\projects\\gammu"
+#define COVERAGE_TEMPLATE "c:\\projects\\gammu\\cobertura%s.xml"
+#define ARG_SEPARATOR "--separator"
+#define ARG_LOG "--log-file="
+#define ARG_LOG_LEN 11
+
+int main(int argc, char *argv[])
+{
+ int i;
+ char *logfile = NULL, *separator=NULL, *testnum, *tmp, *command, *commandline;
+ char logname[1000];
+ FILE *handle;
+#ifdef WIN32
+ BOOL result;
+ STARTUPINFO si;
+ PROCESS_INFORMATION pi;
+ DWORD exitcode;
+
+ commandline = GetCommandLine();
+#else
+ commandline = malloc(32768);
+ *commandline = '\0';
+#endif
+
+ // Parse params passed by CTest
+ for (i = 1; i < argc; i++) {
+ if (strncmp(argv[i], ARG_LOG, ARG_LOG_LEN) == 0) {
+ logfile = argv[i] + ARG_LOG_LEN;
+ }
+#ifndef WIN32
+ // This does not do proper escaping, but the code
+ // does not execute on non WIN32, it's for testing only
+ strcat(commandline, argv[i]);
+ strcat(commandline, " ");
+#endif
+ }
+
+ if (logfile == NULL) {
+ printf("MISSING PARAMETER: " ARG_LOG "\n");
+ return 1;
+ }
+
+ separator = strstr(commandline, ARG_SEPARATOR);
+
+ if (separator == NULL) {
+ printf("MISSING PARAMETER: " ARG_SEPARATOR "\n");
+ return 1;
+ }
+ separator += strlen(ARG_SEPARATOR);
+
+ // Create empty file (CTest expects to find it)
+ handle = fopen(logfile, "w");
+ if (handle == NULL) {
+ printf("FAILED TO CREATE LOG: %s\n", logfile);
+ return 1;
+ }
+ fclose(handle);
+
+ // Figure out test number (it's included in log name)
+ tmp = strrchr(logfile, '/');
+ if (tmp == NULL) {
+ tmp = strrchr(logfile, '\\');
+ }
+ if (tmp == NULL) {
+ goto fail_number;
+ }
+ testnum = strchr(logfile, '.');
+ if (testnum == NULL) {
+ goto fail_number;
+ }
+ testnum += 1;
+ tmp = strchr(testnum, '.');
+ if (tmp == NULL) {
+ goto fail_number;
+ }
+ *tmp = '\0';
+
+ // Calculate log name
+ sprintf(logname, COVERAGE_TEMPLATE, testnum);
+
+ // Prepare command line
+ command = malloc(32768);
+ if (command == NULL) {
+ printf("FAILED TO ALLOCATE!\n");
+ return 1;
+ }
+ sprintf(
+ command,
+ "OpenCppCoverage.exe --quiet --export_type cobertura:%s --modules %s --sources %s -- %s",
+ logname,
+ ROOT_DIR,
+ ROOT_DIR,
+ separator
+ );
+
+#ifdef WIN32
+ ZeroMemory(&si, sizeof(si));
+ si.cb = sizeof(si);
+ ZeroMemory(&pi, sizeof(pi));
+
+ result = CreateProcess(NULL, /* No module name (use command line) */
+ command, /* Command line */
+ NULL, /* Process handle not inheritable*/
+ NULL, /* Thread handle not inheritable*/
+ TRUE, /* Set handle inheritance to TRUE*/
+ 0, /* No creation flags*/
+ NULL, /* Use parent's environment block*/
+ NULL, /* Use parent's starting directory */
+ &si, /* Pointer to STARTUPINFO structure*/
+ &pi ); /* Pointer to PROCESS_INFORMATION structure*/
+ if (! result) {
+ printf("FAILED TO EXECUTE: \"%s\" error=0x%x\n", command, (int)GetLastError());
+ return 1;
+ }
+ free(command);
+ // Wait for process
+ WaitForSingleObject( pi.hProcess, INFINITE );
+
+ // Get the exit code.
+ result = GetExitCodeProcess(pi.hProcess, &exitcode);
+
+ // Close the handles.
+ CloseHandle( pi.hProcess );
+ CloseHandle( pi.hThread );
+
+ if (! result) {
+ printf("FAILED TO GET RESULT!\n");
+ return 1;
+ }
+ return exitcode;
+#else
+ printf("CMD: %s\n", command);
+ return 0;
+#endif
+
+fail_number:
+ printf("FAILED TO PARSE TEST NUMBER: %s\n", logfile);
+ return 1;
+}
diff --git a/contrib/coveragehelper/merge-cobertura.py b/contrib/coveragehelper/merge-cobertura.py
new file mode 100755
index 0000000..979f42b
--- /dev/null
+++ b/contrib/coveragehelper/merge-cobertura.py
@@ -0,0 +1,176 @@
+#!/usr/bin/env python
+"""
+Cobertura XML report merger
+
+Written for merging OpenCppCoverage reports, thus not completely supporting all
+Cobertura XML attributes, only line coverage which OpenCppCoverage generates.
+Anything else is simply discarded in the process.
+
+Copyright (C) 2017 Michal Cihar <michal@cihar.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+import argparse
+import glob
+import sys
+try:
+ from xml.etree.cElementTree import (
+ iterparse, Element, SubElement, ElementTree,
+ )
+except ImportError:
+ from xml.etree.ElementTree import (
+ iterparse, Element, SubElement, ElementTree,
+ )
+
+HEADER = '''<?xml version="1.0"?>
+<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
+'''
+
+
+def log(message=''):
+ """Log message to strderr"""
+ sys.stderr.write(message)
+ sys.stderr.write('\n')
+
+
+def read_files(names):
+ """Read coverage data from input files"""
+ result = {}
+ lines = {}
+ outfile = None
+ log('Reading files:')
+
+ for filename in names:
+ log('* {}'.format(filename))
+ for event, elem in iterparse(filename, events=('start', 'end')):
+ if elem.tag == 'class' and event == 'start':
+ outfile = elem.get('filename')
+ lines = result.get(outfile, {})
+ elif elem.tag == 'line' and event == 'end':
+ line = elem.get('number')
+ lines[line] = lines.get(line, 0) + int(elem.get('hits'))
+ elif elem.tag == 'class' and event == 'end':
+ result[outfile] = lines
+ log()
+
+ return result
+
+
+def get_line_rates(data):
+ """Calculate line hit rates from raw coverage data"""
+ result = {}
+ total_lines = 0
+ total_hits = 0
+ log('Counting line rates:')
+ for item in data:
+ lines = len(data[item])
+ hits = sum([1 for x in data[item].values() if x])
+ result[item] = 1.0 * hits / lines
+ log(' * {0} = {1} ({2} / {3})'.format(item, result[item], hits, lines))
+ total_lines += lines
+ total_hits += hits
+
+ result['_'] = 1.0 * total_hits / total_lines
+ result['_hits'] = total_hits
+ result['_lines'] = total_lines
+
+ return result
+
+
+def write_data(data, handle):
+ """Write Cobertura XML for coverage data"""
+ line_rates = get_line_rates(data)
+
+ log('Generating output...')
+ root = Element('coverage')
+ root.set('line-rate', str(line_rates['_']))
+ root.set('branch-rate', '0')
+ root.set('complexity', '0')
+ root.set('branches-covered', '0')
+ root.set('branches-valid', '0')
+ root.set('timestamp', '0')
+ root.set('lines-covered', str(line_rates['_hits']))
+ root.set('lines-valid', str(line_rates['_lines']))
+ root.set('version', '0')
+
+ sources = SubElement(root, 'sources')
+ source = SubElement(sources, 'source')
+ source.text = 'c:'
+
+ packages = SubElement(root, 'packages')
+ package = SubElement(packages, 'package')
+ package.set('name', 'gammu.exe')
+ package.set('line-rate', str(line_rates['_']))
+ package.set('branch-rate', '0')
+ package.set('complexity', '0')
+ classes = SubElement(package, 'classes')
+
+ for item in data:
+ obj = SubElement(classes, 'class')
+ obj.set('name', item.rsplit('\\', 1)[1])
+ obj.set('filename', item)
+ obj.set('line-rate', str(line_rates[item]))
+ obj.set('branch-rate', '0')
+ obj.set('complexity', '0')
+ SubElement(obj, 'methods')
+ lines = SubElement(obj, 'lines')
+ for line in sorted(data[item], key=lambda x: int(x)):
+ obj = SubElement(lines, 'line')
+ obj.set('number', line)
+ obj.set('hits', str(data[item][line]))
+
+ tree = ElementTree(root)
+
+ handle.write(HEADER)
+
+ tree.write(handle, xml_declaration=False)
+
+
+def main():
+ """Command line interface"""
+ parser = argparse.ArgumentParser(
+ description=sys.modules[__name__].__doc__,
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ )
+ parser.add_argument(
+ '-m', '--match',
+ help='wildcard to match files to process'
+ )
+ parser.add_argument(
+ '-o', '--output',
+ help='output file, stdout used if omitted'
+ )
+ parser.add_argument(
+ 'file',
+ nargs='*',
+ help='files to process'
+ )
+ args = parser.parse_args()
+ if args.match:
+ files = glob.glob(args.match)
+ else:
+ files = args.file
+
+ result = read_files(files)
+
+ if args.output:
+ with open(args.output, 'w') as handle:
+ write_data(result, handle)
+ else:
+ write_data(result, sys.stdout)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/contrib/coveragehelper/split-codecov.py b/contrib/coveragehelper/split-codecov.py
new file mode 100755
index 0000000..2018309
--- /dev/null
+++ b/contrib/coveragehelper/split-codecov.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python
+from __future__ import print_function
+import sys
+
+
+def main():
+ with open(sys.argv[1]) as handle:
+ output = None
+ for line in handle.readlines():
+ if line.startswith('# path='):
+ name = line.split('=', 1)[1].strip()
+ print('Creating {0}'.format(name))
+ if output:
+ output.close()
+ output = open(name, 'w')
+ elif line.startswith('<<<<<< EOF'):
+ output.close()
+ elif output:
+ output.write(line)
+ if output:
+ output.close()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/contrib/smscgi/smsd.c b/contrib/smscgi/smsd.c
index 8afc310..52f4699 100644
--- a/contrib/smscgi/smsd.c
+++ b/contrib/smscgi/smsd.c
@@ -23,11 +23,20 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <signal.h>
#include "sms_cgi.h"
static GSM_StateMachine *s;
static INI_Section *cfg;
+volatile int signalled;
+
+void interrupt(int sign)
+{
+ signal(sign, SIG_IGN);
+ GSM_AbortOperation(s);
+ signalled = 1;
+}
/* Function to handle errors */
void error_handler(void)
@@ -46,6 +55,8 @@ int main(int argc UNUSED, char **argv UNUSED)
GSM_Debug_Info *debug_info;
const char*tmp;
+ signal(SIGINT, interrupt);
+
/* Enable global debugging to stderr */
debug_info = GSM_GetGlobalDebug();
GSM_SetDebugFileDescriptor(stderr, FALSE, debug_info);
@@ -117,6 +128,10 @@ int main(int argc UNUSED, char **argv UNUSED)
/* ---------------------------------------- set the SMS callback function */
GSM_SetIncomingSMSCallback(s, cgi_enqueue, NULL);
smprintf(s, "registered sms callback\n");
+
+ if (signalled) {
+ break;
+ }
}
/* Terminate connection */
diff --git a/description-pak b/description-pak
index f70f32c..71f9771 100644
--- a/description-pak
+++ b/description-pak
@@ -1,4 +1,4 @@
-Gammu (Gammu All Mobile Management Utilities) 1.38.2
+Gammu (Gammu All Mobile Management Utilities) 1.38.4
Gammu is a command line utility and library to work with mobile phones
from many vendors. Support for different models differs, but basic
diff --git a/docs/man/gammu-backup.5 b/docs/man/gammu-backup.5
index 7748251..0e50c0e 100644
--- a/docs/man/gammu-backup.5
+++ b/docs/man/gammu-backup.5
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-BACKUP" "5" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-BACKUP" "5" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-backup \- gammu(1) backup file format.
.
diff --git a/docs/man/gammu-config.1 b/docs/man/gammu-config.1
index f0fc5f3..d8bb25d 100644
--- a/docs/man/gammu-config.1
+++ b/docs/man/gammu-config.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-CONFIG" "1" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-CONFIG" "1" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-config \- Gammu configurator
.
diff --git a/docs/man/gammu-detect.1 b/docs/man/gammu-detect.1
index 20580cb..dbd12c5 100644
--- a/docs/man/gammu-detect.1
+++ b/docs/man/gammu-detect.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-DETECT" "1" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-DETECT" "1" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-detect \- Gammu device detection
.
diff --git a/docs/man/gammu-smsbackup.5 b/docs/man/gammu-smsbackup.5
index b132f00..f81eab1 100644
--- a/docs/man/gammu-smsbackup.5
+++ b/docs/man/gammu-smsbackup.5
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSBACKUP" "5" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSBACKUP" "5" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsbackup \- gammu(1) SMS backup file format.
.
diff --git a/docs/man/gammu-smsd-dbi.7 b/docs/man/gammu-smsd-dbi.7
index 3d64941..cd1c1ca 100644
--- a/docs/man/gammu-smsd-dbi.7
+++ b/docs/man/gammu-smsd-dbi.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-DBI" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-DBI" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-dbi \- gammu-smsd(1) backend using DBI abstraction layer to use any supported database as a message storage
.
diff --git a/docs/man/gammu-smsd-files.7 b/docs/man/gammu-smsd-files.7
index c50b5bc..d4db87b 100644
--- a/docs/man/gammu-smsd-files.7
+++ b/docs/man/gammu-smsd-files.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-FILES" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-FILES" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-files \- gammu-smsd(1) backend using filesystem as a message storage
.
diff --git a/docs/man/gammu-smsd-inject.1 b/docs/man/gammu-smsd-inject.1
index ab342c3..1190eda 100644
--- a/docs/man/gammu-smsd-inject.1
+++ b/docs/man/gammu-smsd-inject.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-INJECT" "1" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-INJECT" "1" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-inject \- Inject messages into queue of SMS daemon for Gammu
.
diff --git a/docs/man/gammu-smsd-monitor.1 b/docs/man/gammu-smsd-monitor.1
index a2b0746..13b93da 100644
--- a/docs/man/gammu-smsd-monitor.1
+++ b/docs/man/gammu-smsd-monitor.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-MONITOR" "1" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-MONITOR" "1" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-monitor \- Monitor state of SMS daemon for Gammu
.
diff --git a/docs/man/gammu-smsd-mysql.7 b/docs/man/gammu-smsd-mysql.7
index 6e10cb0..18867b4 100644
--- a/docs/man/gammu-smsd-mysql.7
+++ b/docs/man/gammu-smsd-mysql.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-MYSQL" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-MYSQL" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-mysql \- gammu-smsd(1) backend using MySQL database server as a message storage
.
diff --git a/docs/man/gammu-smsd-null.7 b/docs/man/gammu-smsd-null.7
index 399058c..b537d41 100644
--- a/docs/man/gammu-smsd-null.7
+++ b/docs/man/gammu-smsd-null.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-NULL" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-NULL" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-null \- gammu-smsd(1) backend not storing messages
.
diff --git a/docs/man/gammu-smsd-odbc.7 b/docs/man/gammu-smsd-odbc.7
index baf8c88..e6bc132 100644
--- a/docs/man/gammu-smsd-odbc.7
+++ b/docs/man/gammu-smsd-odbc.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-ODBC" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-ODBC" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-odbc \- gammu-smsd(1) backend using ODBC abstraction layer to use any supported database as a message storage
.
@@ -48,10 +48,15 @@ On Microsoft Windows, Gammu uses native ODBC, on other platforms, \fI\%unixODBC\
can be used.
.SH LIMITATIONS
.sp
-Due to limits of the ODBC interface, you might have to tweak SQL queries to
-work in used SQL server, see SQL Queries for more details.
+Due to limits of the ODBC interface, Gammu can not reliably detect which SQL
+engine it is connected to.
.sp
-Partially this can be configured using \fBSQL\fP\&.
+In most cases this can be solved by setting \fBSQL\fP setting to
+correct dialect.
+.sp
+If that fails, you can also tweak the SQL queries to work in used SQL server,
+see SQL Queries for more details. Still you should set
+\fBSQL\fP to closest matching SQL dialect.
.SH CONFIGURATION
.sp
Before running gammu\-smsd you need to create necessary tables in the
diff --git a/docs/man/gammu-smsd-pgsql.7 b/docs/man/gammu-smsd-pgsql.7
index 03c50ab..3606b1b 100644
--- a/docs/man/gammu-smsd-pgsql.7
+++ b/docs/man/gammu-smsd-pgsql.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-PGSQL" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-PGSQL" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-pgsql \- gammu-smsd(1) backend using PostgreSQL database server as a message storage
.
diff --git a/docs/man/gammu-smsd-run.7 b/docs/man/gammu-smsd-run.7
index 920e81d..4b58542 100644
--- a/docs/man/gammu-smsd-run.7
+++ b/docs/man/gammu-smsd-run.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-RUN" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-RUN" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-run \- documentation for RunOnReceive directive
.
diff --git a/docs/man/gammu-smsd-sql.7 b/docs/man/gammu-smsd-sql.7
index 27123cb..2c76f9d 100644
--- a/docs/man/gammu-smsd-sql.7
+++ b/docs/man/gammu-smsd-sql.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-SQL" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-SQL" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-sql \- gammu-smsd(1) backend using SQL abstraction layer to use any supported database as a message storage
.
diff --git a/docs/man/gammu-smsd-tables.7 b/docs/man/gammu-smsd-tables.7
index ae6bfe1..4d29d71 100644
--- a/docs/man/gammu-smsd-tables.7
+++ b/docs/man/gammu-smsd-tables.7
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD-TABLES" "7" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD-TABLES" "7" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd-tables \- description of tables for database backends of gammu-smsd(1)
.
diff --git a/docs/man/gammu-smsd.1 b/docs/man/gammu-smsd.1
index 19d7452..46bc1aa 100644
--- a/docs/man/gammu-smsd.1
+++ b/docs/man/gammu-smsd.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSD" "1" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSD" "1" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsd \- SMS daemon for Gammu
.
diff --git a/docs/man/gammu-smsdrc.5 b/docs/man/gammu-smsdrc.5
index 06671ab..bdc0733 100644
--- a/docs/man/gammu-smsdrc.5
+++ b/docs/man/gammu-smsdrc.5
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU-SMSDRC" "5" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU-SMSDRC" "5" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu-smsdrc \- gammu-smsd(1) configuration file
.
@@ -242,7 +242,8 @@ Default is 0, what should mean no extra information.
.INDENT 0.0
.TP
.B CommTimeout
-How many seconds should SMSD wait after there is no message in outbox.
+How many seconds should SMSD wait after there is no message in outbox
+before scanning it again.
.sp
Default is 30.
.UNINDENT
@@ -277,7 +278,9 @@ Default is 15.
The number of seconds between refreshing phone status (battery, signal) stored
in shared memory and possibly in service backends. Use 0 to disable.
.sp
-Default is 15.
+You might want to increase this for higher throughput.
+.sp
+Default is 60.
.UNINDENT
.INDENT 0.0
.TP
@@ -288,7 +291,13 @@ effects to other time based configurations, because they will be effectively
rounded to multiply of this value.
.sp
Setting this to 0 disables sleeping. Please note this might cause Gammu to
-consume quite a lot of CPU power.
+consume quite a lot of CPU power as it will effectively do busy loop.
+.sp
+This sleep is utilized only if the main loop (sending and receiving
+messages) takes less than defined time. For example if you set LoopSleep to
+5 seconds and sending messages take 10 seconds, no sleep will be done in
+the iteration which is sending messages. Also the sleep time is lowered by
+the already processed time.
.sp
Default is 1.
.UNINDENT
diff --git a/docs/man/gammu.1 b/docs/man/gammu.1
index f82625a..ac5009b 100644
--- a/docs/man/gammu.1
+++ b/docs/man/gammu.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMU" "1" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMU" "1" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammu \- Does some neat things with your cellular phone or modem.
.
diff --git a/docs/man/gammurc.5 b/docs/man/gammurc.5
index adcbfc6..c831076 100644
--- a/docs/man/gammurc.5
+++ b/docs/man/gammurc.5
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "GAMMURC" "5" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "GAMMURC" "5" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
gammurc \- gammu(1) configuration file
.
diff --git a/docs/man/jadmaker.1 b/docs/man/jadmaker.1
index 2b195f1..480be48 100644
--- a/docs/man/jadmaker.1
+++ b/docs/man/jadmaker.1
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
-.TH "JADMAKER" "1" "Mar 28, 2017" "1.38.2" "Gammu"
+.TH "JADMAKER" "1" "Jun 18, 2017" "1.38.4" "Gammu"
.SH NAME
jadmaker \- JAD File Generator
.
diff --git a/docs/manual/project/install.rst b/docs/manual/project/install.rst
index 58dc4d5..c4a00ae 100644
--- a/docs/manual/project/install.rst
+++ b/docs/manual/project/install.rst
@@ -580,4 +580,8 @@ You can install it using pip installer:
pip install python-gammu
+You need to have Gammu installed for compiling python-gammu. It's location is
+discovered using pkg-config or by GAMMU_PATH environment variable. The latter
+is recommended when building on Windows.
+
.. _CMake: http://www.cmake.org/
diff --git a/docs/manual/python/gammu.rst b/docs/manual/python/gammu.rst
index 9a8dfde..ef1009d 100644
--- a/docs/manual/python/gammu.rst
+++ b/docs/manual/python/gammu.rst
@@ -107,7 +107,7 @@ This module wraps all python-gammu functionality.
:param ID: ID of call
:type ID: int
- :param All: Answer all calls?
+ :param All: Answer all calls? Defaults to True
:type All: bool
:return: None
:rtype: None
@@ -128,7 +128,7 @@ This module wraps all python-gammu functionality.
:param ID: ID of call
:type ID: int
- :param All: Cancel all calls?
+ :param All: Cancel all calls? Defaults to True
:type All: bool
:return: None
:rtype: None
diff --git a/docs/manual/smsd/config.rst b/docs/manual/smsd/config.rst
index b1a8349..7f60dc4 100644
--- a/docs/manual/smsd/config.rst
+++ b/docs/manual/smsd/config.rst
@@ -169,7 +169,8 @@ General parameters of SMS daemon
.. config:option:: CommTimeout
- How many seconds should SMSD wait after there is no message in outbox.
+ How many seconds should SMSD wait after there is no message in outbox
+ before scanning it again.
Default is 30.
@@ -200,7 +201,9 @@ General parameters of SMS daemon
The number of seconds between refreshing phone status (battery, signal) stored
in shared memory and possibly in service backends. Use 0 to disable.
- Default is 15.
+ You might want to increase this for higher throughput.
+
+ Default is 60.
.. config:option:: LoopSleep
@@ -210,7 +213,13 @@ General parameters of SMS daemon
rounded to multiply of this value.
Setting this to 0 disables sleeping. Please note this might cause Gammu to
- consume quite a lot of CPU power.
+ consume quite a lot of CPU power as it will effectively do busy loop.
+
+ This sleep is utilized only if the main loop (sending and receiving
+ messages) takes less than defined time. For example if you set LoopSleep to
+ 5 seconds and sending messages take 10 seconds, no sleep will be done in
+ the iteration which is sending messages. Also the sleep time is lowered by
+ the already processed time.
Default is 1.
diff --git a/docs/manual/smsd/odbc.rst b/docs/manual/smsd/odbc.rst
index e9efe10..d32e41f 100644
--- a/docs/manual/smsd/odbc.rst
+++ b/docs/manual/smsd/odbc.rst
@@ -28,10 +28,15 @@ can be used.
Limitations
-----------
-Due to limits of the ODBC interface, you might have to tweak SQL queries to
-work in used SQL server, see :ref:`SQL Queries` for more details.
+Due to limits of the ODBC interface, Gammu can not reliably detect which SQL
+engine it is connected to.
-Partially this can be configured using :config:option:`SQL`.
+In most cases this can be solved by setting :config:option:`SQL` setting to
+correct dialect.
+
+If that fails, you can also tweak the SQL queries to work in used SQL server,
+see :ref:`SQL Queries` for more details. Still you should set
+:config:option:`SQL` to closest matching SQL dialect.
Configuration
-------------
diff --git a/gammu-detect/CMakeLists.txt b/gammu-detect/CMakeLists.txt
index 32a0f6a..ebe98b8 100644
--- a/gammu-detect/CMakeLists.txt
+++ b/gammu-detect/CMakeLists.txt
@@ -46,6 +46,7 @@ if (Glib_FOUND AND GObject_FOUND)
add_test(gammu-detect-help "${CMAKE_CURRENT_BINARY_DIR}/gammu-detect${CMAKE_EXECUTABLE_SUFFIX}" --help)
add_test(gammu-detect-version "${CMAKE_CURRENT_BINARY_DIR}/gammu-detect${CMAKE_EXECUTABLE_SUFFIX}" --version)
+ add_test(gammu-detect-run "${CMAKE_CURRENT_BINARY_DIR}/gammu-detect${CMAKE_EXECUTABLE_SUFFIX}")
endif (Glib_FOUND AND GObject_FOUND)
diff --git a/gammu-detect/bluez.c b/gammu-detect/bluez.c
index cd1f9b3..3a71a6e 100644
--- a/gammu-detect/bluez.c
+++ b/gammu-detect/bluez.c
@@ -476,10 +476,14 @@ void bluez_detect(void)
char name[248] = { 0 };
dev_id = hci_get_route(NULL);
+ if (dev_id < 0) {
+ perror("Error finding Bluetooth adapter");
+ return;
+ }
sock = hci_open_dev(dev_id);
- if (dev_id < 0 || sock < 0) {
- perror("opening socket");
- exit(1);
+ if (sock < 0) {
+ perror("Error opening Bluetooth socket");
+ return;
}
len = 8;
diff --git a/gammu-detect/win32-serial.c b/gammu-detect/win32-serial.c
index e38a825..5c2ee14 100644
--- a/gammu-detect/win32-serial.c
+++ b/gammu-detect/win32-serial.c
@@ -26,7 +26,7 @@
#include "win32-serial.h"
#include "main.h"
-#include "../helper/string.c"
+#include "../libgammu/misc/string.c"
#include "../helper/locales.h" /* For gettext */
void win32_serial_detect(void)
diff --git a/gammu.spec b/gammu.spec
index de04be6..7494a1c 100644
--- a/gammu.spec
+++ b/gammu.spec
@@ -9,7 +9,7 @@
%define extension xz
Name: gammu
-Version: 1.38.2
+Version: 1.38.4
Release: 0
Summary: Mobile phone management utility
License: GPL-2.0
diff --git a/gammu/CMakeLists.txt b/gammu/CMakeLists.txt
index 3ba120e..35ca9b6 100644
--- a/gammu/CMakeLists.txt
+++ b/gammu/CMakeLists.txt
@@ -52,7 +52,6 @@ target_link_libraries (gammu messagedisplay)
target_link_libraries (gammu messagecmdline)
target_link_libraries (gammu memorydisplay)
target_link_libraries (gammu printing)
-target_link_libraries (gammu string)
target_link_libraries (gammu cmdline)
target_link_libraries (gammu ${CMAKE_THREAD_LIBS_INIT})
diff --git a/gammu/backup.c b/gammu/backup.c
index 7226b87..13b1f1c 100644
--- a/gammu/backup.c
+++ b/gammu/backup.c
@@ -14,7 +14,7 @@
#include "../helper/message-display.h"
#include "../helper/memory-display.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#include "../helper/cmdline.h"
/**
diff --git a/gammu/backupsms.c b/gammu/backupsms.c
index 82ddb6a..e5f9097 100644
--- a/gammu/backupsms.c
+++ b/gammu/backupsms.c
@@ -14,7 +14,7 @@
#include "../helper/message-display.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
void BackupSMS(int argc UNUSED, char *argv[])
{
diff --git a/gammu/common.h b/gammu/common.h
index c52ae6c..fc2ec4d 100644
--- a/gammu/common.h
+++ b/gammu/common.h
@@ -2,7 +2,7 @@
#define _gammu_common_h
#include <gammu.h>
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
extern volatile gboolean gshutdown;
extern GSM_StateMachine *gsm;
diff --git a/gammu/depend/nokia/dct3.c b/gammu/depend/nokia/dct3.c
index 87001b0..c1e2c46 100644
--- a/gammu/depend/nokia/dct3.c
+++ b/gammu/depend/nokia/dct3.c
@@ -14,7 +14,7 @@
#include "../../../libgammu/phone/pfunc.h"
#include "../../../libgammu/service/gsmnet.h"
#include "../../gammu.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#include "../../../helper/cmdline.h"
extern GSM_Reply_Function UserReplyFunctions3[];
diff --git a/gammu/depend/nokia/dct4.c b/gammu/depend/nokia/dct4.c
index a5c0877..2bb6568 100644
--- a/gammu/depend/nokia/dct4.c
+++ b/gammu/depend/nokia/dct4.c
@@ -15,7 +15,7 @@
#include "../../../helper/locales.h"
#include "../../../helper/formats.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#include "../../../helper/cmdline.h"
extern GSM_Reply_Function UserReplyFunctions4[];
diff --git a/gammu/files.c b/gammu/files.c
index 9ddd6cb..f85a740 100644
--- a/gammu/files.c
+++ b/gammu/files.c
@@ -26,7 +26,7 @@
#include "../helper/formats.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
/**
* Displays status of filesystem (if available).
diff --git a/gammu/gammu.c b/gammu/gammu.c
index 96fd65c..d1a42df 100644
--- a/gammu/gammu.c
+++ b/gammu/gammu.c
@@ -26,7 +26,7 @@
#include "../helper/locales.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#include "../helper/cmdline.h"
#ifdef DEBUG
@@ -361,9 +361,8 @@ static void RunBatch(int argc, char *argv[])
* @todo Allocate memory dynamically.
*/
char ln[2000], token;
- size_t i, len;
- ssize_t pos;
- int j, c = 0, argsc, n;
+ ssize_t pos, i, len, j;
+ int c = 0, argsc, n;
char *argsv[20];
gboolean origbatch;
char *name;
@@ -808,9 +807,10 @@ void HelpGeneral(void)
printf("\n");
}
-void HelpSplit(int cols, int len, const char *buff)
+void HelpSplit(int cols, ssize_t len, const char *buff)
{
- int l, len2, pos, split;
+ int l, pos, split;
+ ssize_t len2;
gboolean in_opt, first = TRUE;
const char *remain;
char spaces[50], buffer[500];
diff --git a/gammu/memory.c b/gammu/memory.c
index 6f387b8..1e20beb 100644
--- a/gammu/memory.c
+++ b/gammu/memory.c
@@ -12,7 +12,7 @@
#include "../helper/formats.h"
#include "../helper/memory-display.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#include "../helper/cmdline.h"
void GetAllMemory(int argc UNUSED, char *argv[])
diff --git a/gammu/message.c b/gammu/message.c
index 2c8e577..5e2c61d 100644
--- a/gammu/message.c
+++ b/gammu/message.c
@@ -24,7 +24,7 @@
#include "../helper/memory-display.h"
#include "../helper/message-cmdline.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#include "../helper/cmdline.h"
volatile gboolean wasincomingsms = FALSE;
diff --git a/gammu/misc.c b/gammu/misc.c
index cbfe5c3..3665126 100644
--- a/gammu/misc.c
+++ b/gammu/misc.c
@@ -19,7 +19,7 @@
#include "../helper/formats.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#include "../helper/cmdline.h"
#ifdef GSM_ENABLE_NOKIA_DCT3
@@ -398,12 +398,14 @@ void Screenshot(int argc UNUSED, char *argv[])
f = fopen(fname, "w");
if (f == NULL) {
printf_err("Failed to open file: %s\n", fname);
+ free(fname);
return;
}
written = fwrite(pic.Buffer, 1, pic.Length, f);
ret = fclose(f);
if (ret != 0 || written != pic.Length) {
printf_err("Failed to write file: %s\n", fname);
+ free(fname);
return;
}
diff --git a/gammu/mms.c b/gammu/mms.c
index 83d9301..ae762ec 100644
--- a/gammu/mms.c
+++ b/gammu/mms.c
@@ -11,7 +11,7 @@
#include "../helper/memory-display.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
void GetMMSFolders(int argc UNUSED, char *argv[] UNUSED)
diff --git a/gammu/nokia.c b/gammu/nokia.c
index 4a099da..8b2bac7 100644
--- a/gammu/nokia.c
+++ b/gammu/nokia.c
@@ -21,7 +21,7 @@
#include "../helper/formats.h"
#include "../helper/printing.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#if defined(GSM_ENABLE_NOKIA_DCT3) || defined(GSM_ENABLE_NOKIA_DCT4)
void NokiaComposer(int argc UNUSED, char *argv[])
diff --git a/gammu/search.c b/gammu/search.c
index 49857f6..48932b1 100644
--- a/gammu/search.c
+++ b/gammu/search.c
@@ -23,7 +23,7 @@
#include "common.h"
#include "../helper/formats.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#if defined(HAVE_WIN32_THREADS) || defined(HAVE_PTHREAD)
/**
diff --git a/helper/CMakeLists.txt b/helper/CMakeLists.txt
index 08921b4..7ab2e28 100644
--- a/helper/CMakeLists.txt
+++ b/helper/CMakeLists.txt
@@ -10,14 +10,6 @@ include_directories (
"${CMAKE_CURRENT_BINARY_DIR}/../include"
)
-add_library(string STATIC string.c)
-add_coverage (string)
-GAMMU_TUNE_SHARED(string)
-
-add_library(array STATIC array.c)
-add_coverage (array)
-GAMMU_TUNE_SHARED(array)
-
add_library (printing STATIC printing.c)
add_coverage (printing)
GAMMU_TUNE_SHARED(printing)
@@ -37,7 +29,6 @@ add_coverage (messagecmdline)
GAMMU_TUNE_SHARED(messagecmdline)
target_link_libraries (messagecmdline libGammu)
target_link_libraries (messagecmdline printing)
-target_link_libraries (messagecmdline string)
target_link_libraries (messagecmdline cmdline)
add_library (messagedisplay STATIC message-display.c)
@@ -52,15 +43,3 @@ if (LIBINTL_LIB_FOUND AND LIBINTL_LIBRARIES)
target_link_libraries (printing ${LIBINTL_LIBRARIES})
include_directories (${LIBINTL_INCLUDE_DIR})
endif (LIBINTL_LIB_FOUND AND LIBINTL_LIBRARIES)
-
-if(WIN32 AND NOT CMAKE_COMPILER_IS_MINGW AND NOT CMAKE_COMPILER_IS_CYGWIN)
- add_library(win32dirent STATIC win32-dirent.c)
- add_coverage (win32dirent)
-endif(WIN32 AND NOT CMAKE_COMPILER_IS_MINGW AND NOT CMAKE_COMPILER_IS_CYGWIN)
-
-if (NOT HAVE_STRPTIME)
- add_library(strptime STATIC strptime.c)
- add_coverage (strptime)
- GAMMU_TUNE_SHARED(strptime)
- target_link_libraries (strptime string)
-endif (NOT HAVE_STRPTIME)
diff --git a/helper/message-cmdline.c b/helper/message-cmdline.c
index fe65024..7abde25 100644
--- a/helper/message-cmdline.c
+++ b/helper/message-cmdline.c
@@ -17,7 +17,7 @@
#include "formats.h"
#include "printing.h"
-#include "string.h"
+#include "../libgammu/misc/string.h"
#include "message-cmdline.h"
#include "cmdline.h"
diff --git a/libgammu/CMakeLists.txt b/libgammu/CMakeLists.txt
index aa3c798..1f2c97e 100644
--- a/libgammu/CMakeLists.txt
+++ b/libgammu/CMakeLists.txt
@@ -12,8 +12,10 @@ set (LIBRARY_SRC
gsmstate.c
api.c
debug.c
+ misc/array.c
misc/misc.c
misc/cfg.c
+ misc/string.c
misc/coding/coding.c
service/sms/gsmsms.c
service/sms/gsmems.c
@@ -73,6 +75,15 @@ set (LIBRARY_SRC
phone/symbian/gnapgen.c
phone/s60/s60phone.c)
+if (NOT HAVE_STRPTIME)
+ list (APPEND LIBRARY_SRC misc/strptime.c)
+endif (NOT HAVE_STRPTIME)
+
+# dirent emulation layer
+if(WIN32 AND NOT CMAKE_COMPILER_IS_MINGW AND NOT CMAKE_COMPILER_IS_CYGWIN)
+ list (APPEND LIBRARY_SRC misc/win32-dirent.c)
+endif(WIN32 AND NOT CMAKE_COMPILER_IS_MINGW AND NOT CMAKE_COMPILER_IS_CYGWIN)
+
# Own or glib based MD5 implementation
if (Glib_FOUND)
list (APPEND LIBRARY_SRC misc/coding/md5-glib.c)
@@ -130,8 +141,6 @@ if(CMAKE_COMPILER_IS_MINGW AND BUILD_SHARED_LIBS)
endif(CMAKE_COMPILER_IS_MINGW AND BUILD_SHARED_LIBS)
-target_link_libraries (libGammu string)
-
if (Glib_FOUND)
target_link_libraries (libGammu ${Glib_LIBRARIES} ${GObject_LIBRARIES})
include_directories(${Glib_INCLUDE_DIRS} ${GObject_INCLUDE_DIRS})
@@ -175,11 +184,6 @@ if (LIBINTL_LIB_FOUND AND LIBINTL_LIBRARIES)
include_directories (${LIBINTL_INCLUDE_DIR})
endif (LIBINTL_LIB_FOUND AND LIBINTL_LIBRARIES)
-# dirent emulation layer
-if(WIN32 AND NOT CMAKE_COMPILER_IS_MINGW AND NOT CMAKE_COMPILER_IS_CYGWIN)
- target_link_libraries (libGammu win32dirent)
-endif(WIN32 AND NOT CMAKE_COMPILER_IS_MINGW AND NOT CMAKE_COMPILER_IS_CYGWIN)
-
# Include search path
include_directories ("${CMAKE_CURRENT_BINARY_DIR}/../include")
include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/../common")
diff --git a/libgammu/device/bluetooth/bluetooth.c b/libgammu/device/bluetooth/bluetooth.c
index ba390f9..edc8948 100644
--- a/libgammu/device/bluetooth/bluetooth.c
+++ b/libgammu/device/bluetooth/bluetooth.c
@@ -15,7 +15,7 @@
#include "../devfunc.h"
#include "bluetooth.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#ifdef BLUEZ_FOUND
# include "bluez.h"
diff --git a/libgammu/device/proxy/proxy.c b/libgammu/device/proxy/proxy.c
index 6dc91e6..0b2de97 100644
--- a/libgammu/device/proxy/proxy.c
+++ b/libgammu/device/proxy/proxy.c
@@ -13,7 +13,7 @@
#include "../devfunc.h"
#include "proxy.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
/* Expand a proxy command */
static char *
@@ -158,7 +158,7 @@ ssize_t write_nosigpipe(int fd, const void *buf, size_t len)
sigset_t oldset, newset;
ssize_t result;
siginfo_t si;
- struct timespec ts = {0};
+ struct timespec ts = {0, 0};
sigemptyset(&newset);
sigaddset(&newset, SIGPIPE);
diff --git a/libgammu/device/serial/ser_w32.c b/libgammu/device/serial/ser_w32.c
index af8608f..4593489 100644
--- a/libgammu/device/serial/ser_w32.c
+++ b/libgammu/device/serial/ser_w32.c
@@ -41,6 +41,7 @@
#include "../../gsmcomon.h"
#include "ser_w32.h"
+#include "../libgammu/misc/string.h"
static GSM_Error serial_close(GSM_StateMachine *s)
{
@@ -189,7 +190,7 @@ static GSM_Error serial_open (GSM_StateMachine *s)
#endif
if ((s->ConnectionType == GCT_DKU5FBUS2) ||
- (!strncmp(DeviceName2,"com",3) && strlen(DeviceName2)>3)) {
+ (strncasecmp(DeviceName2,"com",3) == 0 && strlen(DeviceName2)>3)) {
sprintf(DeviceName,"\\\\.\\COM%i",atoi(DeviceName2+3));
} else {
strcpy(DeviceName,DeviceName2);
diff --git a/libgammu/device/usb/usb.c b/libgammu/device/usb/usb.c
index aa839b5..73a33d3 100644
--- a/libgammu/device/usb/usb.c
+++ b/libgammu/device/usb/usb.c
@@ -23,7 +23,7 @@
#include "../../gsmcomon.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
/**
* Nokia USB vendor ID.
diff --git a/libgammu/gsmphones.c b/libgammu/gsmphones.c
index 9893b94..93b4926 100644
--- a/libgammu/gsmphones.c
+++ b/libgammu/gsmphones.c
@@ -19,7 +19,7 @@
#include <ctype.h>
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#define MAX_FEATURE_NAME_LEN 20
@@ -401,6 +401,7 @@ GSM_PhoneModel allmodels[] = {
{"8800" ,"RM-13" ,"Nokia 8800", {F_PBKTONEGAL,F_TODO66,F_RADIO,F_PBKSMSLIST,F_PBKUSER,F_NOTES,F_CHAT,F_SYNCML,F_FILES2,0}},
{"8910" ,"NHM-4" ,"Nokia 8910", {F_CAL62,F_NOMIDI,F_NOFILESYSTEM,F_NOMMS,0}},
{"8910i","NHM-4" ,"Nokia 8910i",{F_CAL62,F_NOMIDI,F_NOFILESYSTEM,F_NOMMS,0}},
+ {"C1" ,"RM-607", "Nokia C1", {F_SERIES40_30,F_FILES2,F_TODO66,F_RADIO,F_NOTES,F_SMS_FILES,F_6230iCALLER,0}},/* fixme */
{"C2-01","RM-721","Nokia C2-01", {F_SERIES40_30,F_FILES2,F_TODO66,F_RADIO,F_NOTES,F_SMS_FILES,F_6230iCALLER,0}},/* fixme */
{"200", "RM-761","Nokia Asha 200", {F_SERIES40_30,F_FILES2,F_TODO66,F_RADIO,F_NOTES,F_SMS_FILES,F_6230iCALLER,0}},/* fixme */
{"306","RM-767","Nokia Asha 306", {F_SERIES40_30,F_FILES2,F_TODO66,F_RADIO,F_NOTES,F_SMS_FILES,F_6230iCALLER,0}},/* fixme */
@@ -961,6 +962,7 @@ GSM_PhoneModel allmodels[] = {
{"E1550", "E1550", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"E1750", "E1750", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, 0}},
{"E1752", "E1752", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, 0}},
+ {"E1756", "E1756", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"E303", "E303", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"EM770W", "EM770W", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"E3372", "E3372", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
@@ -968,6 +970,7 @@ GSM_PhoneModel allmodels[] = {
{"E372", "E372", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"E398", "E398", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"E3131", "E3131", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
+ {"E3531", "E3531", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"K3715", "K3715", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"K3765", "K3765", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
{"K3770", "K3770", "", {F_SMS_LOCATION_0, F_ENCODED_USSD, F_FOUR_DIGIT_YEAR, F_RESET_AFTER_TIMEOUT, F_HUAWEI_INIT, 0}},
@@ -978,6 +981,7 @@ GSM_PhoneModel allmodels[] = {
{"MF100", "MF100", "", {F_ZTE_INIT, 0}},
{"MF112", "MF112", "", {F_ZTE_INIT, 0}},
{"MF190", "MF190", "", {F_ZTE_INIT, 0}},
+ {"MF626", "MF626", "", {F_ZTE_INIT, 0}},
/* Ubinetics */
{"GDC201", "GDC201", "", {F_SMS_NO_ME, 0}},
diff --git a/libgammu/gsmstate.c b/libgammu/gsmstate.c
index 9761f68..96bb7ff 100644
--- a/libgammu/gsmstate.c
+++ b/libgammu/gsmstate.c
@@ -21,7 +21,7 @@
#include "misc/misc.h"
#include "device/devfunc.h"
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#if defined(HAVE_GETPWUID) && defined(HAVE_GETUID)
#include <sys/types.h>
diff --git a/helper/array.c b/libgammu/misc/array.c
index 529a031..529a031 100644
--- a/helper/array.c
+++ b/libgammu/misc/array.c
diff --git a/helper/array.h b/libgammu/misc/array.h
index 671ad40..671ad40 100644
--- a/helper/array.h
+++ b/libgammu/misc/array.h
diff --git a/libgammu/misc/cfg.c b/libgammu/misc/cfg.c
index 4c46091..ee7a332 100644
--- a/libgammu/misc/cfg.c
+++ b/libgammu/misc/cfg.c
@@ -16,7 +16,7 @@
#include <gammu-inifile.h>
#include "coding/coding.h"
-#include "../../helper/string.h"
+#include "../../libgammu/misc/string.h"
/**
* Read information from file in Windows INI format style
diff --git a/helper/string.c b/libgammu/misc/string.c
index 8d502b9..8d502b9 100644
--- a/helper/string.c
+++ b/libgammu/misc/string.c
diff --git a/helper/string.h b/libgammu/misc/string.h
index 7c31457..7c31457 100644
--- a/helper/string.h
+++ b/libgammu/misc/string.h
diff --git a/helper/strptime.c b/libgammu/misc/strptime.c
index f6bb641..f6bb641 100644
--- a/helper/strptime.c
+++ b/libgammu/misc/strptime.c
diff --git a/helper/strptime.h b/libgammu/misc/strptime.h
index 5b61880..5b61880 100644
--- a/helper/strptime.h
+++ b/libgammu/misc/strptime.h
diff --git a/helper/tzfile.h b/libgammu/misc/tzfile.h
index f20d657..f20d657 100644
--- a/helper/tzfile.h
+++ b/libgammu/misc/tzfile.h
diff --git a/helper/win32-dirent.c b/libgammu/misc/win32-dirent.c
index 7b7eb25..7b7eb25 100644
--- a/helper/win32-dirent.c
+++ b/libgammu/misc/win32-dirent.c
diff --git a/helper/win32-dirent.h b/libgammu/misc/win32-dirent.h
index d5afd5d..d5afd5d 100644
--- a/helper/win32-dirent.h
+++ b/libgammu/misc/win32-dirent.h
diff --git a/libgammu/phone/at/at-sms.c b/libgammu/phone/at/at-sms.c
index aac34bb..7cccfb1 100644
--- a/libgammu/phone/at/at-sms.c
+++ b/libgammu/phone/at/at-sms.c
@@ -33,7 +33,7 @@
#include "atgen.h"
#include "atfunc.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
GSM_Error ATGEN_SetSMSC(GSM_StateMachine *s, GSM_SMSC *smsc)
{
diff --git a/libgammu/phone/at/atgen.c b/libgammu/phone/at/atgen.c
index b267204..29ee97e 100644
--- a/libgammu/phone/at/atgen.c
+++ b/libgammu/phone/at/atgen.c
@@ -39,7 +39,7 @@
#include "motorola.h"
#include "sonyericsson.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#ifdef GSM_ENABLE_ALCATEL
GSM_Error ALCATEL_ProtocolVersionReply (GSM_Protocol_Message *, GSM_StateMachine *);
@@ -1655,6 +1655,10 @@ GSM_Error ATGEN_ReplyGetUSSD(GSM_Protocol_Message *msg, GSM_StateMachine *s)
if (error != ERR_NONE) return error;
+ /* Try to parse text here, we ignore error code intentionally */
+ ussd.Text[0] = 0;
+ ussd.Text[1] = 0;
+
/* Decode status */
smprintf(s, "Status: %d\n", code);
switch(code) {
@@ -1672,18 +1676,14 @@ GSM_Error ATGEN_ReplyGetUSSD(GSM_Protocol_Message *msg, GSM_StateMachine *s)
break;
case 4:
ussd.Status = USSD_NotSupported;
- break;
+ return ERR_NETWORK_ERROR;
case 5:
ussd.Status = USSD_Timeout;
- break;
+ return ERR_TIMEOUT;
default:
ussd.Status = USSD_Unknown;
}
- /* Try to parse text here, we ignore error code intentionally */
- ussd.Text[0] = 0;
- ussd.Text[1] = 0;
-
error = ATGEN_ParseReply(s, pos,
"+CUSD: @i, @r, @i @0",
&code,
@@ -4395,10 +4395,10 @@ GSM_Error ATGEN_DialService(GSM_StateMachine *s, char *number)
len = strlen(number);
/*
- * We need to allocate twice more memory for number here, because it
- * might be encoded later.
+ * We need to allocate four times more memory for number here, because it
+ * might be encoded later to UCS2.
*/
- allocsize = 2 * (len + 1);
+ allocsize = 4 * (len + 1);
req = (char *)malloc(strlen(format) + allocsize + 1);
if (req == NULL) {
diff --git a/libgammu/phone/at/motorola.c b/libgammu/phone/at/motorola.c
index c696377..974fb38 100644
--- a/libgammu/phone/at/motorola.c
+++ b/libgammu/phone/at/motorola.c
@@ -22,7 +22,7 @@
#include "../../service/gsmpbk.h"
#include "atgen.h"
#include <string.h>
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
typedef struct {
char Command[20];
diff --git a/libgammu/phone/dummy/dummy.c b/libgammu/phone/dummy/dummy.c
index e34998e..86d8d27 100644
--- a/libgammu/phone/dummy/dummy.c
+++ b/libgammu/phone/dummy/dummy.c
@@ -44,14 +44,14 @@
#include "../../misc/misc.h"
#include "../pfunc.h"
#include "dummy.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#ifdef WIN32
#define MKDIR(dir) _mkdir(dir)
#ifndef S_ISDIR
#define S_ISDIR(mode) ((mode & _S_IFDIR) == _S_IFDIR)
#endif
-#include "../../../helper/win32-dirent.h"
+#include "../../../libgammu/misc/win32-dirent.h"
#else
#define MKDIR(dir) mkdir(dir, 0755)
#include <dirent.h>
diff --git a/libgammu/phone/dummy/dummy.h b/libgammu/phone/dummy/dummy.h
index b0c1eed..92b783e 100644
--- a/libgammu/phone/dummy/dummy.h
+++ b/libgammu/phone/dummy/dummy.h
@@ -18,7 +18,7 @@
#include <stdio.h>
#include <limits.h>
#ifdef WIN32
-#include "../../../helper/win32-dirent.h"
+#include "../../../libgammu/misc/win32-dirent.h"
#else
#include <dirent.h>
#endif
diff --git a/libgammu/phone/nokia/dct4s40/6510/6510file.c b/libgammu/phone/nokia/dct4s40/6510/6510file.c
index fa59ea5..952c69c 100644
--- a/libgammu/phone/nokia/dct4s40/6510/6510file.c
+++ b/libgammu/phone/nokia/dct4s40/6510/6510file.c
@@ -16,7 +16,7 @@
#include "../../../pfunc.h"
#include "../dct4func.h"
#include "n6510.h"
-#include "../../../../../helper/string.h"
+#include "../../../../../libgammu/misc/string.h"
/* shared */
@@ -2451,7 +2451,8 @@ GSM_Error N6510_DecodeFilesystemSMS(GSM_StateMachine *s, GSM_MultiSMSMessage *sm
}
break;
case 0x07:
- if (FFF->Buffer[pos + 2] != 1 || (FFF->Buffer[pos + 3] != 0x00F && FFF->Buffer[pos + 3] != 0x0e)) {
+ /* 07 |00 |01 |00 */
+ if (FFF->Buffer[pos + 2] != 1 || (FFF->Buffer[pos + 3] != 0x0F && FFF->Buffer[pos + 3] != 0x0e && FFF->Buffer[pos + 3] != 0x00)) {
unknown = TRUE;
}
break;
diff --git a/libgammu/phone/obex/obexgen.c b/libgammu/phone/obex/obexgen.c
index e6751ae..a9c47ad 100644
--- a/libgammu/phone/obex/obexgen.c
+++ b/libgammu/phone/obex/obexgen.c
@@ -34,7 +34,7 @@
#include "../../protocol/obex/obex.h"
#include "obexfunc.h"
#include "mobex.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#ifdef GSM_ENABLE_OBEXGEN
diff --git a/libgammu/phone/s60/s60phone.c b/libgammu/phone/s60/s60phone.c
index 24e3882..80496a3 100644
--- a/libgammu/phone/s60/s60phone.c
+++ b/libgammu/phone/s60/s60phone.c
@@ -28,7 +28,7 @@
#include "../pfunc.h"
#include <string.h>
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#if defined(GSM_ENABLE_S60)
diff --git a/libgammu/service/backup/backtext.c b/libgammu/service/backup/backtext.c
index 99d2f89..24cdd5d 100644
--- a/libgammu/service/backup/backtext.c
+++ b/libgammu/service/backup/backtext.c
@@ -18,7 +18,7 @@
#include "../../debug.h"
#include "backtext.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#ifdef GSM_ENABLE_BACKUP
diff --git a/libgammu/service/backup/gsmback.c b/libgammu/service/backup/gsmback.c
index 7c70944..f9f0145 100644
--- a/libgammu/service/backup/gsmback.c
+++ b/libgammu/service/backup/gsmback.c
@@ -19,7 +19,7 @@
#include "backics.h"
#include "backvnt.h"
-#include "../../../helper/string.h"
+#include "../../../libgammu/misc/string.h"
#ifdef GSM_ENABLE_BACKUP
diff --git a/libgammu/service/gsmcal.c b/libgammu/service/gsmcal.c
index caeedcf..550b377 100644
--- a/libgammu/service/gsmcal.c
+++ b/libgammu/service/gsmcal.c
@@ -26,7 +26,7 @@
#include "gsmcal.h"
#include "../misc/coding/coding.h"
-#include "../../helper/string.h"
+#include "../../libgammu/misc/string.h"
void GSM_SetCalendarRecurranceRepeat(GSM_Debug_Info *di, unsigned char *rec, unsigned char *endday, GSM_CalendarEntry *entry)
{
diff --git a/libgammu/service/gsmlogo.c b/libgammu/service/gsmlogo.c
index 2a292ac..93d6ed9 100644
--- a/libgammu/service/gsmlogo.c
+++ b/libgammu/service/gsmlogo.c
@@ -12,7 +12,7 @@
#include "gsmlogo.h"
#include "gsmnet.h"
-#include "../../helper/string.h"
+#include "../../libgammu/misc/string.h"
/**
* Helper define to check error code from fwrite.
diff --git a/libgammu/service/gsmmisc.c b/libgammu/service/gsmmisc.c
index a255493..56ee716 100644
--- a/libgammu/service/gsmmisc.c
+++ b/libgammu/service/gsmmisc.c
@@ -13,7 +13,7 @@
#include "../debug.h"
#include "gsmmisc.h"
-#include "../../helper/string.h"
+#include "../../libgammu/misc/string.h"
struct keys_table_position {
char whatchar;
diff --git a/locale/fi/libgammu.po b/locale/fi/libgammu.po
index 560226c..4566397 100644
--- a/locale/fi/libgammu.po
+++ b/locale/fi/libgammu.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: libgammu 1.22.93\n"
"Report-Msgid-Bugs-To: gammu-users@lists.sourceforge.net\n"
"POT-Creation-Date: 2016-10-11 08:16+0200\n"
-"PO-Revision-Date: 2016-12-27 06:07+0000\n"
-"Last-Translator: Lari Oesch <lari@oesch.me>\n"
+"PO-Revision-Date: 2017-04-27 19:31+0000\n"
+"Last-Translator: Tuomas Harju <tuomas@rtj-group.com>\n"
"Language-Team: Finnish "
"<https://hosted.weblate.org/projects/gammu/libgammu/fi/>\n"
"Language: fi\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.11-dev\n"
+"X-Generator: Weblate 2.14-dev\n"
#: libgammu/gsmcomon.c:84
msgid "No error."
@@ -60,7 +60,7 @@ msgstr "Virhe asettaessa laiteen vuonohjausta DTR tai RTS."
#: libgammu/gsmcomon.c:93
msgid "Error setting device speed. Maybe speed not supported."
-msgstr "Virheellinen nopeus. Nopeus ei ehkä ole tuettu."
+msgstr "Virhe asetettaessa nopeutta. Valittu nopeus ei ehkä ole tuettu."
#: libgammu/gsmcomon.c:94
msgid "Error writing to the device."
diff --git a/locale/fr/docs.po b/locale/fr/docs.po
index 89f9f04..5f5bc9f 100644
--- a/locale/fr/docs.po
+++ b/locale/fr/docs.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Gammu-docs 1.38.2\n"
"Report-Msgid-Bugs-To: gammu-users@lists.sourceforge.net\n"
"POT-Creation-Date: 2016-10-11 13:13+0200\n"
-"PO-Revision-Date: 2017-02-07 12:46+0000\n"
-"Last-Translator: nvallas <nordine.vallas@gmail.com>\n"
+"PO-Revision-Date: 2017-05-02 17:33+0000\n"
+"Last-Translator: Kyodev <kyodev@yandex.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/gammu/gammu-"
"docs/fr/>\n"
"Language: fr\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 2.11\n"
+"X-Generator: Weblate 2.14-dev\n"
#. type: Title =
#: README.rst:2
@@ -66,10 +66,8 @@ msgstr ".. image"
#. type: Plain text
#: README.rst:16
-#, fuzzy
-#| msgid "https://travis-ci.org/gammu/gammu.png?branch=master"
msgid "https://travis-ci.org/gammu/gammu.svg?branch=master"
-msgstr "https://travis-ci.org/gammu/gammu.png?branch=master"
+msgstr "https://travis-ci.org/gammu/gammu.svg?branch=master"
#. type: Plain text
#: README.rst:18
@@ -78,7 +76,6 @@ msgstr ":alt: Build status :target: https://travis-ci.org/gammu/gammu"
#. type: Plain text
#: README.rst:20
-#, fuzzy
msgid ""
"https://ci.appveyor.com/api/projects/status/dkm2eam66rbhhuwn/branch/master?"
"svg=true"
@@ -88,19 +85,17 @@ msgstr ""
#. type: Plain text
#: README.rst:22
-#, fuzzy
-#| msgid ":target: https://travis-ci.org/gammu/gammu"
msgid ""
":alt: Windows Build status :target: https://ci.appveyor.com/project/nijel/"
"gammu/branch/master"
-msgstr ":target: https://travis-ci.org/gammu/gammu"
+msgstr ""
+":alt: Windows Build status :target: "
+"https://ci.appveyor.com/project/nijel/gammu/branch/master"
#. type: Plain text
#: README.rst:24
-#, fuzzy
-#| msgid "https://hosted.weblate.org/widgets/gammu-status-badge.png"
msgid "https://hosted.weblate.org/widgets/gammu/-/svg-badge.svg"
-msgstr "https://hosted.weblate.org/widgets/gammu-status-badge.png"
+msgstr "https://hosted.weblate.org/widgets/gammu/-/svg-badge.svg"
#. type: Plain text
#: README.rst:26
@@ -108,20 +103,18 @@ msgid ""
":alt: Translation status :target: https://hosted.weblate.org/engage/gammu/?"
"utm_source=widget"
msgstr ""
-":alt: Translation status :target: https://hosted.weblate.org/engage/gammu/?"
-"utm_source=widget"
+":alt: État de la traduction:target: "
+"https://hosted.weblate.org/engage/gammu/?utm_source=widget"
#. type: Plain text
#: README.rst:28
msgid "https://scan.coverity.com/projects/2890/badge.svg?flat=1"
-msgstr ""
+msgstr "https://scan.coverity.com/projects/2890/badge.svg?flat=1"
#. type: Plain text
#: README.rst:30
-#, fuzzy
-#| msgid ":alt: Bitdeli badge :target: https://bitdeli.com/free"
msgid ":alt: Coverity scan :target: https://scan.coverity.com/projects/2890"
-msgstr ":alt: Bitdeli badge :target: https://bitdeli.com/free"
+msgstr ":alt: Coverity scan :target: https://scan.coverity.com/projects/2890"
#. type: Plain text
#: README.rst:32
@@ -130,10 +123,8 @@ msgstr "https://img.shields.io/gratipay/Gammu.svg"
#. type: Plain text
#: README.rst:34
-#, fuzzy
-#| msgid ":target: https://travis-ci.org/gammu/gammu"
msgid ":alt: Gratipay :target: https://gratipay.com/Gammu/"
-msgstr ":target: https://travis-ci.org/gammu/gammu"
+msgstr ":alt: Gratipay :target: https://gratipay.com/Gammu/"
#. type: Plain text
#: README.rst:36
@@ -148,19 +139,19 @@ msgid ""
":alt: Bountysource :target: https://www.bountysource.com/teams/gammu/issues?"
"utm_source=Gammu&utm_medium=shield&utm_campaign=bounties_received"
msgstr ""
-":alt: Bountysource :target: https://www.bountysource.com/teams/gammu/issues?"
+":alt: Bounty source :target: https://www.bountysource.com/teams/gammu/issues?"
"utm_source=Gammu&utm_medium=shield&utm_campaign=bounties_received"
#. type: Title =
#: README.rst:40
-#, fuzzy, no-wrap
+#, no-wrap
msgid "More information"
-msgstr "Information sur le téléphone"
+msgstr "Plus d'informations"
#. type: Plain text
#: README.rst:43
msgid "You can find more information on <https://wammu.eu/gammu/>."
-msgstr ""
+msgstr "Vous pouvez trouver plus d'informations sur <https://wammu.eu/gammu/>."
#. type: Plain text
#: README.rst:47
@@ -169,12 +160,15 @@ msgid ""
"version of it using make manual-html which is viewable online at <https://"
"wammu.eu/docs/manual/>."
msgstr ""
+"Il y a aussi un manuel Gammu disponible dans docs/manual. Vous pouvez en "
+"construire une version HTML en utilisant make manual-html, qui est "
+"consultable en ligne à <https://wammu.eu/docs/manual/>."
#. type: Title =
#: README.rst:50
#, no-wrap
msgid "Feedback and bug reports"
-msgstr ""
+msgstr "Commentaires et rapports de bugs"
#. type: Plain text
#: README.rst:54
@@ -182,23 +176,27 @@ msgid ""
"Any feedback is welcome, see <https://wammu.eu/support/> for information how "
"to contact developers."
msgstr ""
+"Tout commentaire est bienvenu, voir <https://wammu.eu/support/> pour savoir "
+"comment contacter les développeurs."
#. type: Title =
#: README.rst:57
#, no-wrap
msgid "Support developers"
-msgstr ""
+msgstr "Support des développeurs"
#. type: Plain text
#: README.rst:59
msgid "You can appreciate developers work at <https://wammu.eu/donate/>."
msgstr ""
+"Vous pouvez apprécier le travail des développeurs à "
+"<https://wammu.eu/donate/>."
#. type: Title =
#: INSTALL:2
#, no-wrap
msgid "Gammu All Mobile Management Utilities - Installation"
-msgstr "Gammu All Mobile Management Utilities - Installation"
+msgstr "Gammu All Mobile Management Utilitaires - Installation"
#. type: Plain text
#: INSTALL:5
diff --git a/locale/fr/gammu.po b/locale/fr/gammu.po
index 165902d..985cd8c 100644
--- a/locale/fr/gammu.po
+++ b/locale/fr/gammu.po
@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: gammu 1.22.93\n"
"Report-Msgid-Bugs-To: gammu-users@lists.sourceforge.net\n"
"POT-Creation-Date: 2016-10-11 08:16+0200\n"
-"PO-Revision-Date: 2016-07-20 20:51+0000\n"
-"Last-Translator: Nabil BENDAFI <nabil@bendafi.fr>\n"
+"PO-Revision-Date: 2017-05-04 08:36+0000\n"
+"Last-Translator: Kyodev <kyodev@yandex.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/gammu/gammu/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 2.8-dev\n"
+"X-Generator: Weblate 2.14-dev\n"
#: gammu/backup.c:49 gammu/backup.c:72 gammu/backup.c:95 gammu/backup.c:116
#: helper/message-cmdline.c:373 helper/message-cmdline.c:397
@@ -146,7 +146,7 @@ msgstr "Sauvegarder les notes du calendrier du téléphone ?"
#: gammu/backup.c:905 gammu/backup.c:942
#, c-format
msgid "Only part of data saved, please increase %s."
-msgstr "Les données n'ont pas pu être toutes sauvées, veuillez augmenter %s."
+msgstr "Seulement une partie des données sauvegardées, veuillez augmenter %s."
#: gammu/backup.c:450
msgid "Checking phone todos"
@@ -1146,16 +1146,12 @@ msgid "Setting done"
msgstr "Réglage fait"
#: gammu/depend/nokia/dct4.c:303
-#, fuzzy
-#| msgid ""
-#| "Sorry, but configuration matrix for this model has not yet been added. "
-#| "See <http://wammu.eu/support/bugs/> for information how to report it."
msgid ""
"Sorry, but configuration matrix for this model has not yet been added. See "
"<https://wammu.eu/support/bugs/> for information how to report it."
msgstr ""
"Désolé, la matrice de configuration pour ce modèle n'a pas encore été "
-"ajoutée. Voir <http://wammu.eu/support/bugs/> pour toute information."
+"ajoutée. Voir <https://wammu.eu/support/bugs/> pour toute information."
#: gammu/depend/nokia/dct4.c:369
msgid "Passed"
@@ -1220,7 +1216,7 @@ msgstr "simlock ancien"
#: gammu/depend/nokia/dct4.c:845
msgid "Simlock data"
-msgstr "données Simlock"
+msgstr "données de Simlock"
#: gammu/depend/nokia/dct4.c:872
msgid "Bluetooth"
@@ -1319,9 +1315,8 @@ msgid "VCXO temperature:"
msgstr "Température du VCXO : "
#: gammu/depend/nokia/dct4.c:1048
-#, fuzzy
msgid "Resistive keyboard 1/headint2:"
-msgstr "clavier résistif 1/casque 2 :"
+msgstr "Clavier résistif 1 / headint2 :"
#: gammu/depend/nokia/dct4.c:1049
msgid "Resistive keyboard 1/auxdet:"
@@ -1549,14 +1544,10 @@ msgid "Windows serial port probing"
msgstr "Interrogation du port série Windows"
#: gammu-detect/main.c:85
-#, fuzzy
-#| msgid ""
-#| "Copyright (C) 2010 - 2011 Michal Cihar <michal@cihar.com> and other "
-#| "authors."
msgid ""
"Copyright (C) 2010 - 2017 Michal Cihar <michal@cihar.com> and other authors."
msgstr ""
-"Tous Droits reservés (C) 2010 - 2011 à Michal Cihar <michal@cihar.com> et "
+"Tous Droits reservés (C) 2010 - 2017 à Michal Cihar <michal@cihar.com> et "
"d'autres auteurs."
#: gammu-detect/main.c:87 gammu/gammu.c:336
@@ -1577,10 +1568,8 @@ msgstr ""
"Aucune garantie n'est fournie, dans la mesure de ce que la loi autorise."
#: gammu-detect/main.c:91 gammu/gammu.c:344
-#, fuzzy
-#| msgid "Check <http://wammu.eu/gammu/> for updates."
msgid "Check <https://wammu.eu/gammu/> for updates."
-msgstr "Recherchez des mises à jour sur <http://wammu.eu/gammu/> ."
+msgstr "Recherchez des mises à jour sur <https://wammu.eu/gammu/> ."
#: gammu-detect/main.c:100
msgid "Configuration file generated by gammu-detect."
@@ -1646,20 +1635,18 @@ msgid "Phone memory"
msgstr "Mémoire du téléphone"
#: gammu/files.c:49
-#, fuzzy, c-format
-#| msgid "%i bytes (free %i bytes, used %i bytes)"
+#, c-format
msgid "%ld bytes (free %ld bytes, used %ld bytes)"
-msgstr "%i octets (%i octets libres, %i octets utilisés)"
+msgstr "%l octets (%l octets libres, %l octets utilisés)"
#: gammu/files.c:55
msgid "Usage details"
msgstr "Détails d'utilisation"
#: gammu/files.c:56
-#, fuzzy, c-format
-#| msgid "images: %i, sounds: %i, themes: %i"
+#, c-format
msgid "images: %ld, sounds: %ld, themes: %ld"
-msgstr "images : %i, sons : %i, thèmes : %i"
+msgstr "images : %ld, sons : %ld, thèmes : %ld"
#. l10n: One char to indicate protected file
#: gammu/files.c:119 gammu/files.c:208 gammu/files.c:329
@@ -1823,10 +1810,6 @@ msgid "There is newer testing Gammu version available! (%s instead of %s)\n"
msgstr "Il une nouvelle version de test est disponible ! (%s au lieu de %s)\n"
#: gammu/gammu.c:332
-#, fuzzy
-#| msgid ""
-#| "Copyright (C) 2003 - 2017 Michal Cihar <michal@cihar.com> and other "
-#| "authors."
msgid ""
"Copyright (C) 2003 - 2017 Michal Cihar <michal@cihar.com> and other authors."
msgstr ""
@@ -1952,9 +1935,8 @@ msgid "Phone settings"
msgstr "Réglages du téléphone"
#: gammu/gammu.c:772
-#, fuzzy
msgid "Dumps decoding"
-msgstr "Décodeur de tendance"
+msgstr "Décodage des dumps"
#: gammu/gammu.c:774
msgid "Functions that don't fit elsewhere"
@@ -2505,12 +2487,12 @@ msgstr "SIM IMSI"
#: gammu/misc.c:420
msgid "Call info"
-msgstr ""
+msgstr "Appel info"
#: gammu/misc.c:423
#, c-format
msgid "ID %i, "
-msgstr ""
+msgstr "ID %i, "
#: gammu/misc.c:426
#, c-format
@@ -2524,36 +2506,36 @@ msgstr "appel sortant vers \"%s\"\n"
#: gammu/misc.c:428
msgid "call started"
-msgstr ""
+msgstr "appel commencé"
#: gammu/misc.c:429
msgid "end of call (unknown side)"
-msgstr ""
+msgstr "fin de l'appel (côté inconnu)"
#: gammu/misc.c:430
msgid "call end from our side"
-msgstr ""
+msgstr "fin d'appel de notre côté"
#: gammu/misc.c:431
#, c-format
msgid "call end from remote side (code %i)\n"
-msgstr ""
+msgstr "fin d'appel du côté distant (code %i)\n"
#: gammu/misc.c:432
msgid "call established. Waiting for answer"
-msgstr ""
+msgstr "appel établi. En attente de réponse"
#: gammu/misc.c:433
msgid "call held"
-msgstr ""
+msgstr "appel en suspend"
#: gammu/misc.c:434
msgid "call resumed"
-msgstr ""
+msgstr "appel repris"
#: gammu/misc.c:435
msgid "call switched"
-msgstr ""
+msgstr "appel commuté"
#: gammu/misc.c:442
#, c-format
@@ -2567,7 +2549,7 @@ msgstr "%3d libre"
#: gammu/misc.c:480
msgid "Entering monitor mode..."
-msgstr ""
+msgstr "Passage en mode monitor..."
#: gammu/misc.c:490
msgid "Enabling info about incoming SMS"
@@ -2575,7 +2557,7 @@ msgstr "Activation infos SMS entrant"
#: gammu/misc.c:492
msgid "Enabling info about incoming CB"
-msgstr ""
+msgstr "Activation d’info sur CB entrant"
#: gammu/misc.c:494
msgid "Enabling info about calls"
@@ -2604,7 +2586,7 @@ msgstr "%i dBm"
#: gammu/misc.c:531
msgid "Network level"
-msgstr ""
+msgstr "Niveau du réseau"
#: gammu/misc.c:536
msgid "Bit error rate"
@@ -2612,7 +2594,7 @@ msgstr "Taux d'erreur"
#: gammu/misc.c:544
msgid "SIM SMS status"
-msgstr ""
+msgstr "SIM SMS statut"
#: gammu/misc.c:545 gammu/misc.c:555
#, c-format
@@ -2627,36 +2609,36 @@ msgstr "%i non lu"
#: gammu/misc.c:549 gammu/misc.c:559
#, c-format
msgid "%i locations"
-msgstr ""
+msgstr "%i emplacements"
#: gammu/misc.c:554
msgid "Phone SMS status"
-msgstr ""
+msgstr "État SMS du téléphone"
#: gammu/misc.c:562
#, c-format
msgid "%i templates"
-msgstr ""
+msgstr "%i modèles"
#: gammu/misc.c:575
msgid "Leaving monitor mode..."
-msgstr ""
+msgstr "Quitter le mode moniteur..."
#: gammu/misc.c:603
msgid "Smart Messaging"
-msgstr ""
+msgstr "Smart Messagerie"
#: gammu/misc.c:604
msgid "Nokia binary"
-msgstr ""
+msgstr "Binaire Nokia"
#: gammu/misc.c:605
msgid "MIDI"
-msgstr ""
+msgstr "MIDI"
#: gammu/misc.c:606
msgid "SMAF (MMF)"
-msgstr ""
+msgstr "SMAF (MMF)"
#: gammu/misc.c:608
#, c-format
@@ -2666,7 +2648,7 @@ msgstr " format, sonnerie \"%s\"\n"
#: gammu/misc.c:822
#, c-format
msgid "What type of reset do you want (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel type de réinitialisation voulez-vous (\"%s\") ?\n"
#: gammu/misc.c:849 gammu/misc.c:896 helper/memory-display.c:181
#: helper/message-display.c:478
@@ -2676,29 +2658,29 @@ msgstr "Adresse"
#: gammu/misc.c:891
#, c-format
msgid "%i. Access point %i"
-msgstr ""
+msgstr "%i. Point d'accès %i"
#: gammu/misc.c:893 gammu/misc.c:1411 gammu/misc.c:1418 gammu/misc.c:1453
#: gammu/misc.c:1466 gammu/misc.c:1505 gammu/misc.c:1554 gammu/misc.c:1956
msgid " (active)"
-msgstr ""
+msgstr " (actif)"
#: gammu/misc.c:922 gammu/misc.c:1078
msgid "Maximal location for caller logo can be 5"
-msgstr ""
+msgstr "Location maximale pour le logo de l’appelant peut être 5"
#: gammu/misc.c:935
#, c-format
msgid "What type of logo do you want to get (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel type de logo voulez vous obtenir (« %s ») ?\n"
#: gammu/misc.c:951
msgid "Group name"
-msgstr ""
+msgstr "Nom du groupe"
#: gammu/misc.c:952 gammu/misc.c:955
msgid "default"
-msgstr ""
+msgstr "par défaut"
#: gammu/misc.c:955 gammu/misc.c:957 gammu/misc.c:970 gammu/misc.c:977
#: helper/memory-display.c:104
@@ -2708,27 +2690,27 @@ msgstr "Sonnerie"
#: gammu/misc.c:971
#, c-format
msgid "(file with ID %i)\n"
-msgstr ""
+msgstr "(fichier avec ID %i)\n"
#. l10n: Ringtone name and ID format
#: gammu/misc.c:981 gammu/misc.c:1975
#, c-format
msgid "\"%s\" (ID %i)\n"
-msgstr ""
+msgstr "\"%s\" (ID %i)\n"
#. l10n: Ringtone ID format
#: gammu/misc.c:984 gammu/misc.c:1978
#, c-format
msgid "ID %i\n"
-msgstr ""
+msgstr "ID %i\n"
#: gammu/misc.c:990 gammu/misc.c:992
msgid "Bitmap"
-msgstr ""
+msgstr "Bitmap"
#: gammu/misc.c:990 gammu/misc.c:1513 gammu/misc.c:1516 gammu/mms.c:102
msgid "enabled"
-msgstr ""
+msgstr "activé"
#: gammu/misc.c:992 gammu/misc.c:1514 gammu/misc.c:1517 gammu/mms.c:104
msgid "disabled"
@@ -2736,11 +2718,11 @@ msgstr "désactivé"
#: gammu/misc.c:995
msgid "Bitmap ID"
-msgstr ""
+msgstr "Bitmap ID"
#: gammu/misc.c:1008
msgid "No operator logo in phone"
-msgstr ""
+msgstr "Pas de logo de l'opérateur dans le téléphone"
#: gammu/misc.c:1014 gammu/mms.c:71 helper/message-display.c:476
msgid "Sender"
@@ -2749,17 +2731,17 @@ msgstr "Expediteur"
#: gammu/misc.c:1020
#, c-format
msgid "Welcome note text is \"%s\"\n"
-msgstr ""
+msgstr "Le texte de la note de bienvenue est « %s »\n"
#: gammu/misc.c:1023
#, c-format
msgid "Dealer note text is \"%s\"\n"
-msgstr ""
+msgstr "Le texte de la note du marchand est « %s »\n"
#: gammu/misc.c:1161
#, c-format
msgid "What type of logo do you want to set (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel type de logo vous voulez définir (« %s ») ?\n"
#: gammu/misc.c:1198
#, c-format
@@ -2768,7 +2750,7 @@ msgstr "Paramètre inconnu (%s)"
#: gammu/misc.c:1279
msgid "Delete phone phonebook?"
-msgstr ""
+msgstr "Supprimer le répertoire de téléphone ?"
#: gammu/misc.c:1280
msgid "Delete SIM phonebook?"
@@ -2780,31 +2762,31 @@ msgstr "Effacer appels manqués ?"
#: gammu/misc.c:1282
msgid "Delete dialled calls?"
-msgstr ""
+msgstr "Supprimer les appels composés ?"
#: gammu/misc.c:1283
msgid "Delete received calls?"
-msgstr ""
+msgstr "Supprimer les appels reçus ?"
#: gammu/misc.c:1288
msgid "Delete phone calendar notes?"
-msgstr ""
+msgstr "Supprimer les notes de calendrier du téléphone ?"
#: gammu/misc.c:1312
msgid "Delete phone todos?"
-msgstr ""
+msgstr "Supprimer les tâches du téléphone ?"
#: gammu/misc.c:1336
msgid "Delete phone notes?"
-msgstr ""
+msgstr "Supprimer les notes du téléphone ?"
#: gammu/misc.c:1354
msgid "Delete phone WAP bookmarks?"
-msgstr ""
+msgstr "Supprimer les favoris WAP du téléphone ?"
#: gammu/misc.c:1381
msgid "Delete all phone FM radio stations?"
-msgstr ""
+msgstr "Supprimer toutes les stations de radio FM du téléphone ?"
#: gammu/misc.c:1393 gammu/misc.c:1395
msgid "Connection type"
@@ -2812,72 +2794,72 @@ msgstr "Type de connexion"
#: gammu/misc.c:1393
msgid "Continuous"
-msgstr ""
+msgstr "Continu"
#: gammu/misc.c:1395
msgid "Temporary"
-msgstr ""
+msgstr "Temporaire"
#: gammu/misc.c:1398 gammu/misc.c:1400
msgid "Connection security"
-msgstr ""
+msgstr "Sécurité de connexion"
#: gammu/misc.c:1398 gammu/misc.c:2052
msgid "On"
-msgstr ""
+msgstr "Allumer"
#: gammu/misc.c:1400 gammu/misc.c:2038
msgid "Off"
-msgstr ""
+msgstr "Éteindre"
#: gammu/misc.c:1402
msgid "Proxy"
-msgstr ""
+msgstr "Proxy"
#: gammu/misc.c:1403 gammu/misc.c:1406
#, c-format
msgid "address \"%s\", port %i"
-msgstr ""
+msgstr "adresse \"%s\", port %i"
#: gammu/misc.c:1405
msgid "Second proxy"
-msgstr ""
+msgstr "Proxy secondaire"
#: gammu/misc.c:1410 gammu/misc.c:1417 gammu/misc.c:1452 gammu/misc.c:1465
msgid "Bearer"
-msgstr ""
+msgstr "Titulaire"
#: gammu/misc.c:1410
msgid "SMS"
-msgstr ""
+msgstr "SMS"
#: gammu/misc.c:1413
msgid "Server number"
-msgstr ""
+msgstr "Numéro de serveur"
#: gammu/misc.c:1414 gammu/misc.c:1460 gammu/misc.c:1461
msgid "Service number"
-msgstr ""
+msgstr "Numéro de service"
#: gammu/misc.c:1417
msgid "Data (CSD)"
-msgstr ""
+msgstr "Données (CSD)"
#: gammu/misc.c:1420
msgid "Dial-up number"
-msgstr ""
+msgstr "Numéro à composer"
#: gammu/misc.c:1421 gammu/misc.c:1457 gammu/misc.c:1458 gammu/misc.c:1479
msgid "IP address"
-msgstr ""
+msgstr "Adresse IP"
#: gammu/misc.c:1423 gammu/misc.c:1425 gammu/misc.c:1469 gammu/misc.c:1471
msgid "Login type"
-msgstr ""
+msgstr "Type de connexion"
#: gammu/misc.c:1423 gammu/misc.c:1469
msgid "Manual"
-msgstr ""
+msgstr "Manuel"
#: gammu/misc.c:1425 gammu/misc.c:1471
msgid "Automatic"
@@ -2885,7 +2867,7 @@ msgstr "Automatique"
#: gammu/misc.c:1428 gammu/misc.c:1430 gammu/misc.c:1474 gammu/misc.c:1476
msgid "Authentication type"
-msgstr ""
+msgstr "Type d’authentification"
#: gammu/misc.c:1428 gammu/misc.c:1474
msgid "Normal"
@@ -2893,31 +2875,31 @@ msgstr "Normal"
#: gammu/misc.c:1430 gammu/misc.c:1476
msgid "Secure"
-msgstr ""
+msgstr "Sûr"
#: gammu/misc.c:1433 gammu/misc.c:1435
msgid "Data call type"
-msgstr ""
+msgstr "Type d’appel données"
#: gammu/misc.c:1433
msgid "ISDN"
-msgstr ""
+msgstr "RNIS"
#: gammu/misc.c:1435
msgid "Analogue"
-msgstr ""
+msgstr "Analogique"
#: gammu/misc.c:1439 gammu/misc.c:1442 gammu/misc.c:1445
msgid "Data call speed"
-msgstr ""
+msgstr "Vitesse d’appel données"
#: gammu/misc.c:1445 gammu/misc.c:2054
msgid "Auto"
-msgstr ""
+msgstr "Automatique"
#: gammu/misc.c:1448 gammu/misc.c:1480
msgid "User name"
-msgstr ""
+msgstr "Nom d'utilisateur"
#: gammu/misc.c:1449 gammu/misc.c:1481 gammu/misc.c:1508 gammu/misc.c:1558
msgid "Password"
@@ -2925,37 +2907,37 @@ msgstr "Mot de passe"
#: gammu/misc.c:1452
msgid "USSD"
-msgstr ""
+msgstr "USSD"
#: gammu/misc.c:1455
msgid "Service code"
-msgstr ""
+msgstr "Code de service"
#: gammu/misc.c:1457 gammu/misc.c:1460
msgid "Address type"
-msgstr ""
+msgstr "Type d'adresse"
#: gammu/misc.c:1478
msgid "Access point"
-msgstr ""
+msgstr "Point d'accès"
#: gammu/misc.c:1501 gammu/misc.c:1522 gammu/misc.c:1550 gammu/misc.c:1563
#: gammu/misc.c:1595
#, c-format
msgid "Set %i"
-msgstr ""
+msgstr "Définir %i"
#: gammu/misc.c:1507 gammu/misc.c:1557
msgid "User"
-msgstr ""
+msgstr "Utilisateur"
#: gammu/misc.c:1509
msgid "Phonebook database"
-msgstr ""
+msgstr "Base de données du répertoire téléphonique"
#: gammu/misc.c:1510
msgid "Calendar database"
-msgstr ""
+msgstr "Base de données du calendrier"
#: gammu/misc.c:1511
msgid "Server"
@@ -2963,15 +2945,15 @@ msgstr "Serveur"
#: gammu/misc.c:1512
msgid "Sync. phonebook"
-msgstr ""
+msgstr "Synchronisation du répertoire du téléphone"
#: gammu/misc.c:1515
msgid "Sync. calendar"
-msgstr ""
+msgstr "Synchronisation du calendrier"
#: gammu/misc.c:1520 gammu/misc.c:1561
msgid "Connection set name"
-msgstr ""
+msgstr "Nom du jeu de connexions"
#: gammu/misc.c:1556 gammu/misc.c:1606
msgid "Homepage"
@@ -2979,27 +2961,27 @@ msgstr "Page d'accueil"
#: gammu/misc.c:1600
msgid "active"
-msgstr ""
+msgstr "actif"
#: gammu/misc.c:1604
msgid "Read only"
-msgstr ""
+msgstr "Lecture seule"
#: gammu/misc.c:1629
msgid "Startup logo"
-msgstr ""
+msgstr "Logo du démarrage"
#: gammu/misc.c:1630
msgid "Operator logo"
-msgstr ""
+msgstr "Logo de l'opérateur"
#: gammu/misc.c:1631 helper/message-display.c:443
msgid "Picture"
-msgstr ""
+msgstr "Photo"
#: gammu/misc.c:1632
msgid "Caller group logo"
-msgstr ""
+msgstr "Logo du groupe appelant"
#: gammu/misc.c:1635
#, c-format
@@ -3009,46 +2991,46 @@ msgstr ", largeur %i, hauteur %i\n"
#: gammu/misc.c:1652
#, c-format
msgid "What format of output file logo (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel format du fichier de logo sortant (\"%s\") ?\n"
#: gammu/misc.c:1677
#, c-format
msgid "What format of output ringtone file (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel est le format du fichier de sonnerie sortante (« %s ») ?\n"
#: gammu/misc.c:1699
-#, fuzzy, c-format
+#, c-format
msgid "What type of power do you want (\"%s\") ?\n"
-msgstr "Que dois -je faire (\"%s\") ?\n"
+msgstr "Quel type de puissance voulez-vous (\"%s\")?\n"
#: gammu/misc.c:1719
#, c-format
msgid "Unknown key/function name: \"%c\"\n"
-msgstr ""
+msgstr "Nom de la clé/fonction inconnu : \"%c\"\n"
#: gammu/misc.c:1749 gammu/misc.c:1787
#, c-format
msgid "What type of categories do you want to get (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel type de catégories voulez vous obtenir (\"%s\") ?\n"
#: gammu/misc.c:1825
#, c-format
msgid "What type of category do you want to add (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel type de catégorie vous voulez ajouter (\"%s\") ?\n"
#: gammu/misc.c:1833
#, c-format
msgid "Text too long, truncating to %d chars!\n"
-msgstr ""
+msgstr "Texte trop long, tronquer à %d caractères !\n"
#: gammu/misc.c:1872
msgid "Invalid security code type"
-msgstr ""
+msgstr "Type de code de sécurité invalide"
#: gammu/misc.c:1877
#, c-format
msgid "Enter %s code: "
-msgstr ""
+msgstr "Entrez le code de %s : "
#: gammu/misc.c:1889 gammu/misc.c:1911
msgid "No PIN code entered!"
@@ -3065,115 +3047,115 @@ msgstr " (Nom par défaut)"
#: gammu/misc.c:1958
msgid " (Head set profile)"
-msgstr ""
+msgstr " (Profil des écouteurs)"
#: gammu/misc.c:1959
msgid " (Car kit profile)"
-msgstr ""
+msgstr " (Profil du kit voiture)"
#: gammu/misc.c:1968 helper/memory-display.c:109
msgid "Ringtone ID"
-msgstr ""
+msgstr "Sonnerie ID"
#: gammu/misc.c:1970
msgid "Message alert tone ID"
-msgstr ""
+msgstr "ID tonalité d’alerte de message"
#: gammu/misc.c:1983
msgid "Call alert for"
-msgstr ""
+msgstr "Alerte d'appel pour"
#: gammu/misc.c:2004
msgid "Screen saver number"
-msgstr ""
+msgstr "Numéro d'écran de veille"
#: gammu/misc.c:2007
msgid "Incoming call alert"
-msgstr ""
+msgstr "Alerte d'appel entrant"
#: gammu/misc.c:2008
msgid "Ringtone volume"
-msgstr ""
+msgstr "Volume de la sonnerie"
#: gammu/misc.c:2009
msgid "Vibrating alert"
-msgstr ""
+msgstr "Alerte vibrante"
#: gammu/misc.c:2010
msgid "Message alert tone"
-msgstr ""
+msgstr "Tonalité d’alerte message"
#: gammu/misc.c:2011
msgid "Keypad tones"
-msgstr ""
+msgstr "Bips touches"
#: gammu/misc.c:2012
msgid "Warning (games) tones"
-msgstr ""
+msgstr "Tonalités d’avertissement (jeux)"
#: gammu/misc.c:2013 helper/message-display.c:439
msgid "Screen saver"
-msgstr ""
+msgstr "Économiseur d’écran"
#: gammu/misc.c:2014
msgid "Screen saver timeout"
-msgstr ""
+msgstr "Délai d'attente de l'écran de veille"
#: gammu/misc.c:2015
msgid "Automatic answer"
-msgstr ""
+msgstr "Réponse automatique"
#: gammu/misc.c:2016
msgid "Lights"
-msgstr ""
+msgstr "Lumières"
#: gammu/misc.c:2024
msgid "Level 1"
-msgstr ""
+msgstr "Niveau 1"
#: gammu/misc.c:2026
msgid "Level 2"
-msgstr ""
+msgstr "Niveau 2"
#: gammu/misc.c:2028
msgid "Level 3"
-msgstr ""
+msgstr "Niveau 3"
#: gammu/misc.c:2029
msgid "Level 4"
-msgstr ""
+msgstr "Niveau 4"
#: gammu/misc.c:2030
msgid "Level 5"
-msgstr ""
+msgstr "Niveau 5"
#: gammu/misc.c:2039
msgid "Ringing"
-msgstr ""
+msgstr "Sonnerie"
#: gammu/misc.c:2041
msgid "Beep once"
-msgstr ""
+msgstr "Bip une fois"
#: gammu/misc.c:2042
msgid "Ring once"
-msgstr ""
+msgstr "Sonne une fois"
#: gammu/misc.c:2043 gammu/misc.c:2047
msgid "Ascending"
-msgstr ""
+msgstr "Ascendant"
#: gammu/misc.c:2044
msgid "Caller groups"
-msgstr ""
+msgstr "Groupes d'appel"
#: gammu/misc.c:2045
msgid "Standard"
-msgstr ""
+msgstr "Standard"
#: gammu/misc.c:2046
msgid "Special"
-msgstr ""
+msgstr "Spécial"
#: gammu/misc.c:2048
msgid "Personal"
@@ -3181,174 +3163,177 @@ msgstr "Personnel"
#: gammu/misc.c:2053
msgid "Vibrate first"
-msgstr ""
+msgstr "Vibrer en premier"
#: gammu/misc.c:2090
msgid " speed dial not assigned"
-msgstr ""
+msgstr " vitesse de composition non assignée"
#: gammu/misc.c:2122
#, c-format
msgid "What type of reset phone settings (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel type de paramètres de réinitialisation téléphone (\"%s\") ?\n"
#: gammu/misc.c:2156
msgid "Currently shown on the display"
-msgstr ""
+msgstr "Actuellement affiché sur l'écran"
#: gammu/misc.c:2161
msgid "Call active"
-msgstr ""
+msgstr "Appel actif"
#: gammu/misc.c:2164
msgid "Unread SMS"
-msgstr ""
+msgstr "SMS non lus"
#: gammu/misc.c:2167
msgid "Voice call"
-msgstr ""
+msgstr "Appel vocal"
#: gammu/misc.c:2170
msgid "Fax call"
-msgstr ""
+msgstr "Appel de télécopie"
#: gammu/misc.c:2173
msgid "Data call"
-msgstr ""
+msgstr "Appel données"
#: gammu/misc.c:2176
msgid "Keypad locked"
-msgstr ""
+msgstr "Clavier verrouillé"
#: gammu/misc.c:2179
msgid "SMS memory full"
-msgstr ""
+msgstr "Mémoire SMS pleine"
#: gammu/misc.c:2217
msgid "Station name"
-msgstr ""
+msgstr "Nom de la station"
#: gammu/misc.c:2218
msgid "Frequency"
-msgstr ""
+msgstr "Fréquence"
#: gammu/misc.c:2240
#, c-format
msgid "Unknown divert action (\"%s\")\n"
-msgstr ""
+msgstr "Action de renvoi inconnu (\"%s\")\n"
#: gammu/misc.c:2253
#, c-format
msgid "Unknown divert type (\"%s\")\n"
-msgstr ""
+msgstr "Type de renvoi inconnu (\"%s\")\n"
#: gammu/misc.c:2266
#, c-format
msgid "Unknown call type (\"%s\")\n"
-msgstr ""
+msgstr "Type d’appel inconnu (\"%s\")\n"
#: gammu/misc.c:2275
msgid "Query:"
-msgstr ""
+msgstr "Requête :"
#: gammu/misc.c:2291
msgid "Changed:"
-msgstr ""
+msgstr "Modifié :"
#: gammu/misc.c:2294 gammu/misc.c:2341
msgid "Divert type"
-msgstr ""
+msgstr "Type de renvoi"
#: gammu/misc.c:2298 gammu/misc.c:2345
msgid "when busy"
-msgstr ""
+msgstr "si occupé"
#: gammu/misc.c:2301 gammu/misc.c:2348
msgid "when not answered"
-msgstr ""
+msgstr "si pas de réponse"
#: gammu/misc.c:2304 gammu/misc.c:2351
msgid "when phone off or no coverage"
-msgstr ""
+msgstr "si téléphone éteint ou hors couverture"
#: gammu/misc.c:2307 gammu/misc.c:2354
msgid "all types of diverts"
-msgstr ""
+msgstr "tous les types de renvois"
#: gammu/misc.c:2310 gammu/misc.c:2330 gammu/misc.c:2357 gammu/misc.c:2373
#, c-format
msgid "unknown %i"
-msgstr ""
+msgstr "inconnu %i"
#: gammu/misc.c:2315 gammu/misc.c:2361
msgid "Call type"
-msgstr ""
+msgstr "Type d'appel"
#: gammu/misc.c:2318 gammu/misc.c:2364
msgid "voice"
-msgstr ""
+msgstr "voix"
#: gammu/misc.c:2321 gammu/misc.c:2367 helper/message-display.c:115
msgid "fax"
-msgstr ""
+msgstr "télécopie"
#: gammu/misc.c:2324 gammu/misc.c:2370
msgid "data"
-msgstr ""
+msgstr "données"
#: gammu/misc.c:2327
msgid "data & fax & voice"
-msgstr ""
+msgstr "données & télécopie & voix"
#: gammu/misc.c:2336
msgid "Response:"
-msgstr ""
+msgstr "Réponse :"
#: gammu/misc.c:2416
msgid "The application has been successfully sent to the phone."
-msgstr ""
+msgstr "L'application a été envoyée avec succès au téléphone."
#: gammu/misc.c:2417
msgid "Please find received files in Inbox and install them."
msgstr ""
+"Veuillez trouver les fichiers reçus dans la boîte de réception et les "
+"installer."
#: gammu/mms.c:49
msgid "Do you want to save this MMS file?"
-msgstr ""
+msgstr "Voulez-vous enregistrer ce fichier MMS ?"
#: gammu/mms.c:53 gammu/mms.c:134
#, c-format
msgid "Error while saving to file %s!\n"
-msgstr ""
+msgstr "Erreur lors de l'enregistrement dans le fichier %s!\n"
#: gammu/mms.c:55 gammu/mms.c:136
#, c-format
msgid "Saved to file %s\n"
-msgstr ""
+msgstr "Enregistré dans le fichier %s\n"
#: gammu/mms.c:65
msgid "Some MMS file features unknown for Gammu decoder"
msgstr ""
+"Certaines fonctionnalités de fichiers MMS inconnues pour le décodeur Gammu"
#: gammu/mms.c:73 gammu/mms.c:81 gammu/mms.c:89
msgid "phone "
-msgstr ""
+msgstr "téléphone "
#: gammu/mms.c:79
msgid "Recipient"
-msgstr ""
+msgstr "Destinataire"
#: gammu/mms.c:87
msgid "CC"
-msgstr ""
+msgstr "CC"
#: gammu/mms.c:94
msgid "Message type"
-msgstr ""
+msgstr "Type de message"
#: gammu/mms.c:97 helper/message-display.c:477
msgid "Subject"
-msgstr ""
+msgstr "Objet"
#: gammu/mms.c:100
msgid "Delivery report"
@@ -3356,84 +3341,89 @@ msgstr "Compte rendu de livraison"
#: gammu/mms.c:107 gammu/mms.c:110
msgid "Content type"
-msgstr ""
+msgstr "Type de contenu"
#: gammu/mms.c:114
#, c-format
msgid " (%s in SMIL)"
-msgstr ""
+msgstr " (%s dans SMIL)"
#: gammu/mms.c:130
msgid "Do you want to save this attachment?"
-msgstr ""
+msgstr "Vous voulez enregistrer cette pièce jointe ?"
#: gammu/mms.c:171
#, c-format
msgid "Folder %s\n"
-msgstr ""
+msgstr "Dossier %s\n"
#: gammu/mms.c:172
msgid " File filesystem ID"
-msgstr ""
+msgstr " ID du système de fichiers du fichier"
#: gammu/nokia.c:43
msgid "It can be RTTL ringtone only used with this option"
msgstr ""
+"Il ne peut être utilisé seulement qu'une sonnerie RTTL avec cette option"
#: gammu/nokia.c:54
#, c-format
msgid "Ringtone \"%s\" (tempo = %i Beats Per Minute)"
-msgstr ""
+msgstr "Sonnerie \"%s\" (tempo = %i Battement Par Minute)"
#: gammu/nokia.c:63
#, c-format
msgid "length=%i notes, but you will enter only first 50 tones."
msgstr ""
+"longueur=%i notes, mais vous entrerez seulement les 50 premières tonalités."
#: gammu/nokia.c:66
msgid "This ringtone in Nokia Composer in phone should look:"
msgstr ""
+"Cette sonnerie dans Nokia Composer devrait ressembler dans le téléphone à :"
#: gammu/nokia.c:107
msgid "To enter it please press:"
-msgstr ""
+msgstr "Pour entrer veuillez appuyez sur :"
#: gammu/nokia.c:126
msgid "(longer)"
-msgstr ""
+msgstr "(plus long)"
#: gammu/nokia.c:254
#, c-format
msgid "Checking %s\n"
-msgstr ""
+msgstr "Vérification de %s\n"
#: gammu/nokia.c:259
msgid " Only part handled!"
-msgstr ""
+msgstr " Seule partie traitée !"
#: gammu/nokia.c:342
msgid " Problem with adding playlist"
-msgstr ""
+msgstr " Problème avec l’ajout de la playliste"
#: gammu/nokia.c:389
#, c-format
msgid "Writing file %s:"
-msgstr ""
+msgstr "Écriture du fichier %s :"
#: gammu/nokia.c:442
msgid ""
"Your phone model is not supported. Please report it to authors (see <https://"
"wammu.eu/support/bugs/>). Thank you."
msgstr ""
+"Le modèle de votre téléphone n’est pas pris en charge. Veuillez le signaler "
+"aux auteurs (voir <https://wammu.eu/support/bugs/>). Merci."
#: gammu/nokia.c:458
msgid "Problem with deleting playlist"
-msgstr ""
+msgstr "Problème avec la suppression de la playliste"
#: gammu/nokia.c:554
#, c-format
msgid "What folder type (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel type de dossier (\"%s\") ?\n"
#: gammu/nokia.c:562 gammu/nokia.c:569 gammu/nokia.c:576
#, c-format
@@ -3442,11 +3432,11 @@ msgstr "Impossible d'ouvrir le fichier %s\n"
#: gammu/nokia.c:597 gammu/nokia.c:671
msgid "Folder not found. Probably function not supported!"
-msgstr ""
+msgstr "Dossier non trouvé. Probablement fonction non prise en charge !"
#: gammu/nokia.c:620
msgid "Searching for phone folder: "
-msgstr ""
+msgstr "Recherche du dossier de téléphone : "
#: gammu/nokia.c:697
msgid "No vendor info in JAD file!"
@@ -3458,60 +3448,61 @@ msgstr "Pas d'infos de nom dans le fichier JAD !"
#: gammu/nokia.c:707
msgid "No JAR URL info in JAD file!"
-msgstr ""
+msgstr "Aucune info JAR URL dans le fichier JAD !"
#: gammu/nokia.c:713
msgid "Declared JAR file size is different than real. Fixed by Gammu."
msgstr ""
+"Taille de fichier JAR déclarée différente de la réelle. Corrigé par Gammu."
#: gammu/nokia.c:737
msgid "No JAR size info in JAD file. Added by Gammu."
-msgstr ""
+msgstr "Aucune info de taille de fichier JAR. Ajouté par Gammu."
#: gammu/nokia.c:746
#, c-format
msgid "Adding \"%s\""
-msgstr ""
+msgstr "Ajout de \"%s\""
#: gammu/nokia.c:747
#, c-format
msgid " version %s"
-msgstr ""
+msgstr " version %s"
#: gammu/nokia.c:748
#, c-format
msgid " created by %s\n"
-msgstr ""
+msgstr " créé par %s\n"
#: gammu/nokia.c:799 gammu/nokia.c:851
msgid "Application already exists. Deleting by Gammu."
-msgstr ""
+msgstr "Application déjà existe. Suppression par Gammu."
#: gammu/nokia.c:832 gammu/nokia.c:865
#, c-format
msgid " Deleting %s\n"
-msgstr ""
+msgstr " Suppression de %s\n"
#: gammu/nokia.c:888
msgid "Writing JAD file:"
-msgstr ""
+msgstr "Écriture du fichier JAD :"
#: gammu/nokia.c:907
msgid "Writing JAR file:"
-msgstr ""
+msgstr "Écriture du fichier JAR :"
#: gammu/nokia.c:982
msgid "Writing file:"
-msgstr ""
+msgstr "Écriture du fichier :"
#: gammu/search.c:145
#, c-format
msgid "Connection \"%s\" on device \"%s\"\n"
-msgstr ""
+msgstr "Connexion \"%s\" sur le périphérique \"%s\"\n"
#: gammu/search.c:182 gammu/search.c:189
msgid "Error creating thread\n"
-msgstr ""
+msgstr "Erreur de création du fil\n"
#: helper/cmdline.c:26
#, c-format
@@ -3521,104 +3512,106 @@ msgstr "Nombre en dehors de la plage: %s\n"
#: helper/cmdline.c:31
#, c-format
msgid "Parameter is not a number: %s\n"
-msgstr ""
+msgstr "Paramètre n’est pas un nombre : %s\n"
#: helper/formats.h:2
#, c-format
msgid "%d second"
msgid_plural "%d seconds"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d seconde"
+msgstr[1] "%d secondes"
#: helper/formats.h:3
#, c-format
msgid "%d minute"
msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d minute"
+msgstr[1] "%d minutes"
#: helper/formats.h:4
#, c-format
msgid "%d hour"
msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d heure"
+msgstr[1] "%d heures"
#: helper/formats.h:5
#, c-format
msgid "%d day"
msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d jour"
+msgstr[1] "%d jours"
#: helper/formats.h:6
#, c-format
msgid "%d week"
msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d semaine"
+msgstr[1] "%d semaines"
#: helper/formats.h:7
#, c-format
msgid "%d year"
msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d année"
+msgstr[1] "%d années"
#: helper/memory-display.c:30
msgid "Call length"
-msgstr ""
+msgstr "Durée de l'appel"
#. l10n: Call length format string hour:minute:second
#: helper/memory-display.c:32
#, c-format
msgid "%02i:%02i:%02i\n"
-msgstr ""
+msgstr "%02i:%02i:%02i\n"
#: helper/memory-display.c:38
msgid "Date and time"
-msgstr ""
+msgstr "Date et heure"
#: helper/memory-display.c:66 helper/memory-display.c:70
#: helper/memory-display.c:79 helper/memory-display.c:90
msgid "Caller group"
-msgstr ""
+msgstr "Groupe d’appel"
#: helper/memory-display.c:71
msgid "Caller group number too high, please increase buffer in sources!"
msgstr ""
+"Groupe d'appel, nombre trop élevé, veuillez augmenter le tampon dans les "
+"sources !"
#: helper/memory-display.c:113
msgid "User ID"
-msgstr ""
+msgstr "ID utilisateur"
#: helper/memory-display.c:116
msgid "Picture name"
-msgstr ""
+msgstr "Nom de l’image"
#: helper/memory-display.c:119
msgid "Picture ID"
-msgstr ""
+msgstr "ID photo"
#: helper/memory-display.c:122
msgid "Photo"
-msgstr ""
+msgstr "Photo"
#: helper/memory-display.c:122
msgid "Displaying not supported"
-msgstr ""
+msgstr "Affichage non pris en charge"
#: helper/memory-display.c:124
msgid "Favorite messaging number"
-msgstr ""
+msgstr "Numéro de messagerie préféré"
#: helper/memory-display.c:132
msgid "Work number"
-msgstr ""
+msgstr "Numéro professionnel"
#: helper/memory-display.c:135
msgid "General number"
-msgstr ""
+msgstr "Numéro général"
#: helper/memory-display.c:139
msgid "Video number"
@@ -3626,7 +3619,7 @@ msgstr "Numéro de la vidéo"
#: helper/memory-display.c:144
msgid "Home mobile number"
-msgstr ""
+msgstr "Numéro de téléphone portable"
#: helper/memory-display.c:147
msgid "Work mobile number"
@@ -3634,19 +3627,19 @@ msgstr "Numéro de téléphone du portable au travail"
#: helper/memory-display.c:158
msgid "Home fax number"
-msgstr ""
+msgstr "Numéro de fax domicile"
#: helper/memory-display.c:161
msgid "Work fax number"
-msgstr ""
+msgstr "Numéro de fax professionnel"
#: helper/memory-display.c:168
msgid "Pager number"
-msgstr ""
+msgstr "Numéro de pager"
#: helper/memory-display.c:169
msgid "Other number"
-msgstr ""
+msgstr "Autre numéro"
#: helper/memory-display.c:175
msgid "Home address"
@@ -3666,7 +3659,7 @@ msgstr "Courriel au travail"
#: helper/memory-display.c:199
msgid "Email address 2"
-msgstr ""
+msgstr "Adresse email 2"
#: helper/memory-display.c:204
msgid "Home website"
@@ -3682,15 +3675,15 @@ msgstr "Site Internet"
#: helper/memory-display.c:215
msgid "VOIP"
-msgstr ""
+msgstr "VOIP"
#: helper/memory-display.c:216
msgid "SWIS"
-msgstr ""
+msgstr "SWIS"
#: helper/memory-display.c:217
msgid "WVID"
-msgstr ""
+msgstr "WVID"
#: helper/memory-display.c:218
msgid "SIP"
@@ -3698,15 +3691,15 @@ msgstr "SIP"
#: helper/memory-display.c:219
msgid "DTMF"
-msgstr ""
+msgstr "DTMF"
#: helper/memory-display.c:221
msgid "Last name"
-msgstr ""
+msgstr "Nom de famille"
#: helper/memory-display.c:222
msgid "First name"
-msgstr ""
+msgstr "Prénom"
#: helper/memory-display.c:223
msgid "Second name"
@@ -3714,7 +3707,7 @@ msgstr "Deuxième nom"
#: helper/memory-display.c:224
msgid "Formal name"
-msgstr ""
+msgstr "Nom officiel"
#: helper/memory-display.c:225
msgid "Name prefix"
@@ -3722,27 +3715,27 @@ msgstr "Préfixe de nom"
#: helper/memory-display.c:226
msgid "Name suffix"
-msgstr ""
+msgstr "Suffixe de nom"
#: helper/memory-display.c:227
msgid "Nick name"
-msgstr ""
+msgstr "Pseudo"
#: helper/memory-display.c:228
msgid "Company"
-msgstr ""
+msgstr "Société"
#: helper/memory-display.c:229
msgid "Job title"
-msgstr ""
+msgstr "Intitulé de poste"
#: helper/memory-display.c:230
msgid "Street address"
-msgstr ""
+msgstr "Nom de rue"
#: helper/memory-display.c:231
msgid "City"
-msgstr ""
+msgstr "Ville"
#: helper/memory-display.c:232
msgid "State"
@@ -3750,106 +3743,108 @@ msgstr "État"
#: helper/memory-display.c:233
msgid "Zip code"
-msgstr ""
+msgstr "Code postal"
#: helper/memory-display.c:234
msgid "Country"
-msgstr ""
+msgstr "Pays"
#: helper/memory-display.c:235
msgid "Custom text 1"
-msgstr ""
+msgstr "Texte personnalisé 1"
#: helper/memory-display.c:236
msgid "Custom text 2"
-msgstr ""
+msgstr "Texte personnalisé 2"
#: helper/memory-display.c:237
msgid "Custom text 3"
-msgstr ""
+msgstr "Texte personnalisé 3"
#: helper/memory-display.c:238
msgid "Custom text 4"
-msgstr ""
+msgstr "Texte personnalisé 4"
#: helper/memory-display.c:239
msgid "Push to talk ID"
-msgstr ""
+msgstr "ID Push to Talk"
#: helper/memory-display.c:242
msgid "unknown field type"
-msgstr ""
+msgstr "Type de champ inconnu"
#: helper/memory-display.c:249 helper/message-display.c:128
msgid "home"
-msgstr ""
+msgstr "domicile"
#: helper/memory-display.c:252 helper/message-display.c:131
msgid "work"
-msgstr ""
+msgstr "travail"
#: helper/message-cmdline.c:184
msgid "Not enough parameters!"
-msgstr ""
+msgstr "Pas assez de paramètres !"
#: helper/message-cmdline.c:208
#, c-format
msgid "What format of sms (\"%s\") ?\n"
-msgstr ""
+msgstr "Quel format de sms (\"%s\") ?\n"
#: helper/message-cmdline.c:233 helper/message-cmdline.c:250
msgid "Where are parameters?"
-msgstr ""
+msgstr "Où sont les paramètres ?"
#: helper/message-cmdline.c:264
msgid "Where is ringtone filename?"
-msgstr ""
+msgstr "Où est le nom de fichier de la sonnerie ?"
#: helper/message-cmdline.c:282 helper/message-cmdline.c:300
#: helper/message-cmdline.c:351
msgid "Where is logo filename?"
-msgstr ""
+msgstr "Où est le nom de fichier du logo ?"
#: helper/message-cmdline.c:318
msgid "Where is number of frames?"
-msgstr ""
+msgstr "Où est le nombre de trames ?"
#: helper/message-cmdline.c:326
msgid "Too many animation frames!"
-msgstr ""
+msgstr "Trop de trames d’animation !"
#: helper/message-cmdline.c:357
#, c-format
msgid "File \"%s\"\n"
-msgstr ""
+msgstr "Le fichier \"%s\"\n"
#: helper/message-cmdline.c:384
msgid "Bookmark not found in file"
-msgstr ""
+msgstr "Favoris non trouvés dans le fichier"
#: helper/message-cmdline.c:408
msgid "WAP settings not found in file"
-msgstr ""
+msgstr "Paramètres WAP introuvables dans le fichier"
#: helper/message-cmdline.c:429
msgid "Sorry. For now there is only support for GPRS or DATA bearers end"
msgstr ""
+"Désolé. Pour l’instant, seul les porteuses de fin GPRS et données sont "
+"prises en charges"
#: helper/message-cmdline.c:452
msgid "MMS settings not found in file"
-msgstr ""
+msgstr "Paramètres MMS non trouvés dans le fichier"
#: helper/message-cmdline.c:466
msgid "Sorry. No GPRS bearer found in MMS settings"
-msgstr ""
+msgstr "Désolé. Aucune porteuse GPRS trouvée dans les paramètres MMS"
#: helper/message-cmdline.c:512
msgid "ToDo note not found in file"
-msgstr ""
+msgstr "ToDo note non trouvée dans le fichier"
#: helper/message-cmdline.c:574
msgid "Backup functionality not compiled in!"
-msgstr ""
+msgstr "Fonctionnalités de sauvegarde non compilées !"
#: helper/message-cmdline.c:1055
#, c-format
@@ -3859,109 +3854,109 @@ msgstr "Longueur du message erronée (\"%s\")\n"
#: helper/message-cmdline.c:1078
#, c-format
msgid "Unknown GSM network code (\"%s\")\n"
-msgstr ""
+msgstr "Code de réseau GSM inconnu (\"%s\")\n"
#: helper/message-cmdline.c:1097
#, c-format
msgid "You have to give number between 1 and 7 (\"%s\")\n"
-msgstr ""
+msgstr "Vous devez donner un nombre entre 1 et 7 (\"%s\")\n"
#: helper/message-cmdline.c:1136
#, c-format
msgid "Unknown validity string (\"%s\")\n"
-msgstr ""
+msgstr "Chaîne de validité inconnue (\"%s\")\n"
#: helper/message-cmdline.c:1174
#, c-format
msgid "You have to give number of EMS frames between 1 and 4 (\"%s\")\n"
-msgstr ""
+msgstr "Vous devez donner un nombre de trames EMS entre 1 et 4 (\"%s\")\n"
#: helper/message-cmdline.c:1186 helper/message-cmdline.c:1203
#, c-format
msgid "Can't open file \"%s\"\n"
-msgstr ""
+msgstr "Impossible d’ouvrir le fichier \"%s\"\n"
#: helper/message-cmdline.c:1252
#, c-format
msgid "Unknown parameter (\"%c\")\n"
-msgstr ""
+msgstr "Paramètre inconnu (\"%c\")\n"
#: helper/message-cmdline.c:1257
msgid "Last parameter wasn't text"
-msgstr ""
+msgstr "Le dernier paramètre n'était pas du texte"
#: helper/message-cmdline.c:1291
#, c-format
msgid "Too long SMS name (\"%s\"), ignored\n"
-msgstr ""
+msgstr "Nom SMS trop long (\"%s\"), ignoré\n"
#: helper/message-cmdline.c:1331
#, c-format
msgid "Enter the message text and press %s:\n"
-msgstr ""
+msgstr "Saisissez le texte du message et appuyez sur %s :\n"
#: helper/message-cmdline.c:1333
msgid "Ctrl+Z"
-msgstr ""
+msgstr "Ctrl+Z"
#: helper/message-cmdline.c:1335
msgid "Ctrl+D"
-msgstr ""
+msgstr "Ctrl+D"
#: helper/message-cmdline.c:1349
msgid "No chars read, assuming it is okay!"
-msgstr ""
+msgstr "Pas de caractères lus, en supposant que cela est correct !"
#: helper/message-cmdline.c:1369
msgid "No network code"
-msgstr ""
+msgstr "Pas de code réseau"
#: helper/message-cmdline.c:1375
msgid "You have to set network code!"
-msgstr ""
+msgstr "Vous devez définir le code de réseau !"
#: helper/message-cmdline.c:1414
#, c-format
msgid "Ringtone too long. %i percent part cut\n"
-msgstr ""
+msgstr "Sonnerie trop longue. %i pourcents coupé\n"
#: helper/message-cmdline.c:1425
#, c-format
msgid "There are %i SMS messages packed and the limit is %i. Exiting\n"
-msgstr ""
+msgstr "Il y a %i messages SMS conditionnés et la limite est de %i. Sortie\n"
#: helper/message-cmdline.c:1435
msgid "Use -smscnumber option to give SMSC number"
-msgstr ""
+msgstr "Utilisez l'option -smscnumber pour définir le numéro SMSC"
#: helper/message-display.c:26
#, c-format
msgid "Location %i, folder \"%s\""
-msgstr ""
+msgstr "Emplacement %i, dossier \"%s\""
#: helper/message-display.c:33
msgid "SIM memory"
-msgstr ""
+msgstr "Mémoire SIM"
#: helper/message-display.c:36
msgid "phone memory"
-msgstr ""
+msgstr "mémoire téléphone"
#: helper/message-display.c:39
msgid "phone or SIM memory"
-msgstr ""
+msgstr "mémoire téléphone ou SIM"
#: helper/message-display.c:46
msgid "Inbox folder"
-msgstr ""
+msgstr "Dossier boîte de réception"
#: helper/message-display.c:112
msgid "mobile"
-msgstr ""
+msgstr "mobile"
#: helper/message-display.c:118
msgid "pager"
-msgstr ""
+msgstr "pager"
#: helper/message-display.c:121
msgid "general"
@@ -3969,11 +3964,11 @@ msgstr "Généralités"
#: helper/message-display.c:145
msgid "8 bit SMS, cannot be displayed here"
-msgstr ""
+msgstr "SMS 8 bit, impossible d’afficher ici"
#: helper/message-display.c:165
msgid "SMS status report"
-msgstr ""
+msgstr "Rapport d'état SMS"
#: helper/message-display.c:169 helper/message-display.c:181
#: helper/message-display.c:233 helper/message-display.c:248
@@ -3987,217 +3982,219 @@ msgstr "Lu"
#: helper/message-display.c:171 helper/message-display.c:291
msgid "UnRead"
-msgstr ""
+msgstr "Non lu"
#: helper/message-display.c:172 helper/message-display.c:292
msgid "UnSent"
-msgstr ""
+msgstr "Non envoyé"
#: helper/message-display.c:176 helper/message-display.c:279
msgid "Remote number"
msgid_plural "Remote numbers"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Numéro distant"
+msgstr[1] "Numéros distants"
#: helper/message-display.c:180 helper/message-display.c:245
msgid "Reference number"
-msgstr ""
+msgstr "Numéro de référence"
#: helper/message-display.c:182 helper/message-display.c:230
msgid "SMSC number"
-msgstr ""
+msgstr "Numéro SMSC"
#: helper/message-display.c:183
msgid "SMSC response"
-msgstr ""
+msgstr "réponse SMSC"
#: helper/message-display.c:184
msgid "Delivery status"
-msgstr ""
+msgstr "État de délivrance"
#: helper/message-display.c:185
msgid "Details"
-msgstr ""
+msgstr "Détails"
#: helper/message-display.c:188 helper/message-display.c:193
msgid "Temporary error, "
-msgstr ""
+msgstr "Erreur temporaire, "
#: helper/message-display.c:190
msgid "Permanent error, "
-msgstr ""
+msgstr "Erreur permanente, "
#: helper/message-display.c:196
msgid "SM received by the SME"
-msgstr ""
+msgstr "SM reçu par le SME"
#: helper/message-display.c:197
msgid ""
"SM forwarded by the SC to the SME but the SC is unable to confirm delivery"
msgstr ""
+"SM transféré par le SC au SME, mais le SC est pas en mesure de confirmer la "
+"délivrance"
#: helper/message-display.c:198
msgid "SM replaced by the SC"
-msgstr ""
+msgstr "SM remplacé par la SC"
#: helper/message-display.c:199 helper/message-display.c:215
msgid "Congestion"
-msgstr ""
+msgstr "Congestion"
#: helper/message-display.c:200 helper/message-display.c:216
msgid "SME busy"
-msgstr ""
+msgstr "SME occupé"
#: helper/message-display.c:201 helper/message-display.c:217
msgid "No response from SME"
-msgstr ""
+msgstr "Pas de réponse du SME"
#: helper/message-display.c:202 helper/message-display.c:218
msgid "Service rejected"
-msgstr ""
+msgstr "Service rejeté"
#: helper/message-display.c:203 helper/message-display.c:209
#: helper/message-display.c:219
msgid "Quality of service not available"
-msgstr ""
+msgstr "Qualité du service non disponible"
#: helper/message-display.c:204 helper/message-display.c:220
msgid "Error in SME"
-msgstr ""
+msgstr "Erreur dans le SME"
#: helper/message-display.c:205
msgid "Remote procedure error"
-msgstr ""
+msgstr "Erreur de procédure distante"
#: helper/message-display.c:206
msgid "Incompatible destination"
-msgstr ""
+msgstr "Destination incompatible"
#: helper/message-display.c:207
msgid "Connection rejected by SME"
-msgstr ""
+msgstr "Connexion rejetée par le SME"
#: helper/message-display.c:208
msgid "Not obtainable"
-msgstr ""
+msgstr "Non disponible"
#: helper/message-display.c:210
msgid "No internetworking available"
-msgstr ""
+msgstr "Aucune interconnexion disponible"
#: helper/message-display.c:211
msgid "SM Validity Period Expired"
-msgstr ""
+msgstr "Période de validité SM expirée"
#: helper/message-display.c:212
msgid "SM deleted by originating SME"
-msgstr ""
+msgstr "SM supprimé par SME originaire"
#: helper/message-display.c:213
msgid "SM Deleted by SC Administration"
-msgstr ""
+msgstr "SM supprimé par l'administration SC"
#: helper/message-display.c:214
msgid "SM does not exist"
-msgstr ""
+msgstr "SM n'existe pas"
#: helper/message-display.c:221
#, c-format
msgid "Reserved/Specific to SC: %x"
-msgstr ""
+msgstr "Réservés/spécifique à SC : %x"
#: helper/message-display.c:226 helper/message-display.c:243
msgid "SMS message"
-msgstr ""
+msgstr "Message SMS"
#: helper/message-display.c:228
msgid "Saved"
-msgstr ""
+msgstr "Enregistré"
#: helper/message-display.c:231
msgid " (set for reply)"
-msgstr ""
+msgstr " (défini pour répondre)"
#: helper/message-display.c:240
msgid "SMS replacing ID"
-msgstr ""
+msgstr "ID de remplacement SMS"
#: helper/message-display.c:255
msgid "Class"
-msgstr ""
+msgstr "Classe"
#: helper/message-display.c:257
msgid "Coding"
-msgstr ""
+msgstr "Codage"
#: helper/message-display.c:260
msgid "Unicode (no compression)"
-msgstr ""
+msgstr "Unicode (sans compression)"
#: helper/message-display.c:263
msgid "Unicode (compression)"
-msgstr ""
+msgstr "Unicode (compression)"
#: helper/message-display.c:266
msgid "Default GSM alphabet (no compression)"
-msgstr ""
+msgstr "Alphabet GSM par défaut (sans compression)"
#: helper/message-display.c:269
msgid "Default GSM alphabet (compression)"
-msgstr ""
+msgstr "Alphabet GSM par défaut (compression)"
#. l10n: 8-bit message coding
#: helper/message-display.c:273
msgid "8-bit"
-msgstr ""
+msgstr "8-bit"
#: helper/message-display.c:296
msgid "User Data Header"
-msgstr ""
+msgstr "En-tête des données utilisateur"
#: helper/message-display.c:298 helper/message-display.c:299
msgid "Concatenated (linked) message"
-msgstr ""
+msgstr "Message concaténé (lié)"
#: helper/message-display.c:300
msgid "Disables voice indicator"
-msgstr ""
+msgstr "Désactive l'indicateur vocal"
#: helper/message-display.c:301
msgid "Enables voice indicator"
-msgstr ""
+msgstr "Permet l'indicateur vocal"
#: helper/message-display.c:302
msgid "Disables fax indicator"
-msgstr ""
+msgstr "Désactive l'indicateur de télécopie"
#: helper/message-display.c:303
msgid "Enables fax indicator"
-msgstr ""
+msgstr "Active l'indicateur de télécopie"
#: helper/message-display.c:304
msgid "Disables email indicator"
-msgstr ""
+msgstr "Désactive l'indicateur d'email"
#: helper/message-display.c:305
msgid "Enables email indicator"
-msgstr ""
+msgstr "Active l'indicateur d'email"
#: helper/message-display.c:306
msgid "Void SMS"
-msgstr ""
+msgstr "SMS vide"
#: helper/message-display.c:307
msgid "Nokia WAP bookmark"
-msgstr ""
+msgstr "favoris WAp Nokia"
#: helper/message-display.c:308
msgid "Nokia operator logo"
-msgstr ""
+msgstr "Logo opérateur Nokia"
#: helper/message-display.c:309
msgid "Nokia WAP bookmark or WAP/MMS settings"
-msgstr ""
+msgstr "favoris WAp Nokia ou paramètres WAP/MMS"
#: helper/message-display.c:310 helper/message-display.c:311
msgid "Nokia ringtone"
@@ -4205,78 +4202,80 @@ msgstr "Sonnerie Nokia"
#: helper/message-display.c:312
msgid "Nokia GSM operator logo"
-msgstr ""
+msgstr "Logo opérateur Nokia GSM"
#: helper/message-display.c:313
msgid "Nokia caller logo"
-msgstr ""
+msgstr "Logo de l'appelant Nokia"
#: helper/message-display.c:314
msgid "Nokia profile"
-msgstr ""
+msgstr "Profil Nokia"
#: helper/message-display.c:315
msgid "Nokia calendar note"
-msgstr ""
+msgstr "Note du calendrier Nokia"
#: helper/message-display.c:316
msgid "Nokia phonebook entry"
-msgstr ""
+msgstr "Entrée du répertoire Nokia"
#: helper/message-display.c:317
msgid "User UDH"
-msgstr ""
+msgstr "Utilisateur UDH"
#: helper/message-display.c:318
msgid "MMS indicator"
-msgstr ""
+msgstr "Indicateur MMS"
#: helper/message-display.c:322
#, c-format
msgid ", ID (8 bit) %i"
-msgstr ""
+msgstr ", ID (8 bit) %i"
#: helper/message-display.c:323
#, c-format
msgid ", ID (16 bit) %i"
-msgstr ""
+msgstr ", ID (16 bit) %i"
#: helper/message-display.c:326
#, c-format
msgid ", part %i of %i"
-msgstr ""
+msgstr ", partie %i de %i"
#: helper/message-display.c:328
#, c-format
msgid ", %i parts"
-msgstr ""
+msgstr ", %i parties"
#: helper/message-display.c:339
msgid "Siemens file"
-msgstr ""
+msgstr "Fichier Siemens"
#: helper/message-display.c:347
#, c-format
msgid "Unknown PDU type: 0x%x\n"
-msgstr ""
+msgstr "Type PDU inconnu : 0x%x\n"
#: helper/message-display.c:394
msgid ""
"Some details were ignored (unknown or not implemented in decoding functions)"
msgstr ""
+"Certains détails ont été ignorés (inconnu ou non implémenté dans les "
+"fonctions de décodage)"
#: helper/message-display.c:399
msgid "Siemens OTA file"
-msgstr ""
+msgstr "Fichier Siemens OTA"
#: helper/message-display.c:401
msgid " - VCARD"
-msgstr ""
+msgstr " - VCARD"
#: helper/message-display.c:415
#, c-format
msgid "Ringtone \"%s\"\n"
-msgstr ""
+msgstr "Sonnerie \"%s\"\n"
#: helper/message-display.c:420
msgid "Do you want to play it?"
@@ -4289,7 +4288,7 @@ msgstr "Logo de l'appelant"
#: helper/message-display.c:429
#, c-format
msgid "Operator logo for %s network"
-msgstr ""
+msgstr "Logo de l'opérateur pour le réseau %s"
#: helper/message-display.c:449
msgid "Profile"
@@ -4301,7 +4300,7 @@ msgstr "EMS son ID"
#: helper/message-display.c:473
msgid "EMS animation ID"
-msgstr ""
+msgstr "ID d’animation EMS"
#: helper/message-display.c:479
msgid "Message size"
@@ -4314,7 +4313,7 @@ msgstr "Erreur"
#: helper/message-display.c:545
msgid "Data PDU"
-msgstr ""
+msgstr "Données PDU"
#: helper/message-display.c:546
msgid "Number of bits"
@@ -4322,7 +4321,7 @@ msgstr "Nombre de bit"
#: helper/message-display.c:548
msgid "UDH"
-msgstr ""
+msgstr "UDH"
#: helper/message-display.c:564
msgid "Whole PDU"
diff --git a/locale/fr/libgammu.po b/locale/fr/libgammu.po
index ea974c5..c7173af 100644
--- a/locale/fr/libgammu.po
+++ b/locale/fr/libgammu.po
@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: libgammu 1.22.93\n"
"Report-Msgid-Bugs-To: gammu-users@lists.sourceforge.net\n"
"POT-Creation-Date: 2016-10-11 08:16+0200\n"
-"PO-Revision-Date: 2016-07-20 20:52+0000\n"
-"Last-Translator: Nabil BENDAFI <nabil@bendafi.fr>\n"
-"Language-Team: French <https://hosted.weblate.org/projects/gammu/libgammu/fr/"
-">\n"
+"PO-Revision-Date: 2017-05-02 17:18+0000\n"
+"Last-Translator: Kyodev <kyodev@yandex.com>\n"
+"Language-Team: French "
+"<https://hosted.weblate.org/projects/gammu/libgammu/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 2.8-dev\n"
+"X-Generator: Weblate 2.14-dev\n"
#: libgammu/gsmcomon.c:84
msgid "No error."
@@ -88,40 +88,28 @@ msgstr ""
"être pas connecté."
#: libgammu/gsmcomon.c:98
-#, fuzzy
-#| msgid ""
-#| "Frame not requested right now. See <http://wammu.eu/support/bugs/> for "
-#| "information how to report it."
msgid ""
"Frame not requested right now. See <https://wammu.eu/support/bugs/> for "
"information how to report it."
msgstr ""
-"Trame non demandée pour le moment. Consulter <http://cihar.com/gammu/report> "
-"pour savoir comment rapporter cette information."
+"Trame non demandée pour le moment. Consulter <https://wammu.eu/support/bugs/>"
+" pour savoir comment le signaler."
#: libgammu/gsmcomon.c:99
-#, fuzzy
-#| msgid ""
-#| "Unknown response from phone. See <http://wammu.eu/support/bugs/> for "
-#| "information how to report it."
msgid ""
"Unknown response from phone. See <https://wammu.eu/support/bugs/> for "
"information how to report it."
msgstr ""
-"Réponse inconnu du téléphone. Consulter <http://cihar.com/gammu/report> pour "
-"savoir comment rapporter cette information."
+"Réponse inconnue du téléphone. Consulter <https://wammu.eu/support/bugs/> "
+"pour savoir comment le signaler."
#: libgammu/gsmcomon.c:100
-#, fuzzy
-#| msgid ""
-#| "Unknown frame. See <http://wammu.eu/support/bugs/> for information how to "
-#| "report it."
msgid ""
"Unknown frame. See <https://wammu.eu/support/bugs/> for information how to "
"report it."
msgstr ""
-"Frame inconnue. Consulter <http://cihar.com/gammu/report> pour savoir "
-"comment rapporter cette information."
+"Trame inconnue. Consulter <https://wammu.eu/support/bugs/> pour savoir "
+"comment le signaler."
#: libgammu/gsmcomon.c:101
msgid "Unknown connection type string. Check config file."
diff --git a/smsd/CMakeLists.txt b/smsd/CMakeLists.txt
index 937b15e..1af9041 100644
--- a/smsd/CMakeLists.txt
+++ b/smsd/CMakeLists.txt
@@ -125,11 +125,6 @@ if(CMAKE_COMPILER_IS_MINGW AND BUILD_SHARED_LIBS)
endif(CMAKE_COMPILER_IS_MINGW AND BUILD_SHARED_LIBS)
target_link_libraries (gsmsd libGammu)
-if (NOT HAVE_STRPTIME)
- target_link_libraries (gsmsd strptime)
-endif (NOT HAVE_STRPTIME)
-target_link_libraries (gsmsd string)
-target_link_libraries (gsmsd array)
# Gammu-smsd program
add_executable (gammu-smsd ${DAEMON_SRC} ${SMSD_RESOURCES})
diff --git a/smsd/core.c b/smsd/core.c
index 7c29640..80bbe3c 100644
--- a/smsd/core.c
+++ b/smsd/core.c
@@ -59,7 +59,7 @@
#include "log-event.h"
#endif
-#include "../helper/string.h"
+#include "../libgammu/misc/string.h"
#ifndef PATH_MAX
#ifdef MAX_PATH
@@ -106,6 +106,21 @@ GSM_Error SMSD_Shutdown(GSM_SMSDConfig *Config)
}
/**
+ * Interruptuptible sleep allowing to terminate SMSD.
+ */
+void SMSD_InterruptibleSleep(GSM_SMSDConfig *Config, int seconds)
+{
+ int i, loops;
+ loops = seconds * 2;
+ for (i = 0; i < loops; i++) {
+ if (Config->shutdown) {
+ break;
+ }
+ usleep(500000);
+ }
+}
+
+/**
* Callback from libGammu on sending message.
*/
void SMSD_SendSMSStatusCallback (GSM_StateMachine *sm, int status, int mr, void *user_data)
@@ -391,6 +406,7 @@ GSM_SMSDConfig *SMSD_NewConfig(const char *name)
Config->ServiceName = NULL;
Config->Service = NULL;
Config->IgnoredMessages = 0;
+ Config->PhoneID = NULL;
#if defined(HAVE_MYSQL_MYSQL_H)
Config->conn.my = NULL;
@@ -804,7 +820,7 @@ GSM_Error SMSD_ReadConfig(const char *filename, GSM_SMSDConfig *Config, gboolean
Config->deliveryreportdelay = INI_GetInt(Config->smsdcfgfile, "smsd", "deliveryreportdelay", 600);
Config->sendtimeout = INI_GetInt(Config->smsdcfgfile, "smsd", "sendtimeout", 30);
Config->receivefrequency = INI_GetInt(Config->smsdcfgfile, "smsd", "receivefrequency", 15);
- Config->statusfrequency = INI_GetInt(Config->smsdcfgfile, "smsd", "statusfrequency", 15);
+ Config->statusfrequency = INI_GetInt(Config->smsdcfgfile, "smsd", "statusfrequency", 60);
Config->loopsleep = INI_GetInt(Config->smsdcfgfile, "smsd", "loopsleep", 1);
Config->checksecurity = INI_GetBool(Config->smsdcfgfile, "smsd", "checksecurity", TRUE);
Config->hangupcalls = INI_GetBool(Config->smsdcfgfile, "smsd", "hangupcalls", FALSE);
@@ -1047,7 +1063,7 @@ void SMSD_RunOnReceiveEnvironment(GSM_MultiSMSMessage *sms, GSM_SMSDConfig *Conf
setenv(name, buffer, 1);
sprintf(name, "SMS_%d_NUMBER", i + 1);
setenv(name, DecodeUnicodeConsole(sms->SMS[i].Number), 1);
- if (sms->SMS[i].Coding != SMS_Coding_8bit) {
+ if (sms->SMS[i].Coding != SMS_Coding_8bit && sms->SMS[i].UDH.Type != UDH_UserUDH) {
sprintf(name, "SMS_%d_TEXT", i + 1);
setenv(name, DecodeUnicodeConsole(sms->SMS[i].Text), 1);
}
@@ -1065,7 +1081,7 @@ void SMSD_RunOnReceiveEnvironment(GSM_MultiSMSMessage *sms, GSM_SMSDConfig *Conf
case SMS_ConcatenatedAutoTextLong16bit:
case SMS_NokiaVCARD21Long:
case SMS_NokiaVCALENDAR10Long:
- sprintf(name, "DECODED_%d_TEXT", i);
+ sprintf(name, "DECODED_%d_TEXT", i + 1);
setenv(name, DecodeUnicodeConsole(SMSInfo.Entries[i].Buffer), 1);
break;
case SMS_MMSIndicatorLong:
@@ -1783,7 +1799,7 @@ failure_unsent:
Config->Service->UpdateRetries(Config, Config->SMSID);
- sleep(60);
+ SMSD_InterruptibleSleep(Config, 60);
return ERR_UNKNOWN;
failure_sent:
@@ -1933,6 +1949,7 @@ void SMSD_IncomingCallCallback(GSM_StateMachine *s, GSM_Call *call, void *user_d
SMSD_Log(DEBUG_INFO, Config, "Call callback: Unknown status %d\n", call->Status);
}
}
+
/**
* Main loop which takes care of connection to phone and processing of
* messages.
@@ -1943,8 +1960,7 @@ GSM_Error SMSD_MainLoop(GSM_SMSDConfig *Config, gboolean exit_on_failure, int ma
int errors = -1, initerrors=0;
double lastsleep;
time_t lastreceive = 0, lastreset = time(NULL), lasthardreset = time(NULL), lastnothingsent = 0, laststatus = 0;
- time_t lastloop = 0, current_time;
- int i;
+ time_t lastloop = 0;
gboolean first_start = TRUE, force_reset = FALSE, force_hard_reset = FALSE;
Config->failure = ERR_NONE;
@@ -1988,11 +2004,7 @@ GSM_Error SMSD_MainLoop(GSM_SMSDConfig *Config, gboolean exit_on_failure, int ma
if (initerrors++ > 3) {
SMSD_Log(DEBUG_INFO, Config, "Going to 30 seconds sleep because of too many connection errors");
- for (i = 0; i < 60; i++) {
- if (Config->shutdown)
- break;
- usleep(500000);
- }
+ SMSD_InterruptibleSleep(Config, 30);
}
SMSD_Log(DEBUG_INFO, Config, "Starting phone communication...");
error = GSM_InitConnection_Log(Config->gsm, 2, SMSD_Log_Function, Config);
@@ -2043,14 +2055,14 @@ GSM_Error SMSD_MainLoop(GSM_SMSDConfig *Config, gboolean exit_on_failure, int ma
error = GSM_Reset(Config->gsm, FALSE); /* soft reset */
SMSD_LogError(DEBUG_INFO, Config, "Soft reset return code", error);
lastreset = time(NULL);
- sleep(5);
+ SMSD_InterruptibleSleep(Config, 5);
force_reset = FALSE;
}
if (force_hard_reset) {
error = GSM_Reset(Config->gsm, TRUE); /* hard reset */
SMSD_LogError(DEBUG_INFO, Config, "Hard reset return code", error);
lasthardreset = time(NULL);
- sleep(5);
+ SMSD_InterruptibleSleep(Config, 5);
force_hard_reset = FALSE;
}
break;
@@ -2067,7 +2079,7 @@ GSM_Error SMSD_MainLoop(GSM_SMSDConfig *Config, gboolean exit_on_failure, int ma
}
/* Should we receive? */
- if (Config->enable_receive && ((difftime(time(NULL), lastreceive) >= Config->receivefrequency) || (Config->SendingSMSStatus != ERR_NONE))) {
+ if (Config->enable_receive && ((difftime(lastloop, lastreceive) >= Config->receivefrequency) || (Config->SendingSMSStatus != ERR_NONE))) {
lastreceive = time(NULL);
/* Do we need to check security? */
@@ -2095,12 +2107,11 @@ GSM_Error SMSD_MainLoop(GSM_SMSDConfig *Config, gboolean exit_on_failure, int ma
/* time for preventive reset */
- current_time = time(NULL);
- if (Config->resetfrequency > 0 && difftime(current_time, lastreset) >= Config->resetfrequency) {
+ if (Config->resetfrequency > 0 && difftime(lastloop, lastreset) >= Config->resetfrequency) {
force_reset = TRUE;
continue;
}
- if (Config->hardresetfrequency > 0 && difftime(current_time, lasthardreset) >= Config->hardresetfrequency) {
+ if (Config->hardresetfrequency > 0 && difftime(lastloop, lasthardreset) >= Config->hardresetfrequency) {
force_hard_reset = TRUE;
continue;
}
@@ -2109,11 +2120,10 @@ GSM_Error SMSD_MainLoop(GSM_SMSDConfig *Config, gboolean exit_on_failure, int ma
}
/* Send any queued messages */
- current_time = time(NULL);
- if (Config->enable_send && (difftime(current_time, lastnothingsent) >= Config->commtimeout)) {
+ if (Config->enable_send && (difftime(lastloop, lastnothingsent) >= Config->commtimeout)) {
error = SMSD_SendSMS(Config);
if (error == ERR_EMPTY) {
- lastnothingsent = current_time;
+ lastnothingsent = lastloop;
}
/* We don't care about other errors here, they are handled in SMSD_SendSMS */
}
@@ -2122,23 +2132,22 @@ GSM_Error SMSD_MainLoop(GSM_SMSDConfig *Config, gboolean exit_on_failure, int ma
}
/* Refresh phone status in shared memory and in service */
- current_time = time(NULL);
- if ((Config->statusfrequency > 0) && (difftime(current_time, laststatus) >= Config->statusfrequency)) {
+ if ((Config->statusfrequency > 0) && (difftime(lastloop, laststatus) >= Config->statusfrequency)) {
SMSD_PhoneStatus(Config);
- laststatus = current_time;
+ laststatus = lastloop;
Config->Service->RefreshPhoneStatus(Config);
}
if (Config->shutdown) {
break;
}
+
/* Sleep some time before another loop */
- current_time = time(NULL);
- lastsleep = difftime(current_time, lastloop);
- if (Config->loopsleep == 1) {
- sleep(1);
- } else if (lastsleep < Config->loopsleep) {
- sleep(Config->loopsleep - lastsleep);
+ /* Duration of last loop cycle */
+ lastsleep = difftime(time(NULL), lastloop);
+ if (Config->loopsleep > 0 && lastsleep < Config->loopsleep) {
+ /* Sleep LoopSleep - time of the loop */
+ SMSD_InterruptibleSleep(Config, Config->loopsleep - lastsleep);
}
}
Config->Service->Free(Config);
diff --git a/smsd/core.h b/smsd/core.h
index 190f2d7..9e7928e 100644
--- a/smsd/core.h
+++ b/smsd/core.h
@@ -21,7 +21,7 @@
#include "log.h"
-#include "../helper/array.h"
+#include "../libgammu/misc/array.h"
typedef enum {
DEBUG_ERROR = -1,
diff --git a/smsd/log-event.c b/smsd/log-event.c
index 1a482a4..6158de0 100644
--- a/smsd/log-event.c
+++ b/smsd/log-event.c
@@ -83,7 +83,7 @@ gboolean eventlog_register(void)
0,
REG_SZ,
(BYTE *)program_name,
- strlen(program_name) + 1);
+ (DWORD)(strlen(program_name) + 1));
if (ret != ERROR_SUCCESS) {
fprintf(stderr, "Failed to write CategoryMessageFile to registry!\n");
diff --git a/smsd/services/files.c b/smsd/services/files.c
index 35e2a49..d020caf 100644
--- a/smsd/services/files.c
+++ b/smsd/services/files.c
@@ -23,7 +23,7 @@
#include "../core.h"
-#include "../../helper/string.h"
+#include "../../libgammu/misc/string.h"
#ifndef PATH_MAX
#ifdef MAX_PATH
diff --git a/smsd/services/odbc.c b/smsd/services/odbc.c
index 9f7b8a2..a57a1a0 100644
--- a/smsd/services/odbc.c
+++ b/smsd/services/odbc.c
@@ -21,7 +21,7 @@
#include <sql.h>
#include <sqlext.h>
-#include "../../helper/string.h"
+#include "../../libgammu/misc/string.h"
#include "../core.h"
#include "sql.h"
#include "sql-core.h"
@@ -272,6 +272,7 @@ char * SMSDODBC_QuoteString(GSM_SMSDConfig * Config, const char *string)
strncasecmp(driver_name, "sqlite", 6) == 0 ||
strncasecmp(driver_name, "oracle", 6) == 0 ||
strncasecmp(driver_name, "freetds", 6) == 0 ||
+ strncasecmp(driver_name, "mssql", 6) == 0 ||
strcasecmp(Config->driver, "access") == 0) {
quote = '\'';
}
diff --git a/smsd/services/sql.c b/smsd/services/sql.c
index bc19b4b..9e3ef33 100644
--- a/smsd/services/sql.c
+++ b/smsd/services/sql.c
@@ -14,7 +14,7 @@
#define _DEFAULT_SOURCE
#include <time.h>
#include <gammu.h>
-#include "../../helper/strptime.h"
+#include "../../libgammu/misc/strptime.h"
#include <stdarg.h>
#include <stdlib.h>
@@ -28,7 +28,7 @@
#endif
#include "../core.h"
-#include "../../helper/string.h"
+#include "../../libgammu/misc/string.h"
/**
* Returns name of the SQL dialect to use.
@@ -101,7 +101,7 @@ static const char *SMSDSQL_EscapeChar(GSM_SMSDConfig * Config)
return escape_char_sqlite;
} else if (strcasecmp(driver_name, "oracle") == 0 || strcasecmp(driver_name, "freetds") == 0 || strcasecmp(driver_name, "mssql") == 0 || strcasecmp(driver_name, "sybase") == 0) {
return escape_char_freetds;
- } else if (strcasecmp(Config->driver, "odbc") == 0) {
+ } else if (strcasecmp(Config->driver, "odbc") == 0 || strcasecmp(Config->driver, "mssql") == 0) {
return escape_char_odbc;
} else {
return escape_char_fallback;
@@ -144,7 +144,7 @@ static const char *SMSDSQL_TopClause(GSM_SMSDConfig * Config, const char *count)
driver_name = SMSDSQL_SQLName(Config);
- if (strcasecmp(driver_name, "access") == 0) {
+ if (strcasecmp(driver_name, "access") == 0 || strcasecmp(driver_name, "mssql") == 0) {
strcpy(result, top_clause_access);
strcat(result, " ");
strcat(result, count);
@@ -165,7 +165,7 @@ static const char *SMSDSQL_LimitClause(GSM_SMSDConfig * Config, const char *coun
driver_name = SMSDSQL_SQLName(Config);
- if (strcasecmp(driver_name, "access") == 0 || strcasecmp(driver_name, "freetds") == 0 || strcasecmp(driver_name, "oracle") == 0) {
+ if (strcasecmp(driver_name, "mssql") == 0 || strcasecmp(driver_name, "access") == 0 || strcasecmp(driver_name, "freetds") == 0 || strcasecmp(driver_name, "oracle") == 0) {
return limit_clause_access;
} else {
strcpy(result, limit_clause_fallback);
@@ -1122,9 +1122,7 @@ static GSM_Error SMSDSQL_AddSentSMSInfo(GSM_MultiSMSMessage * sms, GSM_SMSDConfi
if (err == SMSD_SEND_OK) {
SMSD_Log(DEBUG_NOTICE, Config, "Transmitted %s (%s: %i) to %s", Config->SMSID,
(Part == sms->Number ? "total" : "part"), Part, DecodeUnicodeString(sms->SMS[0].Number));
- }
- if (err == SMSD_SEND_OK) {
if (sms->SMS[Part - 1].PDU == SMS_Status_Report) {
message_state = "SendingOK";
} else {
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index f7005a1..73d33a3 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -44,7 +44,7 @@ add_test(base64 "${GAMMU_TEST_PATH}/base64${CMAKE_EXECUTABLE_SUFFIX}")
# Array manipulation tests
add_executable(array-test array-test.c)
add_coverage(array-test)
-target_link_libraries (array-test array)
+target_link_libraries (array-test libGammu)
add_test(array "${GAMMU_TEST_PATH}/array-test${CMAKE_EXECUTABLE_SUFFIX}")
# UTF-8 manipulation tests
@@ -421,7 +421,7 @@ if (WITH_ATGEN)
# AT SMS parsing
add_executable(sms-at-parse sms-at-parse.c)
add_coverage(sms-at-parse)
- target_link_libraries(sms-at-parse libGammu ${LIBINTL_LIBRARIES})
+ target_link_libraries(sms-at-parse libGammu ${LIBINTL_LIBRARIES} gsmsd)
target_link_libraries(sms-at-parse messagedisplay)
# List test cases for success
diff --git a/tests/array-test.c b/tests/array-test.c
index 336e39e..6631e75 100644
--- a/tests/array-test.c
+++ b/tests/array-test.c
@@ -2,7 +2,7 @@
* Simple test case for array manipulations.
*/
-#include "../helper/array.h"
+#include "../libgammu/misc/array.h"
#include "common.h"
#include <gammu-misc.h>
diff --git a/tests/at-sms/40.dump b/tests/at-sms/40.dump
new file mode 100644
index 0000000..78afb47
--- /dev/null
+++ b/tests/at-sms/40.dump
@@ -0,0 +1,4 @@
+AT+CMGR=1
++CMGR: 1,,153
+07912374151616F6440B911174164210F000F571309290346280860605040B8423F04F06226170706C69636174696F6E2F766E642E7761702E6D6D732D6D65737361676500AF848C82983831343630343934406D6D7331008D928918802B33333333333439333231312F545950453D504C4D4E0096008F8186818A808E03017A598805810303F48083687474703A2F2F6D74732F3F69643D383134363034393400
+OK
diff --git a/tests/sms-at-parse.c b/tests/sms-at-parse.c
index e792187..18d20af 100644
--- a/tests/sms-at-parse.c
+++ b/tests/sms-at-parse.c
@@ -1,6 +1,7 @@
/* Test for decoding SMS on AT driver */
#include <gammu.h>
+#include <gammu-smsd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -13,6 +14,7 @@
#include "common.h"
extern GSM_Error ATGEN_ReplyGetSMSMessage(GSM_Protocol_Message *msg, GSM_StateMachine * s);
+extern void SMSD_RunOnReceiveEnvironment(GSM_MultiSMSMessage *sms, GSM_SMSDConfig *Config, const char *locations);
#define BUFFER_SIZE 16384
@@ -28,6 +30,7 @@ int main(int argc, char **argv)
GSM_Protocol_Message msg;
GSM_Error error;
GSM_MultiSMSMessage sms;
+ GSM_SMSDConfig *smsd;
#if 0
GSM_SMS_Backup bkp;
#endif
@@ -52,6 +55,8 @@ int main(int argc, char **argv)
fclose(f);
return 1;
}
+
+ smsd = SMSD_NewConfig("test");
/* Zero terminate data */
buffer[len] = 0;
@@ -111,6 +116,8 @@ int main(int argc, char **argv)
DisplayMultiSMSInfo(&sms, FALSE, TRUE, NULL, NULL);
DisplayMultiSMSInfo(&sms, TRUE, TRUE, NULL, NULL);
printf("Parts: %d, count: %d, ID16: %d, ID8: %d\n", sms.SMS[0].UDH.AllParts, sms.Number, sms.SMS[0].UDH.ID16bit, sms.SMS[0].UDH.ID8bit);
+
+ SMSD_RunOnReceiveEnvironment(&sms, smsd, "1");
}
/* This is normally done by ATGEN_Terminate */
diff --git a/tests/sql-parse-date.c b/tests/sql-parse-date.c
index feab457..40c61a2 100644
--- a/tests/sql-parse-date.c
+++ b/tests/sql-parse-date.c
@@ -2,7 +2,7 @@
* Simple test case for array manipulations.
*/
-#include "../helper/array.h"
+#include "../libgammu/misc/array.h"
#include "common.h"
#include <gammu-smsd.h>
#include "../smsd/services/sql.h" /* For SMSDSQL_ParseDate */