mirror of
https://github.com/profanity-im/profanity.git
synced 2024-09-01 19:24:15 -04:00
Merge common and util
This commit is contained in:
parent
8b7975bdf3
commit
0fe70ce7d3
@ -1,18 +1,18 @@
|
|||||||
bin_PROGRAMS = profanity
|
bin_PROGRAMS = profanity
|
||||||
profanity_SOURCES = src/command.c src/contact.c src/history.c src/jabber.h \
|
profanity_SOURCES = src/command.c src/contact.c src/history.c src/jabber.h \
|
||||||
src/preferences.c src/prof_autocomplete.c src/status_bar.c src/util.h \
|
src/preferences.c src/prof_autocomplete.c src/status_bar.c \
|
||||||
src/command.h src/contact.h src/history.h src/log.c src/preferences.h \
|
src/command.h src/contact.h src/history.h src/log.c src/preferences.h \
|
||||||
src/prof_autocomplete.h src/title_bar.c src/windows.c src/common.c \
|
src/prof_autocomplete.h src/title_bar.c src/windows.c src/common.c \
|
||||||
src/contact_list.c src/input_win.c src/log.h src/profanity.c \
|
src/contact_list.c src/input_win.c src/log.h src/profanity.c \
|
||||||
src/prof_history.c src/ui.h src/common.h src/ contact_list.h src/jabber.c \
|
src/prof_history.c src/ui.h src/common.h src/ contact_list.h src/jabber.c \
|
||||||
src/main.c src/profanity.h src/prof_history.h src/util.c src/chat_log.c \
|
src/main.c src/profanity.h src/prof_history.h src/chat_log.c \
|
||||||
src/chat_log.h src/tinyurl.c src/tinyurl.h
|
src/chat_log.h src/tinyurl.c src/tinyurl.h
|
||||||
|
|
||||||
TESTS = tests/testsuite
|
TESTS = tests/testsuite
|
||||||
check_PROGRAMS = tests/testsuite
|
check_PROGRAMS = tests/testsuite
|
||||||
tests_testsuite_SOURCES = tests/test_contact_list.c src/contact_list.c src/contact.c \
|
tests_testsuite_SOURCES = tests/test_contact_list.c src/contact_list.c src/contact.c \
|
||||||
tests/test_util.c tests/test_prof_history.c src/prof_history.c src/util.c \
|
tests/test_common.c tests/test_prof_history.c src/prof_history.c src/common.c \
|
||||||
tests/test_prof_autocomplete.c src/prof_autocomplete.c src/common.c tests/testsuite.c
|
tests/test_prof_autocomplete.c src/prof_autocomplete.c tests/testsuite.c
|
||||||
tests_testsuite_LDADD = -lheadunit -lstdc++
|
tests_testsuite_LDADD = -lheadunit -lstdc++
|
||||||
|
|
||||||
man_MANS = docs/profanity.1
|
man_MANS = docs/profanity.1
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
#include "chat_log.h"
|
#include "chat_log.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "util.h"
|
#include "common.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
static GHashTable *logs;
|
static GHashTable *logs;
|
||||||
|
72
src/common.c
72
src/common.c
@ -25,6 +25,9 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
@ -57,3 +60,72 @@ create_dir(char *name)
|
|||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
e = mkdir(name, S_IRWXU);
|
e = mkdir(name, S_IRWXU);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
get_time(char *thetime)
|
||||||
|
{
|
||||||
|
time_t rawtime;
|
||||||
|
struct tm *timeinfo;
|
||||||
|
|
||||||
|
time(&rawtime);
|
||||||
|
timeinfo = localtime(&rawtime);
|
||||||
|
|
||||||
|
strftime(thetime, 80, "%H:%M", timeinfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
str_replace(const char *string, const char *substr,
|
||||||
|
const char *replacement)
|
||||||
|
{
|
||||||
|
char *tok = NULL;
|
||||||
|
char *newstr = NULL;
|
||||||
|
char *oldstr = NULL;
|
||||||
|
char *head = NULL;
|
||||||
|
|
||||||
|
if (string == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if ( substr == NULL ||
|
||||||
|
replacement == NULL ||
|
||||||
|
(strcmp(substr, "") == 0))
|
||||||
|
return strdup (string);
|
||||||
|
|
||||||
|
newstr = strdup (string);
|
||||||
|
head = newstr;
|
||||||
|
|
||||||
|
while ( (tok = strstr ( head, substr ))) {
|
||||||
|
oldstr = newstr;
|
||||||
|
newstr = malloc ( strlen ( oldstr ) - strlen ( substr ) +
|
||||||
|
strlen ( replacement ) + 1 );
|
||||||
|
|
||||||
|
if ( newstr == NULL ) {
|
||||||
|
free (oldstr);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy ( newstr, oldstr, tok - oldstr );
|
||||||
|
memcpy ( newstr + (tok - oldstr), replacement, strlen ( replacement ) );
|
||||||
|
memcpy ( newstr + (tok - oldstr) + strlen( replacement ),
|
||||||
|
tok + strlen ( substr ),
|
||||||
|
strlen ( oldstr ) - strlen ( substr ) - ( tok - oldstr ) );
|
||||||
|
memset ( newstr + strlen ( oldstr ) - strlen ( substr ) +
|
||||||
|
strlen ( replacement ) , 0, 1 );
|
||||||
|
|
||||||
|
head = newstr + (tok - oldstr) + strlen( replacement );
|
||||||
|
free (oldstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return newstr;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
str_contains(char str[], int size, char ch)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < size; i++) {
|
||||||
|
if (str[i] == ch)
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@ -54,5 +54,9 @@ typedef enum {
|
|||||||
void p_slist_free_full(GSList *items, GDestroyNotify free_func);
|
void p_slist_free_full(GSList *items, GDestroyNotify free_func);
|
||||||
void create_config_directory(void);
|
void create_config_directory(void);
|
||||||
void create_dir(char *name);
|
void create_dir(char *name);
|
||||||
|
void get_time(char *thetime);
|
||||||
|
char * str_replace(const char *string, const char *substr,
|
||||||
|
const char *replacement);
|
||||||
|
int str_contains(char str[], int size, char ch);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -29,14 +29,12 @@
|
|||||||
#include "contact.h"
|
#include "contact.h"
|
||||||
#include "contact_list.h"
|
#include "contact_list.h"
|
||||||
#include "prof_autocomplete.h"
|
#include "prof_autocomplete.h"
|
||||||
#include "log.h"
|
|
||||||
|
|
||||||
static PAutocomplete ac;
|
static PAutocomplete ac;
|
||||||
|
|
||||||
void
|
void
|
||||||
contact_list_init(void)
|
contact_list_init(void)
|
||||||
{
|
{
|
||||||
log_msg(PROF_LEVEL_INFO, "prof", "Initialising contact list");
|
|
||||||
ac = p_obj_autocomplete_new((PStrFunc)p_contact_name,
|
ac = p_obj_autocomplete_new((PStrFunc)p_contact_name,
|
||||||
(PCopyFunc)p_contact_copy,
|
(PCopyFunc)p_contact_copy,
|
||||||
(PEqualDeepFunc)p_contacts_equal_deep,
|
(PEqualDeepFunc)p_contacts_equal_deep,
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "history.h"
|
#include "history.h"
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
#include "util.h"
|
#include "common.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
|
|
||||||
static WINDOW *inp_win;
|
static WINDOW *inp_win;
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#include "chat_log.h"
|
#include "chat_log.h"
|
||||||
#include "contact_list.h"
|
#include "contact_list.h"
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "util.h"
|
#include "common.h"
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
|
|
||||||
#define PING_INTERVAL 120000 // 2 minutes
|
#define PING_INTERVAL 120000 // 2 minutes
|
||||||
|
@ -86,6 +86,7 @@ profanity_init(const int disable_tls, char *log_level)
|
|||||||
gui_init();
|
gui_init();
|
||||||
jabber_init(disable_tls);
|
jabber_init(disable_tls);
|
||||||
cmd_init();
|
cmd_init();
|
||||||
|
log_msg(PROF_LEVEL_INFO, "prof", "Initialising contact list");
|
||||||
contact_list_init();
|
contact_list_init();
|
||||||
atexit(_profanity_shutdown);
|
atexit(_profanity_shutdown);
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
|
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "util.h"
|
#include "common.h"
|
||||||
|
|
||||||
static WINDOW *status_bar;
|
static WINDOW *status_bar;
|
||||||
static char *message = NULL;
|
static char *message = NULL;
|
||||||
|
95
src/util.c
95
src/util.c
@ -1,95 +0,0 @@
|
|||||||
/*
|
|
||||||
* util.c
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 James Booth <boothj5@gmail.com>
|
|
||||||
*
|
|
||||||
* This file is part of Profanity.
|
|
||||||
*
|
|
||||||
* Profanity 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 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Profanity 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 Profanity. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <time.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
void
|
|
||||||
get_time(char *thetime)
|
|
||||||
{
|
|
||||||
time_t rawtime;
|
|
||||||
struct tm *timeinfo;
|
|
||||||
|
|
||||||
time(&rawtime);
|
|
||||||
timeinfo = localtime(&rawtime);
|
|
||||||
|
|
||||||
strftime(thetime, 80, "%H:%M", timeinfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
str_replace (const char *string, const char *substr,
|
|
||||||
const char *replacement)
|
|
||||||
{
|
|
||||||
char *tok = NULL;
|
|
||||||
char *newstr = NULL;
|
|
||||||
char *oldstr = NULL;
|
|
||||||
char *head = NULL;
|
|
||||||
|
|
||||||
if (string == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if ( substr == NULL ||
|
|
||||||
replacement == NULL ||
|
|
||||||
(strcmp(substr, "") == 0))
|
|
||||||
return strdup (string);
|
|
||||||
|
|
||||||
newstr = strdup (string);
|
|
||||||
head = newstr;
|
|
||||||
|
|
||||||
while ( (tok = strstr ( head, substr ))) {
|
|
||||||
oldstr = newstr;
|
|
||||||
newstr = malloc ( strlen ( oldstr ) - strlen ( substr ) +
|
|
||||||
strlen ( replacement ) + 1 );
|
|
||||||
|
|
||||||
if ( newstr == NULL ) {
|
|
||||||
free (oldstr);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy ( newstr, oldstr, tok - oldstr );
|
|
||||||
memcpy ( newstr + (tok - oldstr), replacement, strlen ( replacement ) );
|
|
||||||
memcpy ( newstr + (tok - oldstr) + strlen( replacement ),
|
|
||||||
tok + strlen ( substr ),
|
|
||||||
strlen ( oldstr ) - strlen ( substr ) - ( tok - oldstr ) );
|
|
||||||
memset ( newstr + strlen ( oldstr ) - strlen ( substr ) +
|
|
||||||
strlen ( replacement ) , 0, 1 );
|
|
||||||
|
|
||||||
head = newstr + (tok - oldstr) + strlen( replacement );
|
|
||||||
free (oldstr);
|
|
||||||
}
|
|
||||||
|
|
||||||
return newstr;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
str_contains(char str[], int size, char ch)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < size; i++) {
|
|
||||||
if (str[i] == ch)
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
31
src/util.h
31
src/util.h
@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
* util.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 James Booth <boothj5@gmail.com>
|
|
||||||
*
|
|
||||||
* This file is part of Profanity.
|
|
||||||
*
|
|
||||||
* Profanity 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 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Profanity 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 Profanity. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef UTIL_H
|
|
||||||
#define UTIL_H
|
|
||||||
|
|
||||||
void get_time(char *thetime);
|
|
||||||
char * str_replace(const char *string, const char *substr,
|
|
||||||
const char *replacement);
|
|
||||||
int str_contains(char str[], int size, char ch);
|
|
||||||
|
|
||||||
#endif
|
|
@ -31,7 +31,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "util.h"
|
#include "common.h"
|
||||||
#include "contact.h"
|
#include "contact.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <head-unit.h>
|
#include <head-unit.h>
|
||||||
#include "util.h"
|
#include "common.h"
|
||||||
|
|
||||||
void replace_one_substr(void)
|
void replace_one_substr(void)
|
||||||
{
|
{
|
||||||
@ -146,9 +146,9 @@ void replace_when_new_null(void)
|
|||||||
assert_string_equals("hello", result);
|
assert_string_equals("hello", result);
|
||||||
}
|
}
|
||||||
|
|
||||||
void register_util_tests(void)
|
void register_common_tests(void)
|
||||||
{
|
{
|
||||||
TEST_MODULE("util tests");
|
TEST_MODULE("common tests");
|
||||||
TEST(replace_one_substr);
|
TEST(replace_one_substr);
|
||||||
TEST(replace_one_substr_beginning);
|
TEST(replace_one_substr_beginning);
|
||||||
TEST(replace_one_substr_end);
|
TEST(replace_one_substr_end);
|
@ -5,7 +5,7 @@ int main(void)
|
|||||||
{
|
{
|
||||||
register_prof_history_tests();
|
register_prof_history_tests();
|
||||||
register_contact_list_tests();
|
register_contact_list_tests();
|
||||||
register_util_tests();
|
register_common_tests();
|
||||||
register_prof_autocomplete_tests();
|
register_prof_autocomplete_tests();
|
||||||
run_suite();
|
run_suite();
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
void register_prof_history_tests(void);
|
void register_prof_history_tests(void);
|
||||||
void register_contact_list_tests(void);
|
void register_contact_list_tests(void);
|
||||||
void register_util_tests(void);
|
void register_common_tests(void);
|
||||||
void register_prof_autocomplete_tests(void);
|
void register_prof_autocomplete_tests(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user