diff options
Diffstat (limited to 'hcid/lib.c')
-rw-r--r-- | hcid/lib.c | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/hcid/lib.c b/hcid/lib.c deleted file mode 100644 index e52e9b37..00000000 --- a/hcid/lib.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * - * BlueZ - Bluetooth protocol stack for Linux - * - * Copyright (C) 2000-2001 Qualcomm Incorporated - * Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com> - * Copyright (C) 2002-2006 Marcel Holtmann <marcel@holtmann.org> - * - * - * 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 St, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <stdio.h> -#include <errno.h> -#include <unistd.h> -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <signal.h> -#include <sys/socket.h> - -#include <bluetooth/bluetooth.h> -#include <bluetooth/hci.h> -#include <bluetooth/hci_lib.h> - -#include "hcid.h" -#include "lib.h" - -volatile sig_atomic_t __io_canceled; - -/* - * Device name expansion - * %d - device id - */ -char *expand_name(char *dst, int size, char *str, int dev_id) -{ - register int sp, np, olen; - char *opt, buf[10]; - - if (!str && !dst) - return NULL; - - sp = np = 0; - while (np < size - 1 && str[sp]) { - switch (str[sp]) { - case '%': - opt = NULL; - - switch (str[sp+1]) { - case 'd': - sprintf(buf, "%d", dev_id); - opt = buf; - break; - - case 'h': - opt = hcid.host_name; - break; - - case '%': - dst[np++] = str[sp++]; - /* fall through */ - default: - sp++; - continue; - } - - if (opt) { - /* substitute */ - olen = strlen(opt); - if (np + olen < size - 1) - memcpy(dst + np, opt, olen); - np += olen; - } - sp += 2; - continue; - - case '\\': - sp++; - /* fall through */ - default: - dst[np++] = str[sp++]; - break; - } - } - dst[np] = '\0'; - return dst; -} - -/* Returns current host name */ -char *get_host_name(void) -{ - char name[40]; - - if (!gethostname(name, sizeof(name)-1)) { - name[sizeof(name)-1] = 0; - return strdup(name); - } - return strdup("noname"); -} - -/* Functions to manipulate program title */ -extern char **environ; -char *title_start; /* start of the proc title space */ -char *title_end; /* end of the proc title space */ -int title_size; - -void init_title(int argc, char *argv[], char *envp[], const char *name) -{ - int i; - - /* - * Move the environment so settitle can use the space at - * the top of memory. - */ - - for (i = 0; envp[i]; i++); - - environ = (char **) malloc(sizeof (char *) * (i + 1)); - - for (i = 0; envp[i]; i++) - environ[i] = strdup(envp[i]); - environ[i] = NULL; - - /* - * Save start and extent of argv for set_title. - */ - - title_start = argv[0]; - - /* - * Determine how much space we can use for set_title. - * Use all contiguous argv and envp pointers starting at argv[0] - */ - for (i =0; i < argc; i++) - if (!i || title_end == argv[i]) - title_end = argv[i] + strlen(argv[i]) + 1; - - for (i = 0; envp[i]; i++) - if (title_end == envp[i]) - title_end = envp[i] + strlen(envp[i]) + 1; - - strcpy(title_start, name); - title_start += strlen(name); - title_size = title_end - title_start; -} - -void set_title(const char *fmt, ...) -{ - char buf[255]; - va_list ap; - - memset(title_start, 0, title_size); - - /* print the argument string */ - va_start(ap, fmt); - vsprintf(buf, fmt, ap); - va_end(ap); - - if (strlen(buf) > title_size - 1) - buf[title_size - 1] = '\0'; - - strcat(title_start, buf); -} |