comparison src/protocols/toc/toc.c @ 4793:677d3cb193a1

[gaim-migrate @ 5113] this removes all the remaining deprecated glib, gdk, gdk-pixbuf, and gtk function calls. Hopefully I didn't break anything. Most of this is due to the deprecation of g_strcasecmp and g_strncasecmp. Two functions I never thought would be deprecated, but apparently they're no good at comparing utf8 text. g_ascii_str{,n}casecmp is OK when you're sure that it's ASCII. Otherwise, we're supposed to use g_utf8_collate(), except that it is case sensitive. Since glib doesn't currently have a case-insensitive one, I wrote one. If you need to compare utf8 text, you can use gaim_utf8_strcasecmp(). I have to go do dishes now. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sun, 16 Mar 2003 00:01:49 +0000
parents 1e28e7d802a1
children 0ed37c803503
comparison
equal deleted inserted replaced
4792:9212d1c5b7dc 4793:677d3cb193a1
621 return; 621 return;
622 } 622 }
623 623
624 if (tdt->state == STATE_SIGNON_REQUEST) { 624 if (tdt->state == STATE_SIGNON_REQUEST) {
625 debug_printf("* TOC sends client SIGN_ON reply\n"); 625 debug_printf("* TOC sends client SIGN_ON reply\n");
626 if (g_strncasecmp(buf + sizeof(struct sflap_hdr), "SIGN_ON", strlen("SIGN_ON"))) { 626 if (g_ascii_strncasecmp(buf + sizeof(struct sflap_hdr), "SIGN_ON", strlen("SIGN_ON"))) {
627 debug_printf("Didn't get SIGN_ON! buf was: %s\n", 627 debug_printf("Didn't get SIGN_ON! buf was: %s\n",
628 buf + sizeof(struct sflap_hdr)); 628 buf + sizeof(struct sflap_hdr));
629 if (!g_strncasecmp(buf + sizeof(struct sflap_hdr), "ERROR", 5)) { 629 if (!g_ascii_strncasecmp(buf + sizeof(struct sflap_hdr), "ERROR", 5)) {
630 strtok(buf + sizeof(struct sflap_hdr), ":"); 630 strtok(buf + sizeof(struct sflap_hdr), ":");
631 hide_login_progress(gc, show_error_message()); 631 hide_login_progress(gc, show_error_message());
632 } else 632 } else
633 hide_login_progress(gc, _("Authentication Failed")); 633 hide_login_progress(gc, _("Authentication Failed"));
634 signoff(gc); 634 signoff(gc);
663 663
664 debug_printf("TOC S: %s\n", buf + sizeof(struct sflap_hdr)); 664 debug_printf("TOC S: %s\n", buf + sizeof(struct sflap_hdr));
665 665
666 c = strtok(buf + sizeof(struct sflap_hdr), ":"); /* Ditch the first part */ 666 c = strtok(buf + sizeof(struct sflap_hdr), ":"); /* Ditch the first part */
667 667
668 if (!g_strcasecmp(c, "SIGN_ON")) { 668 if (!g_ascii_strcasecmp(c, "SIGN_ON")) {
669 /* we should only get here after a PAUSE */ 669 /* we should only get here after a PAUSE */
670 if (tdt->state != STATE_PAUSE) 670 if (tdt->state != STATE_PAUSE)
671 debug_printf("got SIGN_ON but not PAUSE!\n"); 671 debug_printf("got SIGN_ON but not PAUSE!\n");
672 else { 672 else {
673 tdt->state = STATE_ONLINE; 673 tdt->state = STATE_ONLINE;
682 g_snprintf(snd, sizeof snd, "toc_init_done"); 682 g_snprintf(snd, sizeof snd, "toc_init_done");
683 sflap_send(gc, snd, -1, TYPE_DATA); 683 sflap_send(gc, snd, -1, TYPE_DATA);
684 do_error_dialog(_("TOC has come back from its pause. You may now send" 684 do_error_dialog(_("TOC has come back from its pause. You may now send"
685 " messages again."), NULL, GAIM_INFO); 685 " messages again."), NULL, GAIM_INFO);
686 } 686 }
687 } else if (!strcasecmp(c, "CONFIG")) { 687 } else if (!g_ascii_strcasecmp(c, "CONFIG")) {
688 c = strtok(NULL, ":"); 688 c = strtok(NULL, ":");
689 parse_toc_buddy_list(gc->account, c); 689 parse_toc_buddy_list(gc->account, c);
690 } else if (!strcasecmp(c, "NICK")) { 690 } else if (!g_ascii_strcasecmp(c, "NICK")) {
691 /* ignore NICK so that things get imported/exported properly 691 /* ignore NICK so that things get imported/exported properly
692 c = strtok(NULL, ":"); 692 c = strtok(NULL, ":");
693 g_snprintf(gc->username, sizeof(gc->username), "%s", c); 693 g_snprintf(gc->username, sizeof(gc->username), "%s", c);
694 */ 694 */
695 } else if (!strcasecmp(c, "IM_IN")) { 695 } else if (!g_ascii_strcasecmp(c, "IM_IN")) {
696 char *away, *message; 696 char *away, *message;
697 int a = 0; 697 int a = 0;
698 698
699 c = strtok(NULL, ":"); 699 c = strtok(NULL, ":");
700 away = strtok(NULL, ":"); 700 away = strtok(NULL, ":");
705 message++; 705 message++;
706 706
707 a = (away && (*away == 'T')) ? IM_FLAG_AWAY : 0; 707 a = (away && (*away == 'T')) ? IM_FLAG_AWAY : 0;
708 708
709 serv_got_im(gc, c, message, a, time(NULL), -1); 709 serv_got_im(gc, c, message, a, time(NULL), -1);
710 } else if (!strcasecmp(c, "UPDATE_BUDDY")) { 710 } else if (!g_ascii_strcasecmp(c, "UPDATE_BUDDY")) {
711 char *l, *uc, *tmp; 711 char *l, *uc, *tmp;
712 int logged, evil, idle, type = 0; 712 int logged, evil, idle, type = 0;
713 time_t signon, time_idle; 713 time_t signon, time_idle;
714 714
715 c = strtok(NULL, ":"); /* name */ 715 c = strtok(NULL, ":"); /* name */
752 if (!strcmp(tmp, normalize(c))) 752 if (!strcmp(tmp, normalize(c)))
753 g_snprintf(gc->displayname, sizeof(gc->displayname), "%s", c); 753 g_snprintf(gc->displayname, sizeof(gc->displayname), "%s", c);
754 g_free(tmp); 754 g_free(tmp);
755 755
756 serv_got_update(gc, c, logged, evil, signon, time_idle, type); 756 serv_got_update(gc, c, logged, evil, signon, time_idle, type);
757 } else if (!strcasecmp(c, "ERROR")) { 757 } else if (!g_ascii_strcasecmp(c, "ERROR")) {
758 do_error_dialog(show_error_message(), NULL, GAIM_ERROR); 758 do_error_dialog(show_error_message(), NULL, GAIM_ERROR);
759 } else if (!strcasecmp(c, "EVILED")) { 759 } else if (!g_ascii_strcasecmp(c, "EVILED")) {
760 int lev; 760 int lev;
761 char *name; 761 char *name;
762 762
763 sscanf(strtok(NULL, ":"), "%d", &lev); 763 sscanf(strtok(NULL, ":"), "%d", &lev);
764 name = strtok(NULL, ":"); 764 name = strtok(NULL, ":");
765 765
766 serv_got_eviled(gc, name, lev); 766 serv_got_eviled(gc, name, lev);
767 } else if (!strcasecmp(c, "CHAT_JOIN")) { 767 } else if (!g_ascii_strcasecmp(c, "CHAT_JOIN")) {
768 char *name; 768 char *name;
769 int id; 769 int id;
770 770
771 sscanf(strtok(NULL, ":"), "%d", &id); 771 sscanf(strtok(NULL, ":"), "%d", &id);
772 name = strtok(NULL, ":"); 772 name = strtok(NULL, ":");
773 773
774 serv_got_joined_chat(gc, id, name); 774 serv_got_joined_chat(gc, id, name);
775 } else if (!strcasecmp(c, "CHAT_IN")) { 775 } else if (!g_ascii_strcasecmp(c, "CHAT_IN")) {
776 int id, w; 776 int id, w;
777 char *m, *who, *whisper; 777 char *m, *who, *whisper;
778 778
779 sscanf(strtok(NULL, ":"), "%d", &id); 779 sscanf(strtok(NULL, ":"), "%d", &id);
780 who = strtok(NULL, ":"); 780 who = strtok(NULL, ":");
785 m++; 785 m++;
786 786
787 w = (whisper && (*whisper == 'T')) ? 1 : 0; 787 w = (whisper && (*whisper == 'T')) ? 1 : 0;
788 788
789 serv_got_chat_in(gc, id, who, w, m, time((time_t)NULL)); 789 serv_got_chat_in(gc, id, who, w, m, time((time_t)NULL));
790 } else if (!strcasecmp(c, "CHAT_UPDATE_BUDDY")) { 790 } else if (!g_ascii_strcasecmp(c, "CHAT_UPDATE_BUDDY")) {
791 int id; 791 int id;
792 char *in, *buddy; 792 char *in, *buddy;
793 GSList *bcs = gc->buddy_chats; 793 GSList *bcs = gc->buddy_chats;
794 struct gaim_conversation *b = NULL; 794 struct gaim_conversation *b = NULL;
795 struct gaim_chat *chat; 795 struct gaim_chat *chat;
814 while ((buddy = strtok(NULL, ":")) != NULL) 814 while ((buddy = strtok(NULL, ":")) != NULL)
815 gaim_chat_add_user(chat, buddy, NULL); 815 gaim_chat_add_user(chat, buddy, NULL);
816 else 816 else
817 while ((buddy = strtok(NULL, ":")) != NULL) 817 while ((buddy = strtok(NULL, ":")) != NULL)
818 gaim_chat_remove_user(chat, buddy, NULL); 818 gaim_chat_remove_user(chat, buddy, NULL);
819 } else if (!strcasecmp(c, "CHAT_INVITE")) { 819 } else if (!g_ascii_strcasecmp(c, "CHAT_INVITE")) {
820 char *name, *who, *message; 820 char *name, *who, *message;
821 int *id = g_new0(int, 1); 821 int *id = g_new0(int, 1);
822 822
823 name = strtok(NULL, ":"); 823 name = strtok(NULL, ":");
824 sscanf(strtok(NULL, ":"), "%d", id); 824 sscanf(strtok(NULL, ":"), "%d", id);
825 who = strtok(NULL, ":"); 825 who = strtok(NULL, ":");
826 message = strtok(NULL, ":"); 826 message = strtok(NULL, ":");
827 827
828 serv_got_chat_invite(gc, name, who, message, g_list_append(NULL, id)); 828 serv_got_chat_invite(gc, name, who, message, g_list_append(NULL, id));
829 } else if (!strcasecmp(c, "CHAT_LEFT")) { 829 } else if (!g_ascii_strcasecmp(c, "CHAT_LEFT")) {
830 GSList *bcs = gc->buddy_chats; 830 GSList *bcs = gc->buddy_chats;
831 struct gaim_conversation *b = NULL; 831 struct gaim_conversation *b = NULL;
832 int id; 832 int id;
833 833
834 sscanf(strtok(NULL, ":"), "%d", &id); 834 sscanf(strtok(NULL, ":"), "%d", &id);
850 g_snprintf(error_buf, sizeof error_buf, _("You have been disconnected" 850 g_snprintf(error_buf, sizeof error_buf, _("You have been disconnected"
851 " from chat room %s."), b->name); 851 " from chat room %s."), b->name);
852 do_error_dialog(error_buf, NULL, GAIM_ERROR); 852 do_error_dialog(error_buf, NULL, GAIM_ERROR);
853 } else 853 } else
854 serv_got_chat_left(gc, id); 854 serv_got_chat_left(gc, id);
855 } else if (!strcasecmp(c, "GOTO_URL")) { 855 } else if (!g_ascii_strcasecmp(c, "GOTO_URL")) {
856 char *name, *url, tmp[256]; 856 char *name, *url, tmp[256];
857 857
858 name = strtok(NULL, ":"); 858 name = strtok(NULL, ":");
859 url = strtok(NULL, ":"); 859 url = strtok(NULL, ":");
860 860
861 g_snprintf(tmp, sizeof(tmp), "http://%s:%d/%s", tdt->toc_ip, 861 g_snprintf(tmp, sizeof(tmp), "http://%s:%d/%s", tdt->toc_ip,
862 gc->account->proto_opt[USEROPT_AUTHPORT][0] ? 862 gc->account->proto_opt[USEROPT_AUTHPORT][0] ?
863 atoi(gc->account->proto_opt[USEROPT_AUTHPORT]) : TOC_PORT, 863 atoi(gc->account->proto_opt[USEROPT_AUTHPORT]) : TOC_PORT,
864 url); 864 url);
865 grab_url(tmp, FALSE, toc_got_info, NULL); 865 grab_url(tmp, FALSE, toc_got_info, NULL);
866 } else if (!strcasecmp(c, "DIR_STATUS")) { 866 } else if (!g_ascii_strcasecmp(c, "DIR_STATUS")) {
867 } else if (!strcasecmp(c, "ADMIN_NICK_STATUS")) { 867 } else if (!g_ascii_strcasecmp(c, "ADMIN_NICK_STATUS")) {
868 } else if (!strcasecmp(c, "ADMIN_PASSWD_STATUS")) { 868 } else if (!g_ascii_strcasecmp(c, "ADMIN_PASSWD_STATUS")) {
869 do_error_dialog(_("Password Change Successful"), NULL, GAIM_INFO); 869 do_error_dialog(_("Password Change Successful"), NULL, GAIM_INFO);
870 } else if (!strcasecmp(c, "PAUSE")) { 870 } else if (!g_ascii_strcasecmp(c, "PAUSE")) {
871 tdt->state = STATE_PAUSE; 871 tdt->state = STATE_PAUSE;
872 do_error_dialog(_("TOC has sent a PAUSE command."), _("When this happens, TOC ignores" 872 do_error_dialog(_("TOC has sent a PAUSE command."), _("When this happens, TOC ignores"
873 " any messages sent to it, and may kick you off if you send a" 873 " any messages sent to it, and may kick you off if you send a"
874 " message. Gaim will prevent anything from going through. This" 874 " message. Gaim will prevent anything from going through. This"
875 " is only temporary, please be patient."), GAIM_WARNING); 875 " is only temporary, please be patient."), GAIM_WARNING);
876 } else if (!strcasecmp(c, "RVOUS_PROPOSE")) { 876 } else if (!g_ascii_strcasecmp(c, "RVOUS_PROPOSE")) {
877 char *user, *uuid, *cookie; 877 char *user, *uuid, *cookie;
878 int seq; 878 int seq;
879 char *rip, *pip, *vip, *trillian = NULL; 879 char *rip, *pip, *vip, *trillian = NULL;
880 int port; 880 int port;
881 881
1716 return; 1716 return;
1717 ft = g_new0(struct file_transfer, 1); 1717 ft = g_new0(struct file_transfer, 1);
1718 if (old_ft->files == 1) 1718 if (old_ft->files == 1)
1719 ft->filename = g_strdup(dirname); 1719 ft->filename = g_strdup(dirname);
1720 else 1720 else
1721 ft->filename = g_dirname(dirname); 1721 ft->filename = g_path_get_dirname(dirname);
1722 ft->cookie = g_strdup(old_ft->cookie); 1722 ft->cookie = g_strdup(old_ft->cookie);
1723 ft->user = g_strdup(old_ft->user); 1723 ft->user = g_strdup(old_ft->user);
1724 ft->ip = g_strdup(old_ft->ip); 1724 ft->ip = g_strdup(old_ft->ip);
1725 ft->files = old_ft->files; 1725 ft->files = old_ft->files;
1726 ft->port = old_ft->port; 1726 ft->port = old_ft->port;
1764 } 1764 }
1765 1765
1766 if (ft->hdr.hdrtype == htons(0x1108)) { 1766 if (ft->hdr.hdrtype == htons(0x1108)) {
1767 struct tm *fortime; 1767 struct tm *fortime;
1768 struct stat st; 1768 struct stat st;
1769 char *basename;
1769 1770
1770 toc_read(source, ft, 8); 1771 toc_read(source, ft, 8);
1771 toc_read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8)); 1772 toc_read(source, &ft->hdr.bcookie, MIN(256 - 8, ntohs(ft->hdr.hdrlen) - 8));
1772 debug_header(ft); 1773 debug_header(ft);
1773 1774
1774 stat(ft->filename, &st); 1775 stat(ft->filename, &st);
1775 fortime = localtime(&st.st_mtime); 1776 fortime = localtime(&st.st_mtime);
1777 basename = g_path_get_basename(ft->filename);
1776 g_snprintf(buf, sizeof(buf), "%2d/%2d/%4d %2d:%2d %8ld %s\r\n", 1778 g_snprintf(buf, sizeof(buf), "%2d/%2d/%4d %2d:%2d %8ld %s\r\n",
1777 fortime->tm_mon + 1, fortime->tm_mday, fortime->tm_year + 1900, 1779 fortime->tm_mon + 1, fortime->tm_mday, fortime->tm_year + 1900,
1778 fortime->tm_hour + 1, fortime->tm_min + 1, (long)st.st_size, 1780 fortime->tm_hour + 1, fortime->tm_min + 1, (long)st.st_size,
1779 g_basename(ft->filename)); 1781 basename);
1780 toc_write(source, buf, ntohl(ft->hdr.size)); 1782 toc_write(source, buf, ntohl(ft->hdr.size));
1783 g_free(basename);
1781 return; 1784 return;
1782 } 1785 }
1783 1786
1784 if (ft->hdr.hdrtype == htons(0x1209)) { 1787 if (ft->hdr.hdrtype == htons(0x1209)) {
1785 toc_read(source, ft, 8); 1788 toc_read(source, ft, 8);
1847 static void toc_get_file_connect(gpointer data, gint src, GaimInputCondition cond) 1850 static void toc_get_file_connect(gpointer data, gint src, GaimInputCondition cond)
1848 { 1851 {
1849 struct file_transfer *ft = data; 1852 struct file_transfer *ft = data;
1850 struct file_header *hdr; 1853 struct file_header *hdr;
1851 char *buf; 1854 char *buf;
1855 char *basename;
1852 1856
1853 if (src == -1) { 1857 if (src == -1) {
1854 do_error_dialog(_("Could not connect for transfer!"), NULL, GAIM_ERROR); 1858 do_error_dialog(_("Could not connect for transfer!"), NULL, GAIM_ERROR);
1855 fclose(ft->file); 1859 fclose(ft->file);
1856 g_free(ft->filename); 1860 g_free(ft->filename);
1870 g_free(buf); 1874 g_free(buf);
1871 hdr->totfiles = htons(1); hdr->filesleft = htons(1); 1875 hdr->totfiles = htons(1); hdr->filesleft = htons(1);
1872 hdr->totparts = htons(1); hdr->partsleft = htons(1); 1876 hdr->totparts = htons(1); hdr->partsleft = htons(1);
1873 hdr->totsize = htonl((long)ft->st.st_size); /* combined size of all files */ 1877 hdr->totsize = htonl((long)ft->st.st_size); /* combined size of all files */
1874 /* size = strlen("mm/dd/yyyy hh:mm sizesize 'name'\r\n") */ 1878 /* size = strlen("mm/dd/yyyy hh:mm sizesize 'name'\r\n") */
1875 hdr->size = htonl(28 + strlen(g_basename(ft->filename))); /* size of listing.txt */ 1879 basename = g_path_get_basename(ft->filename);
1880 hdr->size = htonl(28 + strlen(basename)); /* size of listing.txt */
1881 g_free(basename);
1876 hdr->modtime = htonl(ft->st.st_mtime); 1882 hdr->modtime = htonl(ft->st.st_mtime);
1877 hdr->checksum = htonl(0x89f70000); /* uh... */ 1883 hdr->checksum = htonl(0x89f70000); /* uh... */
1878 g_snprintf(hdr->idstring, 32, "OFT_Windows ICBMFT V1.1 32"); 1884 g_snprintf(hdr->idstring, 32, "OFT_Windows ICBMFT V1.1 32");
1879 hdr->flags = 0x02; 1885 hdr->flags = 0x02;
1880 hdr->lnameoffset = 0x1A; 1886 hdr->lnameoffset = 0x1A;