Matthew Barnes [Sun, 14 Jul 2013 12:37:06 +0000 (08:37 -0400)]
Simplify camel_imapx_stream_nstring_stream().
Matthew Barnes [Sun, 14 Jul 2013 12:29:11 +0000 (08:29 -0400)]
Simplify camel_imapx_stream_nstring().
Matthew Barnes [Sun, 14 Jul 2013 12:19:48 +0000 (08:19 -0400)]
Simplify camel_imapx_stream_astring().
Matthew Barnes [Sun, 14 Jul 2013 12:15:05 +0000 (08:15 -0400)]
Simplify camel_imapx_stream_atom().
Matthew Barnes [Sun, 14 Jul 2013 02:11:07 +0000 (22:11 -0400)]
CamelIMAPXStore cleanups.
Matthew Barnes [Sun, 14 Jul 2013 11:46:13 +0000 (07:46 -0400)]
Remove IMAPX_TOK_PROTOCOL.
This just makes it awkward to check for errors.
An error is an error, the GError domain should indicate the type.
Matthew Barnes [Sun, 14 Jul 2013 04:50:19 +0000 (00:50 -0400)]
Remove unused CAMEL_STORE_INFO_FOLDER_CHECK_FOR_NEW flag.
Checked for but never set.
Also remove unused CAMEL_FOLDER_CHECK_FOR_NEW flag.
Matthew Barnes [Sun, 14 Jul 2013 03:21:53 +0000 (23:21 -0400)]
Remove unused camel_imapx_namespace_list_copy().
Matthew Barnes [Sun, 14 Jul 2013 03:20:13 +0000 (23:20 -0400)]
Remove unused camel_imapx_store_summary_set_namespaces().
Matthew Barnes [Sun, 14 Jul 2013 04:03:37 +0000 (00:03 -0400)]
Remove unused camel_imapx_store_summary_namespace_set().
Matthew Barnes [Sat, 13 Jul 2013 22:11:45 +0000 (18:11 -0400)]
imapx_reconnect() cleanups.
Matthew Barnes [Fri, 12 Jul 2013 23:29:01 +0000 (19:29 -0400)]
camel_folder_transfer_messages_to_sync: Connect the CamelServices first.
Matthew Barnes [Fri, 12 Jul 2013 23:17:54 +0000 (19:17 -0400)]
camel_folder_expunge_sync: Connect the CamelService first.
Matthew Barnes [Fri, 12 Jul 2013 23:14:54 +0000 (19:14 -0400)]
camel_folder_append_message_sync: Connect the CamelService first.
Matthew Barnes [Fri, 12 Jul 2013 21:09:35 +0000 (17:09 -0400)]
CamelTcpStreamRaw: Don't timeout on reads.
This is needed for IMAP IDLE to work, which sits in a read call for
long periods of time. If this times out then we disconnect from the
server and miss out on mailbox updates.
The timeout was orignally added to work around suspend/resume issues,
but that should be handled by way of GCancellables, not by prematurely
terminating a read call. Prior to reading we connect to GCancellable
and call PR_Interrupt() on cancellation to terminate the read call.
Need to make sure the GCancellable is actually firing when it should,
and that we're not racing it.
Leaving the timeout on write calls in place for now, since that seems
more reasonable.
Matthew Barnes [Fri, 12 Jul 2013 20:26:02 +0000 (16:26 -0400)]
camel_folder_get_message_sync: Recover from dropped connection.
If the requested message is not cached, and the service is online but
disconnected, reconnect before requesting the message. This is meant
to help recover from dropped server connections.
Matthew Barnes [Fri, 12 Jul 2013 17:57:51 +0000 (13:57 -0400)]
CamelIMAPXServer: Remove fixed "use_idle" flag.
Always obtain a fresh value from CamelIMAPXSettings.
Rename imapx_idle_supported() to imapx_use_idle() for better readability
(even if IDLE is supported, the user may prefer not to *use* it).
Further, only call imapx_use_idle() when deciding whether to issue an
IDLE command. Don't need to check imapx_use_idle() when handling state
changes -- if we're already *in* IDLE then we're obviously *using* IDLE.
Matthew Barnes [Fri, 12 Jul 2013 13:08:07 +0000 (09:08 -0400)]
imapx_connect_sync: Fix runtime warning.
Follows from the previous commit.
Matthew Barnes [Fri, 12 Jul 2013 12:49:08 +0000 (08:49 -0400)]
imapx_disconnect_sync: Fix runtime warning.
Bad assumption here. The server could hang up while the
CamelService is still in a CAMEL_SERVICE_CONNECTING state.
Matthew Barnes [Fri, 12 Jul 2013 13:04:52 +0000 (09:04 -0400)]
CamelIMAPXStore: Further cleanups.
Wylmer Wang [Fri, 12 Jul 2013 14:48:59 +0000 (22:48 +0800)]
Updated Chinese simplified translation
tuhaihe [Fri, 12 Jul 2013 14:26:25 +0000 (22:26 +0800)]
Updated Chinese simplified translation
Matthew Barnes [Fri, 12 Jul 2013 02:17:02 +0000 (22:17 -0400)]
camel_folder_synchronize_sync: Connect the CamelService first.
Matthew Barnes [Fri, 12 Jul 2013 01:27:28 +0000 (21:27 -0400)]
camel_folder_refresh_info_sync: Connect the CamelService first.
Matthew Barnes [Fri, 12 Jul 2013 00:57:07 +0000 (20:57 -0400)]
CamelIMAPXSettings: Remove "concurrent-connections" property.
No longer used.
Matthew Barnes [Thu, 11 Jul 2013 18:22:49 +0000 (14:22 -0400)]
Remove CamelIMAPXConnManager.
It turns out CamelIMAPXConnManager's server selection logic has been
broken for some time and we've been operating on a single connection
regardless of the "concurrent-connections" setting.
And you know what? A single connection works fine. The only thing
CamelIMAPXConnManager actually does nowadays is occasionally deadlock
because it tries to connect to a server while holding a locked mutex,
which is a major no-no.
CamelIMAPXConnManager is not documented, it's not only NOT doing its
job but is actively causing problems, and I can't seem to wrap my head
around the implications of multiple connections in a CamelService. So
I decided to just junk it.
New functions:
camel_imapx_store_ref_server()
Removed functions:
camel_imapx_store_get_server()
camel_imapx_store_op_done()
Matthew Barnes [Thu, 11 Jul 2013 21:54:58 +0000 (17:54 -0400)]
CamelIMAPXServer: Stop joining with the parser thread.
Don't ever block in a dispose() method. Pass the parser thread its
own CamelIMAPXServer reference and just let it terminate on its own.
Matthew Barnes [Thu, 11 Jul 2013 23:06:38 +0000 (19:06 -0400)]
CamelIMAPXStore cleanups.
Matthew Barnes [Thu, 11 Jul 2013 22:09:15 +0000 (18:09 -0400)]
CamelIMAPXFolder cleanups.
Marek Černocký [Fri, 12 Jul 2013 05:45:47 +0000 (07:45 +0200)]
Updated Czech translation
Matthew Barnes [Tue, 9 Jul 2013 15:42:17 +0000 (11:42 -0400)]
google: Use CalDAV v2 if OAuth 2.0 support is available.
Matthew Barnes [Tue, 9 Jul 2013 15:49:09 +0000 (11:49 -0400)]
google: Minor module cleanups.
Matthew Barnes [Tue, 9 Jul 2013 21:06:16 +0000 (17:06 -0400)]
CalDAV: Add support for OAuth 2.0 authentication.
Matthew Barnes [Tue, 9 Jul 2013 18:23:04 +0000 (14:23 -0400)]
Add ESoupAuthBearer.
SoupAuth subclass for use with OAuth 2.0 HTTP authentication.
See http://tools.ietf.org/html/rfc6750
EBackends should use e_source_get_oauth2_access_token() to obtain
the access token and token expiry for an ESource, then pass them to
e_soup_auth_bearer_set_access_token().
Matthew Barnes [Tue, 9 Jul 2013 15:35:39 +0000 (11:35 -0400)]
source_webdav_user_to_method: Don't stomp on custom method names.
This binding might have just been a bad idea on my part, but this
should salvage it without breaking API behavior.
Andika Triwidada [Mon, 8 Jul 2013 00:34:22 +0000 (07:34 +0700)]
Updated Indonesian translation
Matthew Barnes [Sun, 7 Jul 2013 14:58:59 +0000 (10:58 -0400)]
Post-release version bump.
Matthew Barnes [Sun, 7 Jul 2013 14:32:58 +0000 (10:32 -0400)]
NEWS update for 3.9.4 release.
Matthew Barnes [Sun, 7 Jul 2013 14:47:43 +0000 (10:47 -0400)]
Add new symbols to API documentation.
Milan Crha [Thu, 4 Jul 2013 15:17:49 +0000 (17:17 +0200)]
e_book_backend_sqlitedb_has_contact() used nonexistent column
The function used partial_content column of a respective folder table,
but this is not available anymore, and references to this column are
also no-op these days, thus I made this use the 'uid' column instead.
The failure broke contact removal in evolution-ews.
Milan Crha [Thu, 4 Jul 2013 10:35:34 +0000 (12:35 +0200)]
[IMAPX] Server connection is not mandatory when searching folder content
In case the store is kept online, but the server cannot be reached,
like when it's hidden behind the VPN, the IMAPX folder should show
offline content, rather than nothing at all. After all, live server
connection is needed for body-contains only, and only that to not
download all messages in the folder.
Matthew Barnes [Wed, 3 Jul 2013 15:40:39 +0000 (11:40 -0400)]
Avoid a crash in cal_backend_add_cached_timezone().
Apparently icaltimezone_get_tzid() can sometimes return NULL. Check for
NULL before we use it in a hash table lookup, which crashes on NULL keys.
Add a similar check to ECalClient for consistency.
Fabiano Fidêncio [Sat, 29 Jun 2013 12:51:13 +0000 (14:51 +0200)]
Bug #703194 - Custom alarm message is REMINDER
Milan Crha [Mon, 1 Jul 2013 13:51:21 +0000 (15:51 +0200)]
Bug #700894 - LDAP 'Copy for offline' blocks online searches
Milan Crha [Mon, 1 Jul 2013 10:00:11 +0000 (12:00 +0200)]
GError instance use-after-free in collection_backend_load_resources()
The function uses a shared GError instance in a cycle, and on error
freed the instance with g_error_free() which left the pointer set,
only populated with freed memory, thus the next round, when it eventually
loaded correct source, the function thought it ended with an error
and a GSlice allocator aborted on the g_error_free() call. Resetting
the error variable to NULL after free (by using g_clear_error()) fixes
the crash.
Fabiano Fidêncio [Tue, 25 Jun 2013 12:52:37 +0000 (14:52 +0200)]
Bug #703053 - Error on setting reminder 'after start of appointment'
As EWS doesn't support setting 'after start' reminders, let's create
a new capability to help us when we should avoid to show the option
to the user
David Woodhouse [Thu, 27 Jun 2013 21:09:04 +0000 (22:09 +0100)]
Allow automatic NTLM authentication unconditionally
As part of bug 703181 we retested imapx+NTLM authentication, and it seems
that the NTLM SASL mechanism wasn't allowing the ntlm_auth helper to be used
unless its ->try_empty_password_sync() method was called.
That made sense when this support was first added, since the logic in the
back end would go something like:
if (try_empty_password())
{ /* Try it and return OK if it worked */ }
demand_password_from_user()
...
However, the setup of the authentication is now different, and the imapx
back end (for example) doesn't even *care* about the password. Adding an
artificial call to camel_sasl_try_empty_password_sync() into the imapx code
seemed like the wrong thing to do; it should be enabled *automatically*.
So do that: try to set up the ntlm_auth helper in sasl_ntlm_challenge_sync()
if we are invoked with no password.
Milan Crha [Thu, 27 Jun 2013 14:37:48 +0000 (16:37 +0200)]
Bug #697598 - [imapx] Freeze due to calling thread join from main thread
Milan Crha [Wed, 26 Jun 2013 16:59:31 +0000 (18:59 +0200)]
Bug #682322 - SIGSEGV in pop3_folder_refresh_info_sync
Daniel Mustieles [Mon, 24 Jun 2013 14:30:20 +0000 (16:30 +0200)]
Updated Spanish translation
Matthew Barnes [Mon, 24 Jun 2013 11:13:33 +0000 (07:13 -0400)]
CamelFilterDriver: Remove ":filter" debug messages.
There's not enough debugging output here to be useful, the debug key
syntax is weird, and I'd like rewrite filter logging to be activated
by CAMEL_DEBUG=filter and give each output line a prefix that's easy
to isolate with grep.
Matthew Barnes [Sat, 6 Apr 2013 15:14:25 +0000 (11:14 -0400)]
EBookBackendLDAP cleanups.
Matthew Barnes [Sun, 23 Jun 2013 00:31:19 +0000 (20:31 -0400)]
More consistent error messages for missing opt dependencies.
Matthew Barnes [Sat, 22 Jun 2013 23:21:28 +0000 (19:21 -0400)]
UOA: Add service-specific descriptions for E-D-S.
This causes each service for a provider to be listed separately in the
Control Center UOA panel, with an independent switch for each service.
Iain Lane [Sat, 22 Jun 2013 22:45:33 +0000 (18:45 -0400)]
Add a desktop file for Ubuntu Online Accounts.
This is required for E-D-S to show up in the Ubuntu Online Accounts
configuration UI. It's only installed when built with UOA support.
Matthew Barnes [Sat, 22 Jun 2013 13:12:00 +0000 (09:12 -0400)]
CamelIMAPXStore: Try harder to track settings.
Connect a "notify" signal handler to a newly-installed CamelSettings
instance, and emit a "folder-info-stale" signal for certain settings
changes that would ordinarily require an application restart.
Specifically, listen for changes to:
"use-real-junk-path"
"use-real-trash-path"
"use-subscriptions"
Matthew Barnes [Fri, 21 Jun 2013 23:12:12 +0000 (19:12 -0400)]
CamelStore: Add a "folder-info-stale" signal.
This signal indicates significant changes have occurred to the folder
hierarchy of the CamelStore, and that previously fetched CamelFolderInfo
data should be considered stale.
Applications should handle this signal by replacing cached
CamelFolderInfo data for the CamelStore with fresh data by way of
camel_store_get_folder_info().
More often than not this signal will be emitted as a result of user
preference changes rather than actual server-side changes. For example,
a user may change a preference that reveals a set of folders previously
hidden from view, or that alters whether to augment the CamelStore with
virtual Junk and Trash folders.
This increases sizeof(CamelStoreClass) and its descendants, therefore
the libcamel shared object name has been bumped.
Milan Crha [Fri, 21 Jun 2013 08:43:37 +0000 (10:43 +0200)]
Fix e_book_backend_summary_is_summary_query()
It didn't check on correct summary fields being used, but on a result
of the expression, which is not correct when there comes a 'not' in it.
This broke "Unmatched" filter in evolution's Contacts view, which is
testing nonexistence of a CATEGORIES attribute in a vCard.
Kjartan Maraas [Thu, 20 Jun 2013 08:47:57 +0000 (10:47 +0200)]
Updated Norwegian bokmål translation
Matthew Barnes [Mon, 17 Jun 2013 14:46:08 +0000 (10:46 -0400)]
data_book_error_from_gdata_error: Make sure we actually set an error.
Had an instance where the error code didn't match one of the predefined
cases. The GError never got set, and we crashed trying to deference it.
Aurimas Černius [Sun, 16 Jun 2013 14:55:42 +0000 (17:55 +0300)]
Updated Lithuanian translation
Matthew Barnes [Sun, 16 Jun 2013 11:54:30 +0000 (07:54 -0400)]
Post-release version bump.
Matthew Barnes [Sun, 16 Jun 2013 11:32:18 +0000 (07:32 -0400)]
NEWS update for 3.9.3 release.
Fabiano Fidêncio [Fri, 14 Jun 2013 16:17:20 +0000 (18:17 +0200)]
Make the statements explicit when using ternary if
Based on:
https://git.gnome.org/browse/evolution-data-server/commit/?id=
53a161d1eed173a
Ken VanDine [Sat, 8 Jun 2013 14:37:28 +0000 (10:37 -0400)]
Bug 701797 - UOA: Remove ResponseType and AuthPath from service files
Remove ResponseType and AuthPath from the Google Contacts / GMail
service files, as it should be handled by the provider and it breaks
OAuth2 authentication with the latest changes to QUrl.
Tristan Van Berkom [Sat, 8 Jun 2013 14:12:14 +0000 (10:12 -0400)]
Bug 701838 - Work around a semantic API break in GObject
Recent versions of GObject fire critical messages if properties are
installed outside of class initializers (causing all of EDS tests to
fail). This patch adds some class data and initializes the class in
the dynamic subclass initializer.
Note that the class data which should normally be freed in the class
finalizer is not freed, since it is a static type the finalizer will
never run (and GLib also takes the liberty of firing critical messages
for specifying a class finalizer).
Marián Čavojský [Wed, 5 Jun 2013 18:40:16 +0000 (20:40 +0200)]
Updated slovak translation
Milan Crha [Wed, 5 Jun 2013 13:57:31 +0000 (15:57 +0200)]
Bug #699448 - Crash under e_book_backend_ldap_stop_view()
Matej Urbančič [Mon, 3 Jun 2013 19:40:16 +0000 (21:40 +0200)]
Updated Slovenian translation
Marek Černocký [Mon, 3 Jun 2013 12:37:35 +0000 (14:37 +0200)]
Updated Czech translation
Milan Crha [Mon, 3 Jun 2013 11:22:25 +0000 (13:22 +0200)]
Be able to debug SMTP provider separately
One can use CAMEL_DEBUG=smtp to debug only SMTP camel provider.
Fran Diéguez [Sat, 1 Jun 2013 21:35:47 +0000 (23:35 +0200)]
Updated Galician translations
Milan Crha [Fri, 31 May 2013 16:47:06 +0000 (18:47 +0200)]
Bug #672837 - Crash in camel_pop3_engine_command_free
Matthew Barnes [Fri, 31 May 2013 11:17:07 +0000 (07:17 -0400)]
Add camel_imapx_conn_manager_ref_store().
Replaces camel_imapx_conn_manager_get_store(), which is not thread-safe.
Also, track the CamelStore internally with a GWeakRef instead of a weak
pointer, which is also not thread-safe.
Matthew Barnes [Thu, 30 May 2013 19:00:58 +0000 (15:00 -0400)]
Add camel_imapx_command_add_qresync_parameter().
This splits a big wad of extra logic in imapx_select() out into a nice
and tidy utility function.
One important change, however, is the message sequence match data stops
at the lesser message count reported by the IMAP server vs. our summary.
This is to work around a frequent Zimbra IMAP failure where listing a
message sequence number in a QRESYNC parameter which exceeds the true
message count results in a so-called "parse error" from Zimbra:
A00010 SELECT INBOX (QRESYNC (... (1,5,10 ...)))
* 9 EXISTS
...
A00010 BAD parse error: invalid message sequence number: 1,5,10
This scenario can happen if messages have been expunged from the
folder, but our summary has not yet been updated to reflect that.
Not sure if this is a Zimbra bug. I certainly would not call it a
"parse error", but RFC 5162 is not clear on this detail.
Matthew Barnes [Thu, 30 May 2013 17:20:02 +0000 (13:20 -0400)]
Move imapx_get_uid_from_index() to camel-imapx-utils.
Rename it camel_imapx_dup_uid_from_summary_index() and take a
CamelFolder instead of a CamelFolderSummary.
Daniel Mustieles [Thu, 30 May 2013 15:43:27 +0000 (17:43 +0200)]
Updated Spanish translation
Tristan Van Berkom [Fri, 10 May 2013 08:23:16 +0000 (17:23 +0900)]
test-client-custom-summary.c: Added tests for regex queries
Tristan Van Berkom [Tue, 23 Apr 2013 08:36:47 +0000 (17:36 +0900)]
EBookBackendSqliteDB: Support regex queries
E_BOOK_QUERY_REGEX_NORMAL is supported in summary queries if the
query field is summarized, E_BOOK_QUERY_REGEX_RAW and normalized
but non-summarized queries are delegated to EBookBackendSexp for
matching.
Tristan Van Berkom [Tue, 23 Apr 2013 08:35:54 +0000 (17:35 +0900)]
EBookBackendSexp: Support regex query types.
Tristan Van Berkom [Tue, 23 Apr 2013 08:34:54 +0000 (17:34 +0900)]
EBookQuery: Added regex query API (bug 701258)
Added E_BOOK_QUERY_REGEX_NORMAL and E_BOOK_QUERY_REGEX_RAW
ManojKumar Giri [Wed, 29 May 2013 16:06:55 +0000 (21:36 +0530)]
Updated Odia Translation.
ManojKumar Giri [Wed, 29 May 2013 15:58:37 +0000 (21:28 +0530)]
Updated Odia Translation.
Matthew Barnes [Sun, 26 May 2013 15:03:47 +0000 (11:03 -0400)]
Post-release version bump.
Matthew Barnes [Sun, 26 May 2013 14:51:05 +0000 (10:51 -0400)]
NEWS update for 3.9.2 release.
Matthew Barnes [Fri, 24 May 2013 17:19:47 +0000 (13:19 -0400)]
libedataserver: Fix some documentation typos.
Matthew Barnes [Tue, 21 May 2013 18:54:33 +0000 (14:54 -0400)]
Improve error handling in imapx_command_fetch_message_done().
Spotted a few execution paths where we claim success but have no
stream object for the fetched message.
Matthew Barnes [Tue, 21 May 2013 18:32:44 +0000 (14:32 -0400)]
camel_imapx_command_set_error_if_failed() minor cleanup.
Matthew Barnes [Tue, 21 May 2013 02:48:40 +0000 (22:48 -0400)]
Make CamelNNTPStore a bit more thread-safe.
* Make CamelNNTPStore's public members private.
* Guard the private CamelNNTPStore members with a mutex.
* Add thread-safe accessors:
camel_nntp_store_ref_cache()
camel_nntp_store_ref_stream()
camel_nntp_store_ref_summary()
camel_nntp_store_get_current_group()
camel_nntp_store_dup_current_group()
camel_nntp_store_set_current_group()
camel_nntp_store_add_capabilities()
camel_nntp_store_has_capabilities()
camel_nntp_store_remove_capabilities()
Matthew Barnes [Tue, 21 May 2013 17:26:21 +0000 (13:26 -0400)]
CamelNNTPStore: Remove unused "password_reprompt" flag.
Matthew Barnes [Tue, 21 May 2013 17:25:48 +0000 (13:25 -0400)]
CamelNNTPStore: Remove unused "posting_allowed" flag.
Matthew Barnes [Tue, 21 May 2013 17:25:07 +0000 (13:25 -0400)]
CamelNNTPStore: Remove unused "extensions" flags.
Matthew Barnes [Tue, 21 May 2013 00:57:01 +0000 (20:57 -0400)]
CamelNNTPStore: Remove CamelMemStream member.
It's just used for assembling command strings. Use a GString instead,
and for heaven sake don't make it a public member! That's not thread-
safe at all.
Matthew Barnes [Mon, 20 May 2013 21:43:46 +0000 (17:43 -0400)]
Make CamelPOP3Store a bit more thread-safe.
* Make CamelPOP3Store's cache and engine members private.
* Guard the private cache and engine members with a mutex.
* Add thread-safe accessors which return a new reference:
camel_pop3_store_ref_cache()
camel_pop3_store_ref_engine()
TODO: CamelPOP3Engine itself should also be made thread-safe, but that
will be considerably more work. This commit merely prevents the
CamelPOP3Engine from being finalized while still in use.
David Woodhouse [Mon, 20 May 2013 13:14:24 +0000 (14:14 +0100)]
Bug 699597 - Autocomplete using GAL is slow
With large addressbooks, using an inner join which produces hundreds of
thousands of duplicate results, and then filtering them back down to what
we really wanted with 'DISTINCT' is really inefficient. I can't even tell
you *how* inefficient, because it didn't complete a single query in the
hours that I left it running. Switch it to a more sensible outer join and
it completes in a second or so on my 216000-entry address book.
Kjartan Maraas [Mon, 20 May 2013 12:42:29 +0000 (14:42 +0200)]
Updated Norwegian bokmål translation
Milan Crha [Thu, 16 May 2013 14:15:05 +0000 (16:15 +0200)]
CamelGpgContext: Report decrypt error only if no data was decrypted
When there is a message which is both signed and encrypted in once,
the gpg checks also signature of the sender, and if the sender's key
is not available between user's keys, or it's not trusted, or
the signature is otherwise incorrect, then the gpg returns failure,
which caused no data returned, though the decrypt itself worked
flawlessly.
Milan Crha [Thu, 16 May 2013 09:27:35 +0000 (11:27 +0200)]
test-intervaltree.c: Include toplevel libical header file
Shankar Prasad [Tue, 14 May 2013 09:43:46 +0000 (15:13 +0530)]
updated kn translations
Shankar Prasad [Tue, 14 May 2013 09:16:10 +0000 (14:46 +0530)]
updated kn translations