ekg2
GIT master
Strona główna
Dodatkowe strony
Moduły
Struktury Danych
Pliki
Lista plików
Globalne
All
Struktury Danych
Pliki
Funkcje
Zmienne
Definicje typów
Wyliczenia
Wartości wyliczeń
Definicje
Grupay
Strony
ekg
stuff.h
Idź do dokumentacji tego pliku.
1
/* $Id$ */
2
3
/*
4
* (C) Copyright 2001-2003 Wojtek Kaniewski <wojtekka@irc.pl>
5
* Robert J. Woźny <speedy@ziew.org>
6
* Paweł Maziarz <drg@go2.pl>
7
* Dawid Jarosz <dawjar@poczta.onet.pl>
8
* Piotr Domagalski <szalik@szalik.net>
9
* Adam Mikuta <adammikuta@poczta.onet.pl>
10
*
11
* This program is free software; you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License Version 2 as
13
* published by the Free Software Foundation.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the GNU General Public License
21
* along with this program; if not, write to the Free Software
22
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23
*/
24
25
#ifndef __EKG_STUFF_H
26
#define __EKG_STUFF_H
27
28
#include <glib.h>
29
30
#include <sys/types.h>
31
#include <sys/time.h>
32
33
#include "
win32.h
"
34
35
#ifndef NO_POSIX_SYSTEM
36
#include <sys/socket.h>
37
#include <netinet/in.h>
38
#endif
39
40
#include <ctype.h>
41
#include <stdarg.h>
42
#include <stdio.h>
43
#include <stdbool.h>
44
#include <time.h>
45
46
#include "
dynstuff.h
"
47
#include "
plugins.h
"
48
#include "
sessions.h
"
49
#include "
userlist.h
"
50
#include "
vars.h
"
51
52
#ifdef __cplusplus
53
extern
"C"
{
54
#endif
55
56
#define DEBUG_MAX_LINES 50
/* ile linii z debug zrzucać do pliku */
57
58
/* obsługa procesów potomnych */
59
60
#ifndef EKG2_WIN32_NOFUNCTION
61
typedef
struct
alias
{
62
struct
alias
*
next
;
63
64
char
*
name
;
/* nazwa aliasu */
65
list_t
commands
;
/* commands->data to (char*) */
66
}
alias_t
;
67
#endif
68
69
enum
mesg_t
{
70
MESG_CHECK
= -1,
71
MESG_OFF
,
72
MESG_ON
,
73
MESG_DEFAULT
74
};
75
76
struct
conference
{
77
struct
conference
*
next
;
78
79
char
*
name
;
80
ignore_t
ignore
;
81
list_t
recipients
;
82
};
83
84
typedef
struct
newconference
{
85
struct
newconference
*
next
;
86
87
char
*
session
;
88
char
*
name
;
89
struct
userlist
*
participants
;
90
void
*
priv_data
;
91
}
newconference_t
;
92
93
struct
buffer
{
94
struct
buffer
*
next
;
95
96
time_t
ts
;
97
char
*
target
;
98
char
*
line
;
99
};
100
101
struct
buffer_info
{
102
struct
buffer
*
data
;
103
int
count
;
104
int
max_lines
;
105
struct
buffer
*
last
;
/* fast access to last element, esp. for log_raw */
106
};
107
108
struct
color_map
{
109
int
color
;
110
unsigned
char
r
,
g
,
b
;
111
};
112
113
#ifndef EKG2_WIN32_NOFUNCTION
114
extern
alias_t
*
aliases
;
115
extern
list_t
autofinds
;
/* char* data */
116
extern
struct
conference
*
conferences
;
117
extern
newconference_t
*
newconferences
;
118
extern
struct
buffer_info
buffer_debug
;
119
extern
struct
buffer_info
buffer_speech
;
120
121
extern
char
*
config_profile
;
122
extern
int
config_changed
;
123
extern
int
ekg2_reason_changed
;
124
125
extern
pid_t
speech_pid
;
126
127
extern
int
no_mouse
;
128
129
extern
int
old_stderr
;
130
extern
int
mesg_startup
;
131
132
extern
char
*
config_away_reason
;
133
extern
int
config_auto_save
;
134
extern
int
config_auto_user_add
;
135
extern
char
*
config_back_reason
;
136
extern
int
config_beep
;
137
extern
int
config_beep_msg
;
138
extern
int
config_beep_chat
;
139
extern
int
config_beep_notify
;
140
extern
int
config_completion_notify
;
141
extern
char
*
config_completion_char
;
142
extern
int
config_debug
;
143
extern
int
config_default_status_window
;
144
extern
int
config_display_ack
;
145
extern
int
config_display_blinking
;
146
extern
int
config_display_color
;
147
extern
char
*
config_display_color_map
;
148
extern
int
config_display_crap
;
149
extern
int
config_display_day_changed
;
150
extern
int
config_display_notify
;
151
extern
int
config_display_sent
;
152
extern
int
config_display_welcome
;
153
extern
int
config_emoticons
;
154
extern
int
config_events_delay
;
155
extern
int
config_expert_mode
;
156
extern
int
config_history_savedups
;
157
extern
int
config_keep_reason
;
158
extern
int
config_last
;
159
extern
int
config_last_size
;
160
extern
int
config_make_window
;
161
extern
int
config_mesg
;
162
extern
int
config_query_commands
;
163
extern
int
config_slash_messages
;
164
extern
char
*
config_quit_reason
;
165
extern
int
config_save_password
;
166
extern
int
config_save_quit
;
167
extern
char
*
config_session_default
;
168
extern
int
config_sessions_save
;
169
extern
int
config_send_white_lines
;
170
extern
int
config_sort_windows
;
171
extern
char
*
config_sound_app
;
172
extern
char
*
config_sound_chat_file
;
173
extern
char
*
config_sound_msg_file
;
174
extern
char
*
config_sound_sysmsg_file
;
175
extern
char
*
config_sound_notify_file
;
176
extern
char
*
config_sound_mail_file
;
177
extern
char
*
config_speech_app
;
178
extern
char
*
config_subject_prefix
;
179
extern
char
*
config_subject_reply_prefix
;
180
extern
char
*
config_tab_command
;
181
extern
char
*
config_theme
;
182
extern
int
config_time_deviation
;
183
extern
char
*
config_timestamp
;
184
extern
int
config_timestamp_show
;
185
extern
int
config_window_session_allow
;
186
extern
char
*
config_windows_layout
;
187
extern
int
config_windows_save
;
188
extern
char
*
config_dcc_dir
;
189
extern
int
config_version
;
190
extern
char
*
config_exit_exec
;
191
extern
int
config_session_locks
;
192
extern
char
*
config_nickname
;
193
194
extern
char
*
formated_config_timestamp
;
195
196
extern
char
*
home_dir
;
197
extern
char
*
config_dir
;
198
extern
const
char
*
console_charset
;
199
extern
gboolean
console_charset_is_utf8
;
200
extern
int
in_autoexec
;
201
extern
int
ekg_watches_removed
;
202
extern
time_t
ekg_started
;
203
204
extern
int
quit_message_send
;
205
extern
int
batch_mode
;
206
extern
char
*
batch_line
;
207
extern
struct
color_map
color_map_default
[16+10];
208
209
void
windows_save
();
210
211
int
alias_add
(
const
char
*
string
,
int
quiet,
int
append);
212
int
alias_remove
(
const
char
*
name
,
int
quiet);
213
void
aliases_destroy
();
214
215
char
*
base64_encode
(
const
char
*buf,
size_t
len);
216
char
*
base64_decode
(
const
char
*buf);
217
218
int
buffer_add
(
struct
buffer_info
*type,
const
char
*target,
const
char
*
line
);
219
int
buffer_add_str
(
struct
buffer_info
*type,
const
char
*target,
const
char
*str);
220
char
*
buffer_tail
(
struct
buffer_info
*type);
221
void
buffer_free
(
struct
buffer_info
*type);
222
223
void
changed_auto_save
(
const
char
*var);
224
void
changed_display_blinking
(
const
char
*var);
225
void
changed_make_window
(
const
char
*var);
226
void
changed_mesg
(
const
char
*var);
227
void
changed_theme
(
const
char
*var);
228
void
changed_config_timestamp
(
const
char
*var);
229
230
const
char
*
compile_time
();
231
232
struct
conference
*
conference_add
(
session_t
*session,
const
char
*
string
,
const
char
*nicklist,
int
quiet);
233
int
conference_remove
(
const
char
*
name
,
int
quiet);
234
struct
conference
*
conference_create
(
session_t
*session,
const
char
*nicks);
235
struct
conference
*
conference_find
(
const
char
*
name
);
236
struct
conference
*
conference_find_by_uids
(
session_t
*s,
const
char
*from,
const
char
**
recipients
,
int
count,
int
quiet);
237
int
conference_set_ignore
(
const
char
*
name
,
int
flag,
int
quiet);
238
int
conference_rename
(
const
char
*oldname,
const
char
*newname,
int
quiet);
239
int
conference_participant
(
struct
conference
*c,
const
char
*uid);
240
void
conferences_destroy
();
241
242
/* BEGIN OF newconference API HERE */
243
userlist_t
*
newconference_member_add
(
newconference_t
*conf,
const
char
*uid,
const
char
*nick);
244
userlist_t
*
newconference_member_find
(
newconference_t
*conf,
const
char
*uid);
245
int
newconference_member_remove
(
newconference_t
*conf,
userlist_t
*u);
246
newconference_t
*
newconference_create
(
session_t
*s,
const
char
*
name
,
int
create_wnd);
247
newconference_t
*
newconference_find
(
session_t
*s,
const
char
*
name
);
248
void
newconference_destroy
(
newconference_t
*conf,
int
kill_wnd);
249
void
newconferences_destroy
();
250
/* END of newconference API */
251
252
int
ekg_hash
(
const
char
*
name
);
253
254
GDataInputStream *
help_open
(
const
gchar *
name
,
const
gchar *
plugin
);
255
gchar *
read_line
(GDataInputStream *f);
256
257
int
mesg_set
(
int
what);
258
char
*
strip_spaces
(
char
*
line
);
259
int
strncasecmp_pl
(
const
char
* cs,
const
char
* ct,
size_t
count);
260
int
mkdir_recursive
(
const
char
*pathname,
int
isdir);
261
262
#ifdef __GNUC__
263
char
*
saprintf
(
const
char
*
format
, ...)
__attribute__
((format (printf, 1, 2)));
264
#else
265
char
*
saprintf
(
const
char
*format, ...);
266
#endif
267
268
int
play_sound
(
const
char
*sound_path);
269
270
const
char
*
prepare_path
(
const
char
*filename,
int
do_mkdir);
271
const
char
*
prepare_pathf
(
const
char
*filename, ...);
272
const
char
*
prepare_path_user
(
const
char
*path);
273
char
*
read_file
(FILE *f,
int
alloc);
274
char
*
read_file_utf
(FILE *f,
int
alloc);
275
276
const
char
*
timestamp
(
const
char
*format);
277
const
char
*
timestamp_time
(
const
char
*format, time_t t);
278
char
*
xstrmid
(
const
char
*str,
int
start,
int
length);
279
void
xstrtr
(
char
*text,
char
from,
char
to);
280
char
color_map
(
unsigned
char
r,
unsigned
char
g,
unsigned
char
b);
281
char
*
strcasestr
(
const
char
*haystack,
const
char
*needle);
282
int
msg_all
(
session_t
*s,
const
char
*
function
,
const
char
*what);
283
int
say_it
(
const
char
*str);
284
char
*
split_line
(
char
**ptr);
285
286
int
isalpha_pl
(
unsigned
char
c);
287
/* makra, dzięki którym pozbywamy się warning'ów */
288
#define xisxdigit(c) isxdigit((int) (unsigned char) c)
289
#define xisdigit(c) isdigit((int) (unsigned char) c)
290
#define xisalpha(c) isalpha_pl((int) (unsigned char) c)
291
#define xisalnum(c) isalnum((int) (unsigned char) c)
292
#define xisspace(c) isspace((int) (unsigned char) c)
293
#define xtolower(c) tolower((int) (unsigned char) c)
294
#define xtoupper(c) toupper((int) (unsigned char) c)
295
296
void
ignore_result_helper
(
int
__attribute__
((unused)) dummy, ...);
297
298
#ifdef __GNUC__
299
# define IGNORE_RESULT(X) ignore_result_helper(0, (X))
300
#else
301
# define IGNORE_RESULT(X) (X)
302
#endif
303
304
const
char
*
ekg_status_label
(
const
int
status,
const
char
*descr,
const
char
*prefix);
305
void
ekg_update_status
(
session_t
*session);
306
#define ekg_update_status_n(a) ekg_update_status(session_find(a))
307
const
char
*
ekg_status_string
(
const
int
status,
const
int
cmd);
308
int
ekg_status_int
(
const
char
*text);
309
310
char
*
ekg_draw_descr
(
const
int
status);
311
guint32 *
ekg_sent_message_format
(
const
char
*text);
312
313
void
ekg_yield_cpu
();
314
315
/* recode.c XXX, przeniesc do recode.h */
316
void
*
ekg_convert_string_init
(
const
char
*from,
const
char
*to,
void
**rev);
317
void
ekg_convert_string_destroy
(
void
*ptr);
318
char
*
ekg_convert_string_p
(
const
char
*ps,
void
*ptr);
319
char
*
ekg_convert_string
(
const
char
*ps,
const
char
*from,
const
char
*to);
320
string_t
ekg_convert_string_t_p
(
string_t
s,
void
*ptr);
321
string_t
ekg_convert_string_t
(
string_t
s,
const
char
*from,
const
char
*to);
322
int
ekg_converters_display
(
int
quiet);
323
324
char
*
password_input
(
const
char
*prompt,
const
char
*rprompt,
const
bool
norepeat);
325
int
is_utf8_string
(
const
char
*txt);
326
327
void
variable_display
(
variable_t
*v,
int
quiet);
328
int
session_variable_display
(
session_t
*s,
const
char
*
name
,
int
quiet);
329
void
session_variable_info
(
session_t
*s,
const
char
*
name
,
int
quiet);
330
331
/* funkcje poza stuff.c */
332
void
ekg_exit
();
333
void
ekg_debug_handler
(
int
level,
const
char
*format, va_list ap);
334
335
int
ekg_close
(
int
fd);
336
int
ekg_write
(
int
fd,
const
char
*buf,
int
len);
337
int
ekg_writef
(
int
fd,
const
char
*format, ...);
338
339
#endif
340
341
#ifdef __cplusplus
342
}
343
#endif
344
345
#endif
/* __EKG_STUFF_H */
346
347
/*
348
* Local Variables:
349
* mode: c
350
* c-file-style: "k&r"
351
* c-basic-offset: 8
352
* indent-tabs-mode: t
353
* End:
354
*/
Wygenerowano Wt, 29 paź 2013 20:17:04 dla ekg2 programem
1.8.4