geoloc.c
author Myhailo Danylenko <isbear@ukrpost.net>
Fri, 14 Nov 2014 01:51:58 +0200
changeset 44 636ef7fe3d5b
parent 41 cfb02882828d
permissions -rw-r--r--
Use build-time variable in sources
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
/*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
 * geoloc.c             -- Pep geographical location events
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
 *
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
 * Copyright (C) 2009-2012 Myhailo Danylenko <isbear@ukrpost.net>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
 *
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License as published by
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
 * the Free Software Foundation; either version 2 of the License, or (at
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
 * your option) any later version.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
 *
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
 * This program is distributed in the hope that it will be useful, but
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
 * WITHOUT ANY WARRANTY; without even the implied warranty of
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
 * General Public License for more details.
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
 *
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
 * You should have received a copy of the GNU General Public License
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
 * along with this program; if not, write to the Free Software
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
 * USA
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
 */
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
#include <glib.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
#include <string.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
#include <mcabber/commands.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
#include <mcabber/compl.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
#include <mcabber/utils.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
#include <mcabber/screen.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
#include <mcabber/logprint.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
#include <mcabber/hbuf.h>        // HBUF_PREFIX_*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
#include <mcabber/roster.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
#include <mcabber/hooks.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
#include <mcabber/modules.h>
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
31
e404cd1c7077 Drop publish_*, rework build system
Myhailo Danylenko <isbear@ukrpost.net>
parents: 29
diff changeset
    35
#include "pep_geoloc.h"
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
#include "config.h"
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
//
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
//  module description
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
//
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
void geoloc_init   (void);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
void geoloc_uninit (void);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
31
e404cd1c7077 Drop publish_*, rework build system
Myhailo Danylenko <isbear@ukrpost.net>
parents: 29
diff changeset
    46
#define DESCRIPTION ( GEOLOC_DESCRIPTION )
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
static const gchar *deps[] = { "pep_geoloc", NULL };
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49
35
a77a8e7ab8ae Use build-time api version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 31
diff changeset
    50
module_info_t info_geoloc = {
a77a8e7ab8ae Use build-time api version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 31
diff changeset
    51
	.branch      = MCABBER_BRANCH,
a77a8e7ab8ae Use build-time api version
Myhailo Danylenko <isbear@ukrpost.net>
parents: 31
diff changeset
    52
	.api         = MCABBER_API_VERSION,
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    53
	.version     = PROJECT_VERSION,
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    54
	.description = DESCRIPTION,
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    55
	.requires    = deps,
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    56
	.init        = geoloc_init,
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    57
	.uninit      = geoloc_uninit,
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    58
	.next        = NULL,
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    59
};
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    60
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    61
//
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    62
//  globals
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    63
//
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    64
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    65
#ifdef MCABBER_API_HAVE_CMD_ID
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    66
static gpointer geoloc_cmid     = NULL;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    67
static gboolean geoloc_set_safe = FALSE;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    68
#endif
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    69
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    70
static guint geoloc_cid          = 0;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    71
static guint geoloc_hid_geolocin = 0;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    72
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    73
//
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    74
//  code
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    75
//
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    76
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    77
static void do_geoloc (char *arg)
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    78
{
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    79
	geoloc_pair_t tags[] = {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    80
		{ "accuracy",    NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    81
		{ "alt",         NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    82
		{ "area",        NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    83
		{ "bearing",     NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    84
		{ "building",    NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    85
		{ "country",     NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    86
		{ "countrycode", NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    87
		{ "datum",       NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    88
		{ "description", NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    89
		{ "error",       NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    90
		{ "floor",       NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    91
		{ "lat",         NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    92
		{ "locality",    NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    93
		{ "lon",         NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    94
		{ "postalcode",  NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    95
		{ "region",      NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    96
		{ "room",        NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    97
		{ "speed",       NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    98
		{ "street",      NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    99
		{ "text",        NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   100
		{ "timestamp",   NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   101
		{ "uri",         NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   102
		{ NULL,          NULL },
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   103
	};
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   104
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   105
	if (!*arg) { // request
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   106
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   107
		GError *error = NULL;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   108
31
e404cd1c7077 Drop publish_*, rework build system
Myhailo Danylenko <isbear@ukrpost.net>
parents: 29
diff changeset
   109
		pep_geoloc_request ( CURRENT_JID, &error );
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   110
		if ( error ) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   111
			scr_log_print ( LPRINT_NORMAL, "Error sending request: %s.", error -> message );
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   112
			g_error_free ( error );
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   113
		} else
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   114
			scr_log_print ( LPRINT_NORMAL, "Request sent." );
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   115
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   116
		return;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   117
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   118
	} else if (arg[0] != '-' || arg[1] != '\0') { // publish
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   119
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   120
		char          *p;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   121
		char          *argstart  = NULL;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   122
		char          *argstop   = NULL;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   123
		char          *tagstart  = NULL;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   124
		char          *tagstop   = NULL;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   125
		char          *wordstart = arg;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   126
		gboolean       proceed   = TRUE;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   127
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   128
// pt = p, ws = wordstart, ts = tagstart, tt = tagstop, as = argstart, at = arstop
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   129
// tag=value value tag=value
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   130
// w  p
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   131
// s  t
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   132
// t  ta
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   133
// s  t*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   134
// tag=value value tag=value
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   135
// t  ta    p
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   136
// s  t*    t
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   137
// t  ta    aw
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   138
// s  ts    ts
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   139
// tag=value value tag=value
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   140
// t  ta    aw    p
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   141
// s  ts    ts    t
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   142
// t  ta          aw
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   143
// s  ts          ts
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   144
// tag=value value tag=value
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   145
// t  ta          aw  p
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   146
// s  ts          ts  t
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   147
//                 t  ta
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   148
//                 s  t*
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   149
// tag=value value tag=value
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   150
//                 t  ta    p
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   151
//                 s  t*    t
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   152
//                 t  ta    a
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   153
//                 s  ts    t
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   154
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   155
		for (p = arg; proceed; ++p) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   156
			switch (*p) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   157
			case '=':
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   158
				if (tagstart && tagstop - tagstart) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   159
					// process previous args
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   160
					geoloc_pair_t *tag;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   161
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   162
					for (tag = tags; tag->name; ++tag) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   163
						if (!strncmp (tag->name, tagstart, tagstop - tagstart)) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   164
							g_free ( (gchar *) tag -> value );
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   165
							if (argstop - argstart) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   166
								*argstop = '\0';
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   167
								tag->value = to_utf8 (argstart);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   168
							}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   169
							break;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   170
						}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   171
					}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   172
				}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   173
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   174
				tagstart = wordstart;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   175
				tagstop = p;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   176
				argstop = p+1;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   177
				argstart = p+1;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   178
				break;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   179
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   180
			case '\0':
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   181
				argstop = p;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   182
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   183
				if (tagstop - tagstart) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   184
					// process previous args
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   185
					geoloc_pair_t *tag;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   186
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   187
					for (tag = tags; tag->name; ++tag) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   188
						if (!strncmp (tag->name, tagstart, tagstop - tagstart)) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   189
							g_free ( (gchar *) tag -> value );
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   190
							if (argstop - argstart)
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   191
								tag->value = to_utf8 (argstart);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   192
							break;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   193
						}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   194
					}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   195
				}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   196
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   197
				proceed = FALSE;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   198
				break;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   199
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   200
			case ' ':
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   201
				argstop = p;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   202
				wordstart = p+1;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   203
				break;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   204
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   205
			default:
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   206
				break;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   207
			}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   208
		}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   209
	}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   210
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   211
	hk_run_handlers ( HOOK_GEOLOC_OUT, (hk_arg_t *) tags );
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   212
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   213
	{
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   214
		geoloc_pair_t *tag;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   215
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   216
		for ( tag = tags; tag -> name; ++ tag )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   217
			g_free ( (gchar *) tag -> value );
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   218
	}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   219
}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   220
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   221
static guint geoloc_hgih ( const gchar *hid, hk_arg_t *args, gpointer userdata )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   222
{
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   223
	GString     *mesg = g_string_new (NULL);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   224
	const gchar *from = NULL;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   225
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   226
	{
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   227
		hk_arg_t *arg;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   228
		for ( arg = args; arg -> name; ++ arg )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   229
			if ( arg -> value ) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   230
				if ( ! strcmp ( arg -> name, "from" ) )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   231
					from = arg -> value;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   232
				else
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   233
					g_string_append_printf ( mesg, "\n - %s: %s", arg -> name, arg -> value);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   234
			}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   235
	}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   236
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   237
	if (mesg->len)
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   238
		g_string_prepend (mesg, "Now located at:");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   239
	else
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   240
		g_string_overwrite (mesg, 0, "No location information.");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   241
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   242
	{ // print to buddy's buffer
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   243
		gchar *jid = jidtodisp (from);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   244
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   245
		scr_write_incoming_message (jid, mesg->str, 0, HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG, 0); // NO conversion from utf-8
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   246
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   247
		g_free (jid);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   248
	}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   249
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   250
	g_string_free (mesg, TRUE);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   251
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   252
	return HOOK_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   253
}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   254
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   255
void geoloc_init ( void )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   256
{
44
636ef7fe3d5b Use build-time variable in sources
Myhailo Danylenko <isbear@ukrpost.net>
parents: 41
diff changeset
   257
#ifdef HAVE_MCABBER_COMPLETION_FLAGS
41
cfb02882828d Comply with dev:24
Myhailo Danylenko <isbear@ukrpost.net>
parents: 35
diff changeset
   258
	geoloc_cid = compl_new_category (COMPL_FLAGS_SORT);
cfb02882828d Comply with dev:24
Myhailo Danylenko <isbear@ukrpost.net>
parents: 35
diff changeset
   259
#else
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   260
	geoloc_cid = compl_new_category ();
41
cfb02882828d Comply with dev:24
Myhailo Danylenko <isbear@ukrpost.net>
parents: 35
diff changeset
   261
#endif
cfb02882828d Comply with dev:24
Myhailo Danylenko <isbear@ukrpost.net>
parents: 35
diff changeset
   262
29
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   263
	if (geoloc_cid) {
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   264
		compl_add_category_word (geoloc_cid, "accuracy=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   265
		compl_add_category_word (geoloc_cid, "alt=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   266
		compl_add_category_word (geoloc_cid, "area=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   267
		compl_add_category_word (geoloc_cid, "bearing=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   268
		compl_add_category_word (geoloc_cid, "building=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   269
		compl_add_category_word (geoloc_cid, "country=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   270
		compl_add_category_word (geoloc_cid, "countrycode=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   271
		compl_add_category_word (geoloc_cid, "datum=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   272
		compl_add_category_word (geoloc_cid, "description=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   273
		compl_add_category_word (geoloc_cid, "error=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   274
		compl_add_category_word (geoloc_cid, "floor=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   275
		compl_add_category_word (geoloc_cid, "lat=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   276
		compl_add_category_word (geoloc_cid, "locality=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   277
		compl_add_category_word (geoloc_cid, "lon=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   278
		compl_add_category_word (geoloc_cid, "postalcode=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   279
		compl_add_category_word (geoloc_cid, "region=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   280
		compl_add_category_word (geoloc_cid, "room=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   281
		compl_add_category_word (geoloc_cid, "speed=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   282
		compl_add_category_word (geoloc_cid, "street=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   283
		compl_add_category_word (geoloc_cid, "text=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   284
		compl_add_category_word (geoloc_cid, "timestamp=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   285
		compl_add_category_word (geoloc_cid, "uri=");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   286
	}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   287
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   288
#ifndef MCABBER_API_HAVE_CMD_ID
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   289
	cmd_add ("geoloc", "", geoloc_cid, geoloc_cid, do_geoloc, NULL);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   290
#else
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   291
	geoloc_cmid     = cmd_add ("geoloc", "", geoloc_cid, geoloc_cid, do_geoloc, NULL);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   292
	geoloc_set_safe = cmd_set_safe ("geoloc", TRUE);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   293
#endif
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   294
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   295
	geoloc_hid_geolocin = hk_add_handler (geoloc_hgih, HOOK_GEOLOC_IN, G_PRIORITY_DEFAULT, NULL);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   296
}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   297
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   298
void geoloc_uninit ( void )
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   299
{
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   300
	hk_del_handler (HOOK_GEOLOC_IN, geoloc_hid_geolocin);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   301
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   302
#ifndef MCABBER_API_HAVE_CMD_ID
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   303
	cmd_del ("geoloc");
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   304
#else
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   305
	if (geoloc_cmid)
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   306
		cmd_del (geoloc_cmid);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   307
	if (geoloc_set_safe)
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   308
		cmd_set_safe ("geoloc", FALSE);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   309
#endif
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   310
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   311
	if (geoloc_cid)
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   312
		compl_del_category (geoloc_cid);
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   313
}
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   314
23fa36d480fb Merge pep modules & use events
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
   315
/* vim: se ts=4 sw=4: */