void
table_send(struct userNode *from, const char *to, unsigned int size, irc_send_func irc_send, struct helpfile_table table) {
unsigned int ii, jj, len, nreps, reps, tot_width, pos, spaces, *max_width;
char line[MAX_LINE_SIZE+1];
struct handle_info *hi;
void
table_send(struct userNode *from, const char *to, unsigned int size, irc_send_func irc_send, struct helpfile_table table) {
unsigned int ii, jj, len, nreps, reps, tot_width, pos, spaces, *max_width;
char line[MAX_LINE_SIZE+1];
struct handle_info *hi;
for (pos=ii=0; ii<((table.flags & TABLE_REPEAT_HEADERS)?nreps:1); ii++) {
for (jj=0; 1; ) {
len = strlen(table.contents[0][jj]);
for (pos=ii=0; ii<((table.flags & TABLE_REPEAT_HEADERS)?nreps:1); ii++) {
for (jj=0; 1; ) {
len = strlen(table.contents[0][jj]);
+ sepsize = strlen_vis(line);
+ sepstr = malloc(sepsize + 1);
+ memset(sepstr, '-', sepsize);
+ sepstr[sepsize] = 0;
+ irc_send(from, to, sepstr);
+ if (!(table.flags & TABLE_NO_HEADERS)) {
+ /* Send end bar & free its memory */
+ if(sepsize > 5)
+ {
+ sepstr[sepsize/2-1] = 'E';
+ sepstr[sepsize/2] = 'n';
+ sepstr[sepsize/2+1]= 'd';
+ }
+ irc_send(from, to, sepstr);
+ free(sepstr);
+ }
+
if (!(table.flags & TABLE_NO_FREE)) {
/* Deallocate table memory (but not the string memory). */
for (ii=0; ii<table.length; ii++)
if (!(table.flags & TABLE_NO_FREE)) {
/* Deallocate table memory (but not the string memory). */
for (ii=0; ii<table.length; ii++)
int
_send_help_breef(struct userNode *dest, struct userNode *src, expand_func_t expand, const char *format, ...)
{
int
_send_help_breef(struct userNode *dest, struct userNode *src, expand_func_t expand, const char *format, ...)
{
va_start(ap, buf);
res = vsend_message(dest->nick, src, dest->handle_info, 12, expand, buf, ap);
va_end(ap);
free(buf);
return res;
}
va_start(ap, buf);
res = vsend_message(dest->nick, src, dest->handle_info, 12, expand, buf, ap);
va_end(ap);
free(buf);
return res;
}
continue;
rec = dict_find(lang_hf->db, topic, NULL);
if (rec && rec->type == RECDB_QSTRING)
continue;
rec = dict_find(lang_hf->db, topic, NULL);
if (rec && rec->type == RECDB_QSTRING)
- return _send_help_breef(dest, src, hf->expand, rec->d.qstring);
+ {
+ char* buf;
+ int res;
+
+ buf = malloc(strlen(rec->d.qstring) + 1);
+ strcpy(buf, rec->d.qstring);
+ *strchr(buf, '\n') = 0;
+
+ res = _send_help(dest, src, hf->expand, buf);
+ free(buf);
+ return res;
+ }