Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
3f279971c5 | |||
e7101ebcae | |||
f64d1c847a | |||
116a394ef6 | |||
ebc40fe9c7 | |||
c0aa47c7a1 | |||
f38261f666 | |||
2a81b98e7b | |||
bb8f0beabe | |||
adea019820 |
@ -1,6 +1,6 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_INIT([HexChat],[2.12.2])
|
||||
AC_INIT([HexChat],[2.12.3])
|
||||
|
||||
AC_PREREQ([2.64])
|
||||
AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
|
||||
|
@ -39,7 +39,7 @@
|
||||
#define DH1080_PRIME_BYTES 135
|
||||
#define SHA256_DIGEST_LENGTH 32
|
||||
#define B64ABC "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
||||
#define MEMZERO(x) memset(x, 0x00, (sizeof(x)/sizeof(*x)) )
|
||||
#define MEMZERO(x) memset(x, 0x00, sizeof(x))
|
||||
|
||||
/* All clients must use the same prime number to be able to keyx */
|
||||
static const guchar prime1080[DH1080_PRIME_BYTES] =
|
||||
|
@ -122,7 +122,6 @@ struct tagInfo readID3V1(char *file){
|
||||
char *tag;
|
||||
char *id;
|
||||
char *tmp;
|
||||
tag = (char*) malloc(sizeof(char)*129);
|
||||
ret.artist=NULL;
|
||||
f=fopen(file,"rb");
|
||||
if (f==NULL){
|
||||
@ -133,18 +132,21 @@ struct tagInfo readID3V1(char *file){
|
||||
//int offset=getSize(file)-128;
|
||||
res=fseek(f,-128,SEEK_END);
|
||||
if (res!=0) {printf("seek failed\n");fclose(f);return ret;}
|
||||
tag = (char*) malloc(sizeof(char)*129);
|
||||
//long int pos=ftell(f);
|
||||
//printf("position= %li\n",pos);
|
||||
for (i=0;i<128;i++) {
|
||||
c=fgetc(f);
|
||||
if (c==EOF) {hexchat_printf(ph,"read ID3V1 failed\n");fclose(f);return ret;}
|
||||
if (c==EOF) {hexchat_printf(ph,"read ID3V1 failed\n");fclose(f);free(tag);return ret;}
|
||||
tag[i]=(char)c;
|
||||
}
|
||||
fclose(f);
|
||||
//printf("tag readed: \n");
|
||||
id=substring(tag,0,3);
|
||||
//printf("header: %s\n",id);
|
||||
if (strcmp(id,"TAG")!=0){hexchat_printf(ph,"no id3 v1 found\n");return ret;}
|
||||
res=strcmp(id,"TAG");
|
||||
free(id);
|
||||
if (res!=0){hexchat_printf(ph,"no id3 v1 found\n");free(tag);return ret;}
|
||||
ret.title=subString(tag,3,30,1);
|
||||
ret.artist=subString(tag,33,30,1);
|
||||
ret.album=subString(tag,63,30,1);
|
||||
@ -164,6 +166,8 @@ struct tagInfo readID3V1(char *file){
|
||||
//hexchat_printf(ph, "tmp: \"%s\" -> %i",tmp,tmp[0]);
|
||||
//hexchat_printf(ph,"genre \"%s\"",ret.genre);
|
||||
//if (DEBUG==1) putlog("id3v1 extracted");
|
||||
free(tmp);
|
||||
free(tag);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ struct tagInfo getOggHeader(char *file){
|
||||
char *sub;
|
||||
char *name;
|
||||
char *val;
|
||||
char *HEADLOC1, *HEADLOC3, *HEADLOC5;
|
||||
char HEADLOC1[]="_vorbis", HEADLOC3[]="_vorbis", HEADLOC5[]="_vorbis";
|
||||
FILE *f;
|
||||
struct tagInfo info;
|
||||
|
||||
@ -62,11 +62,8 @@ struct tagInfo getOggHeader(char *file){
|
||||
|
||||
for (i=0;i<4095;i++) {c=fgetc(f);header[i]=(char)c;}
|
||||
fclose(f);
|
||||
HEADLOC1="_vorbis";
|
||||
HEADLOC1[0]=1;
|
||||
HEADLOC3="_vorbis";
|
||||
HEADLOC3[0]=3;
|
||||
HEADLOC5="_vorbis";
|
||||
HEADLOC5[0]=5;
|
||||
h1pos=inStr(header,4096,HEADLOC1);
|
||||
h3pos=inStr(header,4096,HEADLOC3);
|
||||
@ -104,6 +101,7 @@ struct tagInfo getOggHeader(char *file){
|
||||
if (strcmp(name,"GENRE")==0) info.genre=val;
|
||||
if (strcmp(name,"COMMENT")==0) info.comment=val;
|
||||
pos+=4+tagLen;
|
||||
free(name);
|
||||
}
|
||||
if (info.artist==NULL) info.artist="";
|
||||
if (info.album==NULL) info.album ="";
|
||||
|
@ -91,13 +91,15 @@ struct theme themeAdd(struct theme data, char *info){
|
||||
}
|
||||
|
||||
void loadThemes(){
|
||||
char *hDir, *hFile, *line, *val;
|
||||
char *hDir, *hFile, *line, *lineCap, *val;
|
||||
FILE *f;
|
||||
hexchat_print(ph,"loading themes\n");
|
||||
hDir=(char*)calloc(1024,sizeof(char));
|
||||
strcpy(hDir,hexchat_get_info(ph,"configdir"));
|
||||
hFile=str3cat(hDir,"\\","mpcInfo.theme.txt");
|
||||
f = fopen(hFile,"r");
|
||||
free(hDir);
|
||||
free(hFile);
|
||||
if(f==NULL)
|
||||
{
|
||||
hexchat_print(ph,"no theme in homedir, checking global theme");
|
||||
@ -120,10 +122,12 @@ void loadThemes(){
|
||||
val=split(line,'=');
|
||||
printf("line: %s\n",line);
|
||||
printf("val: %s\n",val);
|
||||
if (strcmp(toUpper(line),"OFF_LINE")==0) notRunTheme=themeAdd(notRunTheme,val);
|
||||
if (strcmp(toUpper(line),"TITLE_LINE")==0) titleTheme=themeAdd(titleTheme,val);
|
||||
if (strcmp(toUpper(line),"MP3_LINE")==0) mp3Theme=themeAdd(mp3Theme,val);
|
||||
if (strcmp(toUpper(line),"OGG_LINE")==0) mp3Theme=themeAdd(oggTheme,val);
|
||||
lineCap=toUpper(line);
|
||||
if (strcmp(lineCap,"OFF_LINE")==0) notRunTheme=themeAdd(notRunTheme,val);
|
||||
if (strcmp(lineCap,"TITLE_LINE")==0) titleTheme=themeAdd(titleTheme,val);
|
||||
if (strcmp(lineCap,"MP3_LINE")==0) mp3Theme=themeAdd(mp3Theme,val);
|
||||
if (strcmp(lineCap,"OGG_LINE")==0) mp3Theme=themeAdd(oggTheme,val);
|
||||
free(lineCap);
|
||||
}
|
||||
fclose(f);
|
||||
hexchat_print(ph, "theme loaded successfull\n");
|
||||
|
@ -208,8 +208,6 @@ get_filename (char *word[], char *word_eol[])
|
||||
int len;
|
||||
char *file;
|
||||
|
||||
len = strlen (word[2]);
|
||||
|
||||
/* if called as /load "filename.pl" the only difference between word and
|
||||
* word_eol will be the two quotes
|
||||
*/
|
||||
|
12
po/es.po
12
po/es.po
@ -6,7 +6,7 @@
|
||||
# bviktor, 2012
|
||||
# bviktor, 2012
|
||||
# Gato Loko, 2016
|
||||
# Pedro Alejandro López-Valencia <palopezv@gmail.com>, 2016
|
||||
# Pedro A. López-Valencia <palopezv@gmail.com>, 2016
|
||||
# Víctor <vegadark89@gmail.com>, 2013-2014
|
||||
# Víctor <vegadark89@gmail.com>, 2012-2013
|
||||
# Víctor <vegadark89@gmail.com>, 2014-2016
|
||||
@ -16,8 +16,8 @@ msgstr ""
|
||||
"Project-Id-Version: HexChat\n"
|
||||
"Report-Msgid-Bugs-To: www.hexchat.org\n"
|
||||
"POT-Creation-Date: 2016-10-08 15:09-0400\n"
|
||||
"PO-Revision-Date: 2016-10-08 19:09+0000\n"
|
||||
"Last-Translator: TingPing <tingping@tingping.se>\n"
|
||||
"PO-Revision-Date: 2016-10-08 20:54+0000\n"
|
||||
"Last-Translator: Gato Loko\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/hexchat/hexchat/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -40,7 +40,7 @@ msgstr "HexChat soporta características como: DCC, SASL, proxies, autocorrector
|
||||
|
||||
#: ../data/misc/hexchat.appdata.xml.in.h:3
|
||||
msgid "Main Chat Window"
|
||||
msgstr ""
|
||||
msgstr "Ventana principal de conversación"
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:1
|
||||
msgid "HexChat"
|
||||
@ -970,7 +970,7 @@ msgstr "%C29*%O$tCapacidades admitidas: %C29$2%O"
|
||||
|
||||
#: ../src/common/textevents.h:21
|
||||
msgid "%C29*%O$tCapabilities removed: %C29$2%O"
|
||||
msgstr "%C29*%O$Capacidades removidas: %C29$2%O"
|
||||
msgstr "%C29*%O$tCapacidades removidas: %C29$2%O"
|
||||
|
||||
#: ../src/common/textevents.h:24
|
||||
msgid "%C23*%O$tCapabilities supported: %C29$2%O"
|
||||
@ -4672,7 +4672,7 @@ msgstr "El nombre de usuario no puede estar en blanco."
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1578
|
||||
msgid "You cannot have an empty nick name."
|
||||
msgstr ""
|
||||
msgstr "No puede tener un nick en blanco."
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1585
|
||||
msgid "You must have two unique nick names."
|
||||
|
11
po/nb.po
11
po/nb.po
@ -8,7 +8,8 @@
|
||||
# Johnny A. Solbu <transifex@solbu.net>, 2015
|
||||
# Xtreme Power <neethan98@hotmail.ca>, 2013
|
||||
# pere <pere-transifex@hungry.com>, 2016
|
||||
# Thor K. H. <nitrolinken@gmail.com>, 2013,2015
|
||||
# pere <pere-transifex@hungry.com>, 2016
|
||||
# Thor K. H. <nitrolinken@gmail.com>, 2012-2013,2015
|
||||
# Thor K. H. <nitrolinken@gmail.com>, 2012-2013
|
||||
# Xtreme Power <neethan98@hotmail.ca>, 2013
|
||||
msgid ""
|
||||
@ -16,8 +17,8 @@ msgstr ""
|
||||
"Project-Id-Version: HexChat\n"
|
||||
"Report-Msgid-Bugs-To: www.hexchat.org\n"
|
||||
"POT-Creation-Date: 2016-10-08 15:09-0400\n"
|
||||
"PO-Revision-Date: 2016-10-08 19:09+0000\n"
|
||||
"Last-Translator: TingPing <tingping@tingping.se>\n"
|
||||
"PO-Revision-Date: 2016-10-08 19:59+0000\n"
|
||||
"Last-Translator: Johnny A. Solbu <transifex@solbu.net>\n"
|
||||
"Language-Team: Norwegian Bokmål (http://www.transifex.com/hexchat/hexchat/language/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -40,7 +41,7 @@ msgstr "HexChat støtter funksjoner som: DCC, SASL, mellomtjenere, stavekontroll
|
||||
|
||||
#: ../data/misc/hexchat.appdata.xml.in.h:3
|
||||
msgid "Main Chat Window"
|
||||
msgstr ""
|
||||
msgstr "Hovedvinduet "
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:1
|
||||
msgid "HexChat"
|
||||
@ -4672,7 +4673,7 @@ msgstr "Brukernavn kan ikke være tomt."
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1578
|
||||
msgid "You cannot have an empty nick name."
|
||||
msgstr ""
|
||||
msgstr "Du kan ikke ha et tomt kallenavn."
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1585
|
||||
msgid "You must have two unique nick names."
|
||||
|
14
po/sq.po
14
po/sq.po
@ -12,8 +12,8 @@ msgstr ""
|
||||
"Project-Id-Version: HexChat\n"
|
||||
"Report-Msgid-Bugs-To: www.hexchat.org\n"
|
||||
"POT-Creation-Date: 2016-10-08 15:09-0400\n"
|
||||
"PO-Revision-Date: 2016-10-08 19:09+0000\n"
|
||||
"Last-Translator: TingPing <tingping@tingping.se>\n"
|
||||
"PO-Revision-Date: 2016-10-09 09:37+0000\n"
|
||||
"Last-Translator: Besnik <besnik@programeshqip.org>\n"
|
||||
"Language-Team: Albanian (http://www.transifex.com/hexchat/hexchat/language/sq/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -36,7 +36,7 @@ msgstr "HexChat-i mbulon veçori të tilla si: DCC, SASL, ndërmjetës, drejtshk
|
||||
|
||||
#: ../data/misc/hexchat.appdata.xml.in.h:3
|
||||
msgid "Main Chat Window"
|
||||
msgstr ""
|
||||
msgstr "Dritarja Kryesore e Fjalosjeve"
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:1
|
||||
msgid "HexChat"
|
||||
@ -74,15 +74,15 @@ msgstr "Po dilet"
|
||||
|
||||
#: ../src/common/chanopt.c:79
|
||||
msgid "OFF"
|
||||
msgstr ""
|
||||
msgstr "OFF"
|
||||
|
||||
#: ../src/common/chanopt.c:81
|
||||
msgid "ON"
|
||||
msgstr ""
|
||||
msgstr "ON"
|
||||
|
||||
#: ../src/common/chanopt.c:83
|
||||
msgid "{unset}"
|
||||
msgstr ""
|
||||
msgstr "{e parregulluar}"
|
||||
|
||||
#: ../src/common/chanopt.c:128 ../src/common/text.c:1314
|
||||
#: ../src/fe-gtk/notifygui.c:125 ../src/fe-gtk/setup.c:1877
|
||||
@ -4668,7 +4668,7 @@ msgstr "Emri i përdoruesit nuk mund të lihet i zbrazët."
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1578
|
||||
msgid "You cannot have an empty nick name."
|
||||
msgstr ""
|
||||
msgstr "S’mund të keni një nofkë të zbrazët."
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1585
|
||||
msgid "You must have two unique nick names."
|
||||
|
@ -829,6 +829,7 @@ load_default_config(void)
|
||||
prefs.hex_gui_win_width = 640;
|
||||
prefs.hex_irc_ban_type = 1;
|
||||
prefs.hex_irc_join_delay = 5;
|
||||
prefs.hex_net_ping_timeout = 60;
|
||||
prefs.hex_net_reconnect_delay = 10;
|
||||
prefs.hex_notify_timeout = 15;
|
||||
prefs.hex_text_max_indent = 256;
|
||||
|
@ -1337,6 +1337,33 @@ cmd_menu (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static int
|
||||
mhop_cb (struct User *user, multidata *data)
|
||||
{
|
||||
if (!user->hop)
|
||||
{
|
||||
data->nicks[data->i] = user->nick;
|
||||
data->i++;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static int
|
||||
cmd_mhop (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||
{
|
||||
char **nicks = g_new0 (char *, sess->total - sess->hops);
|
||||
multidata data;
|
||||
|
||||
data.nicks = nicks;
|
||||
data.i = 0;
|
||||
tree_foreach (sess->usertree, (tree_traverse_func *)mhop_cb, &data);
|
||||
send_channel_modes (sess, tbuf, nicks, 0, data.i, '+', 'h', 0);
|
||||
|
||||
g_free (nicks);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static int
|
||||
mkick_cb (struct User *user, multidata *data)
|
||||
{
|
||||
@ -3970,6 +3997,8 @@ const struct commands xc_cmds[] = {
|
||||
N_("ME <action>, sends the action to the current channel (actions are written in the 3rd person, like /me jumps)")},
|
||||
{"MENU", cmd_menu, 0, 0, 1, "MENU [-eX] [-i<ICONFILE>] [-k<mod>,<key>] [-m] [-pX] [-r<X,group>] [-tX] {ADD|DEL} <path> [command] [unselect command]\n"
|
||||
" See http://hexchat.readthedocs.org/en/latest/plugins.html#controlling-the-gui for more details."},
|
||||
{"MHOP", cmd_mhop, 1, 1, 1,
|
||||
N_("MHOP, Mass hop's all users in the current channel (needs chanop)")},
|
||||
{"MKICK", cmd_mkick, 1, 1, 1,
|
||||
N_("MKICK, Mass kicks everyone except you in the current channel (needs chanop)")},
|
||||
{"MODE", cmd_mode, 1, 0, 1, 0},
|
||||
|
@ -1517,27 +1517,38 @@ void
|
||||
pevent_make_pntevts (void)
|
||||
{
|
||||
int i, m;
|
||||
char out[1024];
|
||||
|
||||
for (i = 0; i < NUM_XP; i++)
|
||||
{
|
||||
g_free (pntevts[i]);
|
||||
if (pevt_build_string (pntevts_text[i], &(pntevts[i]), &m) != 0)
|
||||
{
|
||||
g_snprintf (out, sizeof (out),
|
||||
_("Error parsing event %s.\nLoading default."), te[i].name);
|
||||
fe_message (out, FE_MSG_WARN);
|
||||
g_free (pntevts_text[i]);
|
||||
/* make-te.c sets this 128 flag (DON'T call gettext() flag) */
|
||||
if (te[i].num_args & 128)
|
||||
pntevts_text[i] = g_strdup (te[i].def);
|
||||
else
|
||||
const gboolean translate = !(te[i].num_args & 128);
|
||||
|
||||
g_warning ("Error parsing event %s\nLoading default.", te[i].name);
|
||||
g_free (pntevts_text[i]);
|
||||
|
||||
if (translate)
|
||||
pntevts_text[i] = g_strdup (_(te[i].def));
|
||||
if (pevt_build_string (pntevts_text[i], &(pntevts[i]), &m) != 0)
|
||||
else
|
||||
pntevts_text[i] = g_strdup (te[i].def);
|
||||
|
||||
if (pevt_build_string (pntevts_text[i], &(pntevts[i]), &m) != 0 && !translate)
|
||||
{
|
||||
fprintf (stderr,
|
||||
"HexChat CRITICAL *** default event text failed to build!\n");
|
||||
abort ();
|
||||
g_error ("HexChat CRITICAL *** default event text failed to build!");
|
||||
}
|
||||
else
|
||||
{
|
||||
g_warning ("Error parsing translated event %s\nLoading untranslated.", te[i].name);
|
||||
g_free (pntevts_text[i]);
|
||||
|
||||
pntevts_text[i] = g_strdup (te[i].def);
|
||||
|
||||
if (pevt_build_string (pntevts_text[i], &(pntevts[i]), &m) != 0)
|
||||
{
|
||||
g_error ("HexChat CRITICAL *** default event text failed to build!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
2.12.1-2
|
||||
2.12.2
|
Reference in New Issue
Block a user