gqclient-commit Mailing List for GQ LDAP client (Page 3)
Status: Beta
Brought to you by:
sur5r
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
(14) |
Jul
(38) |
Aug
(5) |
Sep
(29) |
Oct
(30) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(30) |
Oct
(217) |
Nov
(24) |
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
(53) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <he...@us...> - 2006-04-04 23:34:57
|
Update of /cvsroot/gqclient/gq In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10242 Modified Files: ChangeLog Makefile.am configure.in Added Files: autogen.sh Removed Files: ABOUT-NLS mkinstalldirs Log Message: 2006-04-05 Sven Herzberg <he...@gn...> * intl/*, * mkinstalldirs, * ABOUT-NLS: removed auto-generated files * Makefile.am: updated by gettext * autogen.sh: new script to generate the build framework * configure.in: removed po/Makefile * src/input.c, * src/mainwin.c: don't try to translate empty strings --- NEW FILE: autogen.sh --- #!/bin/bash # Execute this script to create these files: # aclocal.m4 # configure # config.h.in # Makefile.in (in every dir) # # And to run the configure script gettextize -f -c --intl --no-changelog || (echo "Please install gettext"; exit 1) aclocal-1.9 -I m4 || (echo "Please install automake 1.9"; exit 1) autoheader || (echo "Please install autoconf"; exit 1) automake-1.9 || (echo "Please install automake 1.9"; exit 1) autoconf || (echo "Please install autoconf"; exit 1) echo "Running ./configure $@" ./configure $@ Index: ChangeLog =================================================================== RCS file: /cvsroot/gqclient/gq/ChangeLog,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** ChangeLog 5 May 2005 04:48:16 -0000 1.59 --- ChangeLog 4 Apr 2006 23:34:47 -0000 1.60 *************** *** 1,2 **** --- 1,13 ---- + 2006-04-05 Sven Herzberg <he...@gn...> + + * intl/*, + * mkinstalldirs, + * ABOUT-NLS: removed auto-generated files + * Makefile.am: updated by gettext + * autogen.sh: new script to generate the build framework + * configure.in: removed po/Makefile + * src/input.c, + * src/mainwin.c: don't try to translate empty strings + 2005-05-05 David Malcolm <dma...@re...> Index: Makefile.am =================================================================== RCS file: /cvsroot/gqclient/gq/Makefile.am,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Makefile.am 30 Sep 2003 17:20:24 -0000 1.11 --- Makefile.am 4 Apr 2006 23:34:47 -0000 1.12 *************** *** 3,7 **** SUBDIRS = intl src icons po ! EXTRA_DIST = gq.spec.in README.TLS README.NLS README.langpack RELNOTES dist-hook: gq.spec --- 3,7 ---- SUBDIRS = intl src icons po ! EXTRA_DIST = config.rpath gq.spec.in README.TLS README.NLS README.langpack RELNOTES dist-hook: gq.spec *************** *** 26,27 **** --- 26,29 ---- GZIP=$(GZIP_ENV) tar chozf $(LANGPACK).tar.gz $(LANGPACK) -rm -rf $(LANGPACK) + + ACLOCAL_AMFLAGS = -I m4 Index: configure.in =================================================================== RCS file: /cvsroot/gqclient/gq/configure.in,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** configure.in 3 Nov 2003 21:47:09 -0000 1.58 --- configure.in 4 Apr 2006 23:34:47 -0000 1.59 *************** *** 720,724 **** intl/Makefile po/Makefile.in - po/Makefile ]) --- 720,723 ---- --- ABOUT-NLS DELETED --- --- mkinstalldirs DELETED --- |
From: <he...@us...> - 2006-04-04 23:34:57
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10242/src Modified Files: input.c mainwin.c Log Message: 2006-04-05 Sven Herzberg <he...@gn...> * intl/*, * mkinstalldirs, * ABOUT-NLS: removed auto-generated files * Makefile.am: updated by gettext * autogen.sh: new script to generate the build framework * configure.in: removed po/Makefile * src/input.c, * src/mainwin.c: don't try to translate empty strings Index: input.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/input.c,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 *** input.c 27 Apr 2005 02:44:16 -0000 1.85 --- input.c 4 Apr 2006 23:34:48 -0000 1.86 *************** *** 1303,1307 **** (gpointer) edit_window); ! error_context = error_new_context(_(""), edit_window); vbox = gtk_vbox_new(FALSE, 0); --- 1303,1307 ---- (gpointer) edit_window); ! error_context = error_new_context("", edit_window); vbox = gtk_vbox_new(FALSE, 0); Index: mainwin.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/mainwin.c,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** mainwin.c 3 Nov 2003 21:07:57 -0000 1.55 --- mainwin.c 4 Apr 2006 23:34:48 -0000 1.56 *************** *** 136,140 **** if (type > 0) { struct tab *tab = new_modetab(win, type); ! int error_ctx = error_new_context(_(""), pw->win); if (tab->vtab && tab->vtab->restore_snapshot) { --- 136,140 ---- if (type > 0) { struct tab *tab = new_modetab(win, type); ! int error_ctx = error_new_context("", pw->win); if (tab->vtab && tab->vtab->restore_snapshot) { |
Update of /cvsroot/gqclient/gq/intl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10242/intl Removed Files: ChangeLog Makefile.in VERSION bindtextdom.c config.charset dcgettext.c dcigettext.c dcngettext.c dgettext.c dngettext.c explodename.c finddomain.c gettext.c gettext.h gettextP.h hash-string.h intl-compat.c l10nflist.c libgettext.h libgnuintl.h loadinfo.h loadmsgcat.c localcharset.c locale.alias localealias.c ngettext.c plural.c plural.y ref-add.sin ref-del.sin textdomain.c Log Message: 2006-04-05 Sven Herzberg <he...@gn...> * intl/*, * mkinstalldirs, * ABOUT-NLS: removed auto-generated files * Makefile.am: updated by gettext * autogen.sh: new script to generate the build framework * configure.in: removed po/Makefile * src/input.c, * src/mainwin.c: don't try to translate empty strings --- ChangeLog DELETED --- --- Makefile.in DELETED --- --- VERSION DELETED --- --- bindtextdom.c DELETED --- --- config.charset DELETED --- --- dcgettext.c DELETED --- --- dcigettext.c DELETED --- --- dcngettext.c DELETED --- --- dgettext.c DELETED --- --- dngettext.c DELETED --- --- explodename.c DELETED --- --- finddomain.c DELETED --- --- gettext.c DELETED --- --- gettext.h DELETED --- --- gettextP.h DELETED --- --- hash-string.h DELETED --- --- intl-compat.c DELETED --- --- l10nflist.c DELETED --- --- libgettext.h DELETED --- --- libgnuintl.h DELETED --- --- loadinfo.h DELETED --- --- loadmsgcat.c DELETED --- --- localcharset.c DELETED --- --- locale.alias DELETED --- --- localealias.c DELETED --- --- ngettext.c DELETED --- --- plural.c DELETED --- --- plural.y DELETED --- --- ref-add.sin DELETED --- --- ref-del.sin DELETED --- --- textdomain.c DELETED --- |
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv12738 Modified Files: browse-dnd.c browse-export.c browse.c formfill.c input.c ldapops.c schema.c server-browse.c tinput.c util.c Log Message: try to fall back on regular LDAP operations if *_ext calls fail Index: browse-dnd.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse-dnd.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** browse-dnd.c 3 Nov 2003 21:07:56 -0000 1.21 --- browse-dnd.c 7 Nov 2003 12:02:10 -0000 1.22 *************** *** 912,916 **** dn, /* base */ scope, /* search scope */ ! "objectClass=*", /* filter */ attrs, /* attrs */ 0, /* attrsonly */ --- 912,916 ---- dn, /* base */ scope, /* search scope */ ! "(objectClass=*)", /* filter */ attrs, /* attrs */ 0, /* attrsonly */ *************** *** 920,923 **** --- 920,927 ---- LDAP_NO_LIMIT, /* sizelimit */ &res); + + if(rc == LDAP_NOT_SUPPORTED) { + rc = ldap_search_s(ld, dn, scope, "(objectClass=*)", attrs, 0, &res); + } if (rc == LDAP_SUCCESS) { Index: browse-export.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse-export.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** browse-export.c 3 Nov 2003 22:28:24 -0000 1.6 --- browse-export.c 7 Nov 2003 12:02:10 -0000 1.7 *************** *** 185,190 **** LDAP_NO_LIMIT, /* sizelimit */ &res); ! ! if (rc == LDAP_SUCCESS) { for(e = ldap_first_entry(ld, res); e; e = ldap_next_entry(ld, e)) { --- 185,196 ---- LDAP_NO_LIMIT, /* sizelimit */ &res); ! ! if(rc == LDAP_NOT_SUPPORTED) { ! rc = ldap_search_s(ld, (char *) dos->dn, ! dos->flags == LDAP_SCOPE_SUBTREE ? LDAP_SCOPE_SUBTREE : LDAP_SCOPE_BASE, ! "(objectClass=*)", ! attrs, 0, &res); ! } ! if (rc == LDAP_SUCCESS) { for(e = ldap_first_entry(ld, res); e; e = ldap_next_entry(ld, e)) { Index: browse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse.c,v retrieving revision 1.95 retrieving revision 1.96 diff -C2 -d -r1.95 -r1.96 *** browse.c 3 Nov 2003 21:14:41 -0000 1.95 --- browse.c 7 Nov 2003 12:02:10 -0000 1.96 *************** *** 1023,1026 **** --- 1023,1032 ---- &res); + if(rc == LDAP_NOT_SUPPORTED) { + rc = ldap_search_s(ld, s->str, LDAP_SCOPE_BASE, + "(objectClass=*)", + attrs, 0, &res); + } + if (rc == LDAP_SUCCESS) { e = ldap_first_entry(ld, res); Index: formfill.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/formfill.c,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** formfill.c 3 Nov 2003 21:07:57 -0000 1.45 --- formfill.c 7 Nov 2003 12:02:11 -0000 1.46 *************** *** 204,209 **** LDAP_NO_LIMIT, /* sizelimit */ &res); ! ! if (rc == LDAP_SERVER_DOWN) { server->server_down++; --- 204,213 ---- LDAP_NO_LIMIT, /* sizelimit */ &res); ! ! if(rc == LDAP_NOT_SUPPORTED) { ! rc = ldap_search_s(ld, dn, LDAP_SCOPE_BASE, "(objectclass=*)", ! server->hide_internal ? NULL : attrs, 0, &res); ! } ! if (rc == LDAP_SERVER_DOWN) { server->server_down++; *************** *** 214,218 **** return(formlist); } ! if (rc == LDAP_SUCCESS) { entry = ldap_first_entry(ld, res); --- 218,222 ---- return(formlist); } ! if (rc == LDAP_SUCCESS) { entry = ldap_first_entry(ld, res); Index: input.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/input.c,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -d -r1.83 -r1.84 *** input.c 3 Nov 2003 21:28:37 -0000 1.83 --- input.c 7 Nov 2003 12:02:11 -0000 1.84 *************** *** 1634,1637 **** --- 1634,1642 ---- res = ldap_add_ext_s(ld, dn, mods, ctrls, NULL); + + if(res == LDAP_NOT_SUPPORTED) { + res = ldap_add_s(ld, dn, mods); + } + ldap_mods_free(mods, 1); *************** *** 1774,1777 **** --- 1779,1787 ---- res = ldap_modify_ext_s(ld, dn, mods, ctrls, NULL); + + if(res == LDAP_NOT_SUPPORTED) { + res = ldap_modify_s(ld, dn, mods); + } + if (res == LDAP_SERVER_DOWN) { server->server_down++; Index: ldapops.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/ldapops.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** ldapops.c 3 Nov 2003 21:07:57 -0000 1.22 --- ldapops.c 7 Nov 2003 12:02:12 -0000 1.23 *************** *** 89,100 **** source_dn, /* search base */ LDAP_SCOPE_BASE, /* scope */ ! "objectClass=*", /* filter */ attrs, /* attrs */ 0, /* attrsonly */ ctrls, /* serverctrls */ ! NULL, /* clientctrls */ ! NULL, /* timeout */ LDAP_NO_LIMIT, /* sizelimit */ &res); if (rc != LDAP_SUCCESS) { --- 89,105 ---- source_dn, /* search base */ LDAP_SCOPE_BASE, /* scope */ ! "(objectClass=*)", /* filter */ attrs, /* attrs */ 0, /* attrsonly */ ctrls, /* serverctrls */ ! NULL, /* clientctrls */ ! NULL, /* timeout */ LDAP_NO_LIMIT, /* sizelimit */ &res); + + if(rc == LDAP_NOT_SUPPORTED) { + rc = ldap_search_s(sld, source_dn, LDAP_SCOPE_BASE, + "(objectClass=*)", attrs, 0, &res); + } if (rc != LDAP_SUCCESS) { *************** *** 301,305 **** source_dn, /* search base */ LDAP_SCOPE_ONELEVEL, /* scope */ ! "objectClass=*", /* filter */ attrs, /* attrs */ 0, /* attrsonly */ --- 306,310 ---- source_dn, /* search base */ LDAP_SCOPE_ONELEVEL, /* scope */ ! "(objectClass=*)", /* filter */ attrs, /* attrs */ 0, /* attrsonly */ *************** *** 309,313 **** LDAP_NO_LIMIT, /* sizelimit */ &res); ! if (rc == LDAP_SUCCESS) { for(e = ldap_first_entry(sld, res) ; --- 314,325 ---- LDAP_NO_LIMIT, /* sizelimit */ &res); ! ! if(rc == LDAP_NOT_SUPPORTED) { ! rc = ldap_search_s(sld, source_dn, ! LDAP_SCOPE_ONELEVEL, ! "(objectClass=*)", ! attrs, 0, &res); ! } ! if (rc == LDAP_SUCCESS) { for(e = ldap_first_entry(sld, res) ; *************** *** 365,368 **** --- 377,386 ---- if (flags & MOVE_DELETE_MOVED && ok) { rc = ldap_delete_ext_s(sld, source_dn, ctrls, NULL); + + if(rc == LDAP_NOT_SUPPORTED) { + rc = ldap_delete_s(sld, source_dn); + } + + #if HAVE_LDAP_CLIENT_CACHE ldap_uncache_entry(sld, source_dn); Index: schema.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/schema.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** schema.c 3 Nov 2003 21:07:58 -0000 1.27 --- schema.c 7 Nov 2003 12:02:12 -0000 1.28 *************** *** 135,138 **** --- 135,143 ---- &res); + if(msg == LDAP_NOT_SUPPORTED) { + msg = ldap_search_s(ld, "", LDAP_SCOPE_BASE, "(objectClass=*)", + (char **) subschemasubentry, 0, &res); + } + if(msg != LDAP_SUCCESS) { if (msg == LDAP_SERVER_DOWN) { *************** *** 177,183 **** msg = ldap_search_ext_s(ld, subschema, LDAP_SCOPE_BASE, ! "(objectclass=*)", (char**) schema_attrs, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &res); g_free_if(subschema); --- 182,194 ---- msg = ldap_search_ext_s(ld, subschema, LDAP_SCOPE_BASE, ! "(objectClass=*)", (char**) schema_attrs, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &res); + + if(msg == LDAP_NOT_SUPPORTED) { + msg = ldap_search_s(ld, subschema, LDAP_SCOPE_BASE, + "(objectClass=*)", (char**) schema_attrs, 0, + &res); + } g_free_if(subschema); Index: server-browse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/server-browse.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** server-browse.c 2 Nov 2003 17:23:49 -0000 1.8 --- server-browse.c 7 Nov 2003 12:02:12 -0000 1.9 *************** *** 397,401 **** msg = ldap_search_ext_s(ld, "", LDAP_SCOPE_BASE, /* scope */ ! "(objectclass=*)", /* filter */ attrs, /* attrs */ 0, /* attrsonly */ --- 397,401 ---- msg = ldap_search_ext_s(ld, "", LDAP_SCOPE_BASE, /* scope */ ! "(objectClass=*)", /* filter */ attrs, /* attrs */ 0, /* attrsonly */ *************** *** 405,408 **** --- 405,414 ---- LDAP_NO_LIMIT, /* sizelimit */ &res); + + if(msg == LDAP_NOT_SUPPORTED) { + msg = ldap_search_s(ld, "", LDAP_SCOPE_BASE, + "(objectClass=*)", + attrs, 0, &res); + } if(msg != LDAP_SUCCESS) { Index: tinput.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/tinput.c,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** tinput.c 2 Nov 2003 07:20:44 -0000 1.44 --- tinput.c 7 Nov 2003 12:02:12 -0000 1.45 *************** *** 129,133 **** msg = ldap_search_ext_s(ld, dn, LDAP_SCOPE_BASE, ! "(objectclass=*)", oc_only, /* attrs */ 0, /* attrsonly */ --- 129,133 ---- msg = ldap_search_ext_s(ld, dn, LDAP_SCOPE_BASE, ! "(objectClass=*)", oc_only, /* attrs */ 0, /* attrsonly */ *************** *** 137,140 **** --- 137,146 ---- LDAP_NO_LIMIT, /* sizelimit */ &res); + + if(msg == LDAP_NOT_SUPPORTED) { + msg = ldap_search_s(ld, dn, LDAP_SCOPE_BASE, + "(objectClass=*)", + oc_only, 0, &res); + } if(msg != LDAP_SUCCESS) { Index: util.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/util.c,v retrieving revision 1.89 retrieving revision 1.90 diff -C2 -d -r1.89 -r1.90 *** util.c 3 Nov 2003 22:28:24 -0000 1.89 --- util.c 7 Nov 2003 12:02:13 -0000 1.90 *************** *** 702,706 **** msg = ldap_search_ext_s(ld, dn, LDAP_SCOPE_ONELEVEL, ! "(objectclass=*)", (char **)attrs, /* attrs */ 1, /* attrsonly */ --- 702,706 ---- msg = ldap_search_ext_s(ld, dn, LDAP_SCOPE_ONELEVEL, ! "(objectClass=*)", (char **)attrs, /* attrs */ 1, /* attrsonly */ *************** *** 711,714 **** --- 711,720 ---- &res); + if(msg == LDAP_NOT_SUPPORTED) { + msg = ldap_search_s(ld, dn, LDAP_SCOPE_ONELEVEL, + "(objectClass=*)", + (char **) attrs, 1, &res); + } + if(msg == LDAP_SUCCESS) { for (e = ldap_first_entry(ld, res); e ; *************** *** 738,742 **** msg = ldap_delete_ext_s(ld, dn, ctrls, NULL); ! /* msg = ldap_delete_s(ld, dn); */ #if HAVE_LDAP_CLIENT_CACHE ldap_uncache_entry(ld, dn); --- 744,751 ---- msg = ldap_delete_ext_s(ld, dn, ctrls, NULL); ! if(msg == LDAP_NOT_SUPPORTED) { ! msg = ldap_delete_s(ld, dn); ! } ! #if HAVE_LDAP_CLIENT_CACHE ldap_uncache_entry(ld, dn); |
From: <sta...@us...> - 2003-11-03 23:13:25
|
Update of /cvsroot/gqclient/gq/po In directory sc8-pr-cvs1:/tmp/cvs-serv30343/po Modified Files: cs.po de.po ja.po zh_CN.po Log Message: * make dist induced changes Index: cs.po =================================================================== RCS file: /cvsroot/gqclient/gq/po/cs.po,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** cs.po 3 Nov 2003 23:01:54 -0000 1.10 --- cs.po 3 Nov 2003 23:13:22 -0000 1.11 *************** *** 6,10 **** msgstr "" "Project-Id-Version: gq 0.6.0\n" ! "POT-Creation-Date: 2003-11-03 23:29+0100\n" "PO-Revision-Date: 2002-10-09 14:40+0200\n" "Last-Translator: Tomas Dobrovolny <tom...@at...>\n" --- 6,10 ---- msgstr "" "Project-Id-Version: gq 0.6.0\n" ! "POT-Creation-Date: 2003-11-04 00:07+0100\n" "PO-Revision-Date: 2002-10-09 14:40+0200\n" "Last-Translator: Tomas Dobrovolny <tom...@at...>\n" Index: de.po =================================================================== RCS file: /cvsroot/gqclient/gq/po/de.po,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** de.po 3 Nov 2003 22:56:00 -0000 1.26 --- de.po 3 Nov 2003 23:13:22 -0000 1.27 *************** *** 6,10 **** msgstr "" "Project-Id-Version: gq 1.0\n" ! "POT-Creation-Date: 2003-11-03 23:29+0100\n" "PO-Revision-Date: 2003-11-03 23:55+0100\n" "Last-Translator: Peter Stamfest <pe...@st...>\n" --- 6,10 ---- msgstr "" "Project-Id-Version: gq 1.0\n" ! "POT-Creation-Date: 2003-11-04 00:07+0100\n" "PO-Revision-Date: 2003-11-03 23:55+0100\n" "Last-Translator: Peter Stamfest <pe...@st...>\n" *************** *** 833,837 **** "If set, turns on to use user-friendly attribute names (if configured) in " "browse mode." ! msgstr "Wenn aktiviert werden benutzerdefinierte Attributsnamen im Browse mode verwendet." #. Format frame --- 833,839 ---- "If set, turns on to use user-friendly attribute names (if configured) in " "browse mode." ! msgstr "" ! "Wenn aktiviert werden benutzerdefinierte Attributsnamen im Browse mode " ! "verwendet." #. Format frame Index: ja.po =================================================================== RCS file: /cvsroot/gqclient/gq/po/ja.po,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** ja.po 3 Nov 2003 23:01:55 -0000 1.14 --- ja.po 3 Nov 2003 23:13:22 -0000 1.15 *************** *** 6,10 **** msgstr "" "Project-Id-Version: gq 1.0alpha3\n" ! "POT-Creation-Date: 2003-11-03 23:29+0100\n" "PO-Revision-Date: 2003-10-22 18:17+0900\n" "Last-Translator: Hatuka*nezumi <ne...@jc...>\n" --- 6,10 ---- msgstr "" "Project-Id-Version: gq 1.0alpha3\n" ! "POT-Creation-Date: 2003-11-04 00:07+0100\n" "PO-Revision-Date: 2003-10-22 18:17+0900\n" "Last-Translator: Hatuka*nezumi <ne...@jc...>\n" Index: zh_CN.po =================================================================== RCS file: /cvsroot/gqclient/gq/po/zh_CN.po,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** zh_CN.po 3 Nov 2003 23:01:56 -0000 1.8 --- zh_CN.po 3 Nov 2003 23:13:22 -0000 1.9 *************** *** 6,10 **** msgstr "" "Project-Id-Version: 0.7.0beta2\n" ! "POT-Creation-Date: 2003-11-03 23:29+0100\n" "PO-Revision-Date: 2003-01-04 02:58+0800\n" "Last-Translator: hleil liu <hl...@ya...>\n" --- 6,10 ---- msgstr "" "Project-Id-Version: 0.7.0beta2\n" ! "POT-Creation-Date: 2003-11-04 00:07+0100\n" "PO-Revision-Date: 2003-01-04 02:58+0800\n" "Last-Translator: hleil liu <hl...@ya...>\n" |
From: <sta...@us...> - 2003-11-03 23:07:46
|
Update of /cvsroot/gqclient/gq In directory sc8-pr-cvs1:/tmp/cvs-serv29329 Modified Files: ChangeLog Log Message: * Get ready for 1.0beta1 Index: ChangeLog =================================================================== RCS file: /cvsroot/gqclient/gq/ChangeLog,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** ChangeLog 3 Nov 2003 21:53:06 -0000 1.51 --- ChangeLog 3 Nov 2003 23:07:42 -0000 1.52 *************** *** 10,13 **** --- 10,14 ---- * Added configuration setting to turn of parsing of ldap.conf and ~/.ldaprc et.al. + * Released 1.0beta1 2003-11-02 Peter Stamfest <pe...@st...> * Added user-friendly attribute names for those who like it - I *************** *** 15,18 **** --- 16,20 ---- LDAP attribute related preferences on a per attribute basis. * Fixed several bugs introduces during the last few days. + * Fixed SF bug #832340 * Did a lot of testing 2003-11-01 Peter Stamfest <pe...@st...> |
From: <sta...@us...> - 2003-11-03 23:03:49
|
Update of /cvsroot/gqclient/gq In directory sc8-pr-cvs1:/tmp/cvs-serv28603 Modified Files: TODO Log Message: * Updated to current status Index: TODO =================================================================== RCS file: /cvsroot/gqclient/gq/TODO,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** TODO 27 Oct 2003 22:18:51 -0000 1.44 --- TODO 3 Nov 2003 23:03:45 -0000 1.45 *************** *** 16,19 **** --- 16,22 ---- * [1.0] Handle update referrals - iff I can find out how to detect them + * Avoid extensive flickering when using the "Add as new" button in + browse mode + * [1.x] Allow to use a "master password" for passwords stored in the .gq config file. Shouldn't be too hard - either implement through *************** *** 21,29 **** once it becomes available in mainstream distros. ! * update schemabrowse tree on serverlist update (browsetree already done) ! ! * search mode: ! - multiple selections, abstract selection list function for delete, ! export to LDIF etc * Memory leaks - though it has been getting better. I do no longer belief them --- 24,30 ---- once it becomes available in mainstream distros. ! * [1.x] update schemabrowse tree on serverlist update (browsetree ! already done) - Will be done when the GtkTree gets removed in schema ! browse mode. * Memory leaks - though it has been getting better. I do no longer belief them *************** *** 51,55 **** * Take care to properly deal with schema information in case of a lost ! connection with a server. * [1.x] Entry widget: fonts are not used on startup --- 52,58 ---- * Take care to properly deal with schema information in case of a lost ! connection with a server. - Maybe not actually necessary, a quick ! check revealed that schema information seems to never be stored for ! longer periods of time. * [1.x] Entry widget: fonts are not used on startup *************** *** 140,143 **** --- 143,152 ---- FIXED BUGS / IMPLEMENTED ENHANCEMENTS ------------------------------------- + + * [1.0] Implement the new saving-policy for all cases. + + * [1.0] search mode: + - multiple selections, abstract selection list function for delete, + export to LDIF etc * [1.0] dt_password: Add LANMAN hash for completeness. |
From: <sta...@us...> - 2003-11-03 23:02:02
|
Update of /cvsroot/gqclient/gq/po In directory sc8-pr-cvs1:/tmp/cvs-serv28177 Modified Files: cs.po ja.po zh_CN.po Log Message: * Updated po files for new release (1.0beta1) Index: cs.po =================================================================== RCS file: /cvsroot/gqclient/gq/po/cs.po,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** cs.po 22 Oct 2003 22:27:59 -0000 1.9 --- cs.po 3 Nov 2003 23:01:54 -0000 1.10 *************** *** 6,10 **** msgstr "" "Project-Id-Version: gq 0.6.0\n" ! "POT-Creation-Date: 2003-10-21 09:00+0200\n" "PO-Revision-Date: 2002-10-09 14:40+0200\n" "Last-Translator: Tomas Dobrovolny <tom...@at...>\n" --- 6,10 ---- msgstr "" "Project-Id-Version: gq 0.6.0\n" ! "POT-Creation-Date: 2003-11-03 23:29+0100\n" "PO-Revision-Date: 2002-10-09 14:40+0200\n" "Last-Translator: Tomas Dobrovolny <tom...@at...>\n" *************** *** 30,33 **** --- 30,45 ---- msgstr[0] "Nový server" + #, fuzzy + msgid "Expanding subtree" + msgstr "Rozbalit v¹e" + + #, fuzzy + msgid "Selecting entry" + msgstr "Chyba odstranìní polo¾ky" + + #, fuzzy + msgid "Refreshing entry" + msgstr "Chyba pøi získávání polo¾ky" + #, fuzzy, c-format msgid "Closed connection to server %s" *************** *** 85,88 **** --- 97,108 ---- msgstr "" + #, c-format + msgid "Configuration saved to '%s'" + msgstr "" + + #, c-format + msgid "Saving configuration to '%s' failed." + msgstr "" + msgid "Error writing configfile" msgstr "Chyba zápisu konfiguraèního souboru" *************** *** 109,112 **** --- 129,133 ---- msgstr "Filtr pojmenovaný '%s' ji¾ existuje" + #. gtk_container_border_width(GTK_CONTAINER(window), CONTAINER_BORDER_WIDTH); msgid "Filter name" msgstr "Název filtru" *************** *** 125,128 **** --- 146,153 ---- msgstr "OK" + #, fuzzy + msgid "_Cancel" + msgstr "Zru¹it" + msgid "Server" msgstr "Server" *************** *** 149,152 **** --- 174,180 ---- msgstr "Kopírovat" + msgid "Filter list window opened." + msgstr "" + msgid "Edit filter" msgstr "Upravit filtr" *************** *** 171,184 **** #, fuzzy ! msgid "_Cancel" ! msgstr "Zru¹it" ! msgid "You must fill in a name for the filter" msgstr "Jméno filtru musí být zadáno" ! #. shouldn't happen ! msgid "Save failed" msgstr "Ulo¾ení selhalo" msgid "Unknown error" msgstr "Neznámá chyba" --- 199,221 ---- #, fuzzy ! msgid "Editing filter cancelled." ! msgstr "Upravit filtr" ! #, c-format ! msgid "Edit filter window opened for filter '%s'." ! msgstr "" ! ! #, fuzzy ! msgid "Edit filter window opened for new filter." msgstr "Jméno filtru musí být zadáno" ! #, fuzzy ! msgid "Saving filter" msgstr "Ulo¾ení selhalo" + msgid "You must fill in a name for the filter" + msgstr "Jméno filtru musí být zadáno" + + #. shouldn't happen msgid "Unknown error" msgstr "Neznámá chyba" *************** *** 247,250 **** --- 284,298 ---- msgstr "Zavøít" + msgid "Changeing display type" + msgstr "" + + #, fuzzy + msgid "Showing schema information" + msgstr "¾ádné informace o schématu nebyly nalezeny" + + #, c-format + msgid "User friendly name for LDAP attribute '%s'" + msgstr "" + #, fuzzy, c-format msgid "Attribute %s" *************** *** 269,273 **** msgstr "" ! msgid "Error adding entry" msgstr "Chyba pøi pøidávání polo¾ky" --- 317,328 ---- msgstr "" ! msgid "Set user-friendly name" ! msgstr "" ! ! msgid "Clear user-friendly name" ! msgstr "" ! ! #, fuzzy ! msgid "Adding entry" msgstr "Chyba pøi pøidávání polo¾ky" *************** *** 302,311 **** msgstr "Chyba pøi pøidávání polo¾ky" ! msgid "Oops!" ! msgstr "Tì pic!" msgid "Server schema not available." msgstr "" msgid "Not an 'extensibleObject'" msgstr "" --- 357,373 ---- msgstr "Chyba pøi pøidávání polo¾ky" ! msgid "Adding attribute value field" ! msgstr "" ! ! msgid "Changing display type" ! msgstr "" msgid "Server schema not available." msgstr "" + #, fuzzy + msgid "Creating new attribute" + msgstr "Po¾adované atributy" + msgid "Not an 'extensibleObject'" msgstr "" *************** *** 314,320 **** msgstr "" - msgid "Not enough memory to make form." - msgstr "Nedostatek pamìti pro vytvoøení formuláøe" - #. an error occurred msgid "Cannot retrieve DN of entry." --- 376,379 ---- *************** *** 330,333 **** --- 389,395 ---- msgstr "" + msgid "Saving main window snapshot" + msgstr "" + #. current_search_options_window = window; msgid "Message Log" *************** *** 691,694 **** --- 753,760 ---- msgstr "" + #, c-format + msgid "Server properties window opened for server '%s'" + msgstr "" + msgid "Preferences" msgstr "Preference" *************** *** 717,720 **** --- 783,793 ---- msgstr "" + msgid "Securit_y" + msgstr "" + + #, fuzzy + msgid "Preferences window opened" + msgstr "Preference" + #. Edit button #, fuzzy *************** *** 791,794 **** --- 864,877 ---- msgstr "" + #. browse_use_user_friendly button + #, fuzzy + msgid "Use _user friendly attribute names" + msgstr "Pou¾ito v atributech typù" + + msgid "" + "If set, turns on to use user-friendly attribute names (if configured) in " + "browse mode." + msgstr "" + #. Format frame #, fuzzy *************** *** 842,850 **** msgstr "" ! #. server didn't publish a schema, try the last resort ! #. schemaserver ! #, fuzzy ! msgid "Using schema from last-resort schemaserver" ! msgstr "Nouzový schema server" #, fuzzy, c-format --- 925,958 ---- msgstr "" ! #. Persistency frame ! msgid "Security" ! msgstr "" ! ! #. Restore Window Sizes checkbox ! msgid "_Never leak credentials" ! msgstr "" ! ! msgid "" ! "Turn off if you want to use heuristics to find the credentials needed to " ! "follow referrals. The problems with these heuristics is that they may leak " ! "credential information: If you follow a referral to some untrusted server, " ! "then your currently used credentials might get sent to this untrusted " ! "server. This might allow an attacker to sniff credentials during transit to " ! "or on the untrusted server. If turned on, a referral will always use an " ! "anonymous bind." ! msgstr "" ! ! #. Do not use ldap.conf ... checkbox ! msgid "Do not _use ldap.conf/.ldaprc file" ! msgstr "" ! ! msgid "" ! "Turn off the standard use of the system-wide ldap.conf configuration file " ! "and/or the per-user .ldaprc. This works by setting the environment variable " ! "LDAPNOINIT. Note that the this feature only set this variable, but never " ! "deletes it. This means that the default behaviour when not selecting this " ! "depends on the environment variable being set or not prior to the start of " ! "gq. Changing this will only affect future program runs." ! msgstr "" #, fuzzy, c-format *************** *** 872,875 **** --- 980,986 ---- msgstr "Vyhledávání schématu na %s" + msgid "Expanding server schema entry" + msgstr "" + #. Open in new window msgid "Open in new window" *************** *** 888,891 **** --- 999,1005 ---- msgstr "Syntaxe" + msgid "Showing schema details" + msgstr "" + msgid "GQ: objectclass" msgstr "GQ: tøída objektu" *************** *** 961,964 **** --- 1075,1082 ---- msgstr "Syntaxe { délka }" + #, fuzzy + msgid "Attribute details" + msgstr "Detaily atributu" + msgid "Used in attribute types" msgstr "Pou¾ito v atributech typù" *************** *** 1030,1033 **** --- 1148,1154 ---- msgstr "" + msgid "Creating search option window" + msgstr "" + #. find button #, fuzzy *************** *** 1040,1043 **** --- 1161,1171 ---- msgstr "Volby hledání" + msgid "Looking for search-bases" + msgstr "" + + #, fuzzy + msgid "Searching" + msgstr "Hledat" + #, fuzzy msgid "Please enter a valid search filter" *************** *** 1063,1067 **** msgstr "" - #. error #, c-format msgid "Unspecified error searching below '%1$s'" --- 1191,1194 ---- *************** *** 1076,1079 **** --- 1203,1232 ---- msgstr[1] "" + #. Selection submenu + #, fuzzy + msgid "Selection" + msgstr "Volby hledání" + + #. Select All + msgid "Select All" + msgstr "" + + #. Unselect All + msgid "Unselect All" + msgstr "" + + #. Export to LDIF + msgid "Export to LDIF" + msgstr "Exportovat do LDIF" + + #. Add to Browser + msgid "Add to Browser" + msgstr "" + + #. Delete + msgid "Delete" + msgstr "Smazat" + + #. ** End of Selected submenu ** #. Edit msgid "Edit" *************** *** 1092,1098 **** msgstr "" ! #. Delete ! msgid "Delete" ! msgstr "Smazat" #, fuzzy --- 1245,1250 ---- msgstr "" ! msgid "Finding entry in browser" ! msgstr "" #, fuzzy *************** *** 1100,1103 **** --- 1252,1332 ---- msgstr "®ádná vybraná data nejsou k dispozici" + msgid "Adding all to browser" + msgstr "" + + msgid "Adding selected entries to browser" + msgstr "" + + msgid "Exporting selected entries to LDIF" + msgstr "" + + #, fuzzy + msgid "Do you really want to delete the selected entries?" + msgstr "Opravdu chcete pøesunout tuto polo¾ku?" + + msgid "Deleting selected entries" + msgstr "" + + msgid "Creating new entry from search result" + msgstr "" + + #, fuzzy + msgid "Deleting entry" + msgstr "Chyba odstranìní polo¾ky" + + #, fuzzy + msgid "Available objectclasses" + msgstr "Pou¾ité v objectclass" + + #, fuzzy + msgid "Template objectclasses" + msgstr "Pou¾ité v objectclass" + + #, fuzzy + msgid "Opening template window" + msgstr "Otevøít v novém oknì" + + #, fuzzy, c-format + msgid "No schema information found for server %s" + msgstr "¾ádné informace o schématu nebyly nalezeny" + + #, fuzzy, c-format + msgid "No objectclass information found for server %s" + msgstr "¾ádné informace o schématu nebyly nalezeny" + + #, fuzzy, c-format + msgid "No attribute type information found for server %s" + msgstr "¾ádné informace o schématu nebyly nalezeny" + + #. Template name + #, fuzzy + msgid "Template name" + msgstr "Vzory" + + msgid "GQ: create new template" + msgstr "" + + #, fuzzy + msgid "GQ: edit template" + msgstr "Pou¾ít jako vzor" + + msgid "Adding/deleting objectclass to/from template" + msgstr "" + + #, fuzzy + msgid "Saving template" + msgstr "Pou¾ít jako vzor" + + #. window2template() failed + msgid "Could not create new template." + msgstr "" + + #, fuzzy + msgid "You need to enter a name for the new template." + msgstr "Musíte zadata DN pro novou polo¾ku" + + msgid "A template with that name already exists!" + msgstr "" + #, fuzzy, c-format msgid "Failed to initialize LDAP structure for server '%1$s': %2$s." *************** *** 1188,1201 **** msgstr "pøipojování k %s port %d" - msgid "Error connecting to server" - msgstr "Chyba pøipojení k serveru" - #, fuzzy, c-format msgid "Deleting: %s" msgstr "odstraòuji: %s" - msgid "Error deleting entry" - msgstr "Chyba odstranìní polo¾ky" - #, fuzzy, c-format msgid "Deleted %s" --- 1417,1424 ---- *************** *** 1255,1265 **** msgstr "Prosím vyberte soubor pro export dat tohoto atributu" #, c-format msgid "Missing superior objectClass %s" msgstr "Postrádám nadøezený objectClass %s" - msgid "Missing superior objectClass" - msgstr "Postrádám nadøezený objectClass" - #, c-format msgid "Marked %d attribute(s) to be obsolete" --- 1478,1488 ---- msgstr "Prosím vyberte soubor pro export dat tohoto atributu" + msgid "Changing objectClass attribute" + msgstr "" + #, c-format msgid "Missing superior objectClass %s" msgstr "Postrádám nadøezený objectClass %s" #, c-format msgid "Marked %d attribute(s) to be obsolete" *************** *** 1270,1277 **** msgstr "Pøídáno %d atribut(ù) z nové tøídy objektù" - #. only sometimes goto makes sense - msgid "Moving/copying LDAP objects" - msgstr "Pøesouvání/kopírování LDAP objektù" - #, c-format msgid "Error during base search for '%1$s': %2$s" --- 1493,1496 ---- *************** *** 1289,1292 **** --- 1508,1514 ---- msgstr "Opravdu chcete pøesunout tuto polo¾ku?" + msgid "Refreshing entry after dragging" + msgstr "" + msgid "Could not find data to drag - internal error" msgstr "Nemohu najít data k ta¾ení - interní chyba" *************** *** 1296,1299 **** --- 1518,1525 ---- msgstr "Vytvoøeno %s" + #, fuzzy + msgid "Moving entry" + msgstr "Chyba pøi pøidávání polo¾ky" + #, fuzzy, c-format msgid "Could not find source server by its nickname ('%s')!" *************** *** 1334,1343 **** msgstr "Nemohu nalézt zdrojový server podle jeho pøezdívky!" ! #, c-format ! msgid "Server '%s' down. Export may be incomplete!" ! msgstr "" ! ! #, c-format ! msgid "LDAP error while searching below '%s'. Export may be incomplete!" msgstr "" --- 1560,1564 ---- msgstr "Nemohu nalézt zdrojový server podle jeho pøezdívky!" ! msgid "Refreshing entry after pasting" msgstr "" *************** *** 1408,1414 **** msgstr "Poèet revokovaných certifikátù" #, fuzzy ! #~ msgid "Expand entry" ! #~ msgstr "Rozbalit v¹e" #~ msgid "onelevel search on %s" --- 1629,1650 ---- msgstr "Poèet revokovaných certifikátù" + #~ msgid "Oops!" + #~ msgstr "Tì pic!" + + #~ msgid "Not enough memory to make form." + #~ msgstr "Nedostatek pamìti pro vytvoøení formuláøe" + #, fuzzy ! #~ msgid "Using schema from last-resort schemaserver" ! #~ msgstr "Nouzový schema server" ! ! #~ msgid "Error connecting to server" ! #~ msgstr "Chyba pøipojení k serveru" ! ! #~ msgid "Missing superior objectClass" ! #~ msgstr "Postrádám nadøezený objectClass" ! ! #~ msgid "Moving/copying LDAP objects" ! #~ msgstr "Pøesouvání/kopírování LDAP objektù" #~ msgid "onelevel search on %s" *************** *** 1470,1476 **** #~ msgid "Expand all" #~ msgstr "Rozbalit v¹e" - - #~ msgid "Export to LDIF" - #~ msgstr "Exportovat do LDIF" #, fuzzy --- 1706,1709 ---- Index: ja.po =================================================================== RCS file: /cvsroot/gqclient/gq/po/ja.po,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ja.po 23 Oct 2003 04:51:45 -0000 1.13 --- ja.po 3 Nov 2003 23:01:55 -0000 1.14 *************** *** 6,10 **** msgstr "" "Project-Id-Version: gq 1.0alpha3\n" ! "POT-Creation-Date: 2003-10-22 17:52+0900\n" "PO-Revision-Date: 2003-10-22 18:17+0900\n" "Last-Translator: Hatuka*nezumi <ne...@jc...>\n" --- 6,10 ---- msgstr "" "Project-Id-Version: gq 1.0alpha3\n" ! "POT-Creation-Date: 2003-11-03 23:29+0100\n" "PO-Revision-Date: 2003-10-22 18:17+0900\n" [...1057 lines suppressed...] ! #~ msgid "LDAP protocol version" ! #~ msgstr "LDAP¥×¥í¥È¥³¥ë¤Î¥Ð¡¼¥¸¥ç¥ó" ! #~ msgid "Error saving statefile" ! #~ msgstr "¾õÂÖ¥Õ¥¡¥¤¥ëÊÝÂ¸Ãæ¤Î¥¨¥é¡¼" ! #~ msgid "Unable to open '%1$s' for writing: %2$s" ! #~ msgstr "½ñ¤¹þ¤ß¤Î¤¿¤á¤Ë %1$s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿: %2$s" ! ! #~ msgid "Error loading statefile" ! #~ msgstr "¾õÂÖ¥Õ¥¡¥¤¥ëÆÉ¤ß¼è¤êÃæ¤Î¥¨¥é¡¼" ! ! #~ msgid "Error" ! #~ msgstr "¥¨¥é¡¼" ! ! #~ msgid "Fatal Error" ! #~ msgstr "½ÅÂç¤Ê¥¨¥é¡¼" #~ msgid "Error finding server" Index: zh_CN.po =================================================================== RCS file: /cvsroot/gqclient/gq/po/zh_CN.po,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** zh_CN.po 22 Oct 2003 22:27:59 -0000 1.7 --- zh_CN.po 3 Nov 2003 23:01:56 -0000 1.8 *************** *** 6,10 **** msgstr "" "Project-Id-Version: 0.7.0beta2\n" ! "POT-Creation-Date: 2003-10-21 09:00+0200\n" "PO-Revision-Date: 2003-01-04 02:58+0800\n" "Last-Translator: hleil liu <hl...@ya...>\n" --- 6,10 ---- msgstr "" "Project-Id-Version: 0.7.0beta2\n" ! "POT-Creation-Date: 2003-11-03 23:29+0100\n" "PO-Revision-Date: 2003-01-04 02:58+0800\n" "Last-Translator: hleil liu <hl...@ya...>\n" *************** *** 34,37 **** --- 34,49 ---- msgstr[1] "ÕÒµ½ %d ̨·þÎñÆ÷" + #, fuzzy + msgid "Expanding subtree" + msgstr "Õ¹¿ªÌõÄ¿" + + #, fuzzy + msgid "Selecting entry" + msgstr "ɾ³ýÌõÄ¿³ö´í" + + #, fuzzy + msgid "Refreshing entry" + msgstr "È¡ÌõÄ¿ÐÅÏ¢´í" + #, c-format msgid "Closed connection to server %s" *************** *** 91,94 **** --- 103,114 ---- "%3$s\n" + #, c-format + msgid "Configuration saved to '%s'" + msgstr "" + + #, c-format + msgid "Saving configuration to '%s' failed." + msgstr "" + msgid "Error writing configfile" msgstr "дÈëÅäÖÃÎļþ³ö´í" *************** *** 121,124 **** --- 141,145 ---- msgstr "ÒÑÓÐÒ»¸öÃûΪ ¡°%s¡±µÄ¹ýÂËÆ÷" + #. gtk_container_border_width(GTK_CONTAINER(window), CONTAINER_BORDER_WIDTH); msgid "Filter name" msgstr "¹ýÂËÆ÷Ãû³Æ" *************** *** 137,140 **** --- 158,165 ---- msgstr "È·¶¨" + #, fuzzy + msgid "_Cancel" + msgstr "È¡Ïû" + msgid "Server" msgstr "·þÎñÆ÷" *************** *** 161,164 **** --- 186,192 ---- msgstr "¸´ÖÆ" + msgid "Filter list window opened." + msgstr "" + msgid "Edit filter" msgstr "±à¼¹ýÂËÉèÖÃ" *************** *** 183,196 **** #, fuzzy ! msgid "_Cancel" ! msgstr "È¡Ïû" ! msgid "You must fill in a name for the filter" msgstr "Äú±ØÐèÌîÈë¹ýÂËÆ÷Ãû³Æ" ! #. shouldn't happen ! msgid "Save failed" msgstr "±£´æÊ§°Ü" msgid "Unknown error" msgstr "δ֪´íÎó" --- 211,233 ---- #, fuzzy ! msgid "Editing filter cancelled." ! msgstr "±à¼¹ýÂËÉèÖÃ" ! #, c-format ! msgid "Edit filter window opened for filter '%s'." ! msgstr "" ! ! #, fuzzy ! msgid "Edit filter window opened for new filter." msgstr "Äú±ØÐèÌîÈë¹ýÂËÆ÷Ãû³Æ" ! #, fuzzy ! msgid "Saving filter" msgstr "±£´æÊ§°Ü" + msgid "You must fill in a name for the filter" + msgstr "Äú±ØÐèÌîÈë¹ýÂËÆ÷Ãû³Æ" + + #. shouldn't happen msgid "Unknown error" msgstr "δ֪´íÎó" *************** *** 260,263 **** --- 297,312 ---- msgstr "¹Ø±Õ" + #, fuzzy + msgid "Changeing display type" + msgstr "¸ü¸ÄÏÔʾÀàÐÍ" + + #, fuzzy + msgid "Showing schema information" + msgstr "ģʽÐÅÏ¢" + + #, c-format + msgid "User friendly name for LDAP attribute '%s'" + msgstr "" + #, c-format msgid "Attribute %s" *************** *** 281,285 **** msgstr "" ! msgid "Error adding entry" msgstr "Ìí¼ÓÌõÄ¿³ö´í" --- 330,341 ---- msgstr "" ! msgid "Set user-friendly name" ! msgstr "" ! ! msgid "Clear user-friendly name" ! msgstr "" ! ! #, fuzzy ! msgid "Adding entry" msgstr "Ìí¼ÓÌõÄ¿³ö´í" *************** *** 314,323 **** msgstr "Ìí¼ÓÌõÄ¿³ö´í" ! msgid "Oops!" ! msgstr "°¥ßº£¡" msgid "Server schema not available." msgstr "·þÎñÆ÷ģʽÎÞЧ¡£" msgid "Not an 'extensibleObject'" msgstr "²»ÊÇÒ»¸ö ¡°¿ÉÀ©Õ¹¶ÔÏó¡±" --- 370,387 ---- msgstr "Ìí¼ÓÌõÄ¿³ö´í" ! msgid "Adding attribute value field" ! msgstr "" ! ! #, fuzzy ! msgid "Changing display type" ! msgstr "¸ü¸ÄÏÔʾÀàÐÍ" msgid "Server schema not available." msgstr "·þÎñÆ÷ģʽÎÞЧ¡£" + #, fuzzy + msgid "Creating new attribute" + msgstr "ΪÐÂÊôÐÔÑ¡ÔñÒ»¸öÃû³Æ" + msgid "Not an 'extensibleObject'" msgstr "²»ÊÇÒ»¸ö ¡°¿ÉÀ©Õ¹¶ÔÏó¡±" *************** *** 326,332 **** msgstr "ΪÐÂÊôÐÔÑ¡ÔñÒ»¸öÃû³Æ" - msgid "Not enough memory to make form." - msgstr "ÎÞ×ã¹»ÄÚ´æ´´½¨´°¿Ú" - #. an error occurred #, fuzzy --- 390,393 ---- *************** *** 343,346 **** --- 404,410 ---- msgstr "" + msgid "Saving main window snapshot" + msgstr "" + #. current_search_options_window = window; msgid "Message Log" *************** *** 707,710 **** --- 771,778 ---- msgstr "" + #, c-format + msgid "Server properties window opened for server '%s'" + msgstr "" + msgid "Preferences" msgstr "Ê×Ñ¡Ïî" *************** *** 733,736 **** --- 801,811 ---- msgstr "" + msgid "Securit_y" + msgstr "" + + #, fuzzy + msgid "Preferences window opened" + msgstr "Ê×Ñ¡Ïî" + #. Edit button #, fuzzy *************** *** 808,811 **** --- 883,896 ---- "Èç¹ûÉèÖôËÏ½«ÔÚä¯ÀÀÊ÷ÖÐÅÅÐòÌõÄ¿¡£Ö»Óдò¿ªÒ»¸öÐÂä¯ÀÀ±êǩʱ´Ë¸Ä±ä²Å»áÉúЧ¡£" + #. browse_use_user_friendly button + #, fuzzy + msgid "Use _user friendly attribute names" + msgstr "Ó¦ÓÃÓÚÊôÐÔÀàÐÍ" + + msgid "" + "If set, turns on to use user-friendly attribute names (if configured) in " + "browse mode." + msgstr "" + #. Format frame #, fuzzy *************** *** 859,867 **** msgstr "" ! #. server didn't publish a schema, try the last resort ! #. schemaserver ! #, fuzzy ! msgid "Using schema from last-resort schemaserver" ! msgstr "×î½ü·ÃÎʵÄģʽ·þÎñÆ÷" #, fuzzy, c-format --- 944,977 ---- msgstr "" ! #. Persistency frame ! msgid "Security" ! msgstr "" ! ! #. Restore Window Sizes checkbox ! msgid "_Never leak credentials" ! msgstr "" ! ! msgid "" ! "Turn off if you want to use heuristics to find the credentials needed to " ! "follow referrals. The problems with these heuristics is that they may leak " ! "credential information: If you follow a referral to some untrusted server, " ! "then your currently used credentials might get sent to this untrusted " ! "server. This might allow an attacker to sniff credentials during transit to " ! "or on the untrusted server. If turned on, a referral will always use an " ! "anonymous bind." ! msgstr "" ! ! #. Do not use ldap.conf ... checkbox ! msgid "Do not _use ldap.conf/.ldaprc file" ! msgstr "" ! ! msgid "" ! "Turn off the standard use of the system-wide ldap.conf configuration file " ! "and/or the per-user .ldaprc. This works by setting the environment variable " ! "LDAPNOINIT. Note that the this feature only set this variable, but never " ! "deletes it. This means that the default behaviour when not selecting this " ! "depends on the environment variable being set or not prior to the start of " ! "gq. Changing this will only affect future program runs." ! msgstr "" #, fuzzy, c-format *************** *** 889,892 **** --- 999,1005 ---- msgstr "ÔÚ %s ËÑË÷ģʽ" + msgid "Expanding server schema entry" + msgstr "" + #. Open in new window msgid "Open in new window" *************** *** 905,908 **** --- 1018,1025 ---- msgstr "Óï·¨" + #, fuzzy + msgid "Showing schema details" + msgstr "ÏÔʾ²Î¿¼" + msgid "GQ: objectclass" msgstr "GQ£º¶ÔÏóÀàÐÍ" *************** *** 978,981 **** --- 1095,1102 ---- msgstr "Óï·¨ { ³¤¶È }" + #, fuzzy + msgid "Attribute details" + msgstr "ÊôÐÔ×ÊÁÏ" + msgid "Used in attribute types" msgstr "Ó¦ÓÃÓÚÊôÐÔÀàÐÍ" *************** *** 1048,1051 **** --- 1169,1176 ---- msgstr "" + #, fuzzy + msgid "Creating search option window" + msgstr "È¡µÃËùÑ¡×Ö´®" + #. find button #, fuzzy *************** *** 1058,1061 **** --- 1183,1193 ---- msgstr "ËÑË÷Ñ¡Ïî" + msgid "Looking for search-bases" + msgstr "" + + #, fuzzy + msgid "Searching" + msgstr "ËÑË÷" + #, fuzzy msgid "Please enter a valid search filter" *************** *** 1081,1085 **** msgstr "" - #. error #, c-format msgid "Unspecified error searching below '%1$s'" --- 1213,1216 ---- *************** *** 1094,1097 **** --- 1225,1255 ---- msgstr[1] "·¢ÏÖ %d ¸öÌõÄ¿" + #. Selection submenu + #, fuzzy + msgid "Selection" + msgstr "ËÑË÷Ñ¡Ïî" + + #. Select All + msgid "Select All" + msgstr "" + + #. Unselect All + msgid "Unselect All" + msgstr "" + + #. Export to LDIF + msgid "Export to LDIF" + msgstr "µ¼³öµ½LDIF" + + #. Add to Browser + #, fuzzy + msgid "Add to Browser" + msgstr "°ÑËùÓÐÏîÄ¿Ìí¼Óµ½ä¯ÀÀ¶ÔÏó" + + #. Delete + msgid "Delete" + msgstr "ɾ³ý" + + #. ** End of Selected submenu ** #. Edit msgid "Edit" *************** *** 1110,1120 **** msgstr "°ÑËùÓÐÏîÄ¿Ìí¼Óµ½ä¯ÀÀ¶ÔÏó" ! #. Delete ! msgid "Delete" ! msgstr "ɾ³ý" msgid "No browser available" msgstr "ûÓÐÓÐЧµÄä¯ÀÀ¶ÔÏó" #, fuzzy, c-format msgid "Failed to initialize LDAP structure for server '%1$s': %2$s." --- 1268,1358 ---- msgstr "°ÑËùÓÐÏîÄ¿Ìí¼Óµ½ä¯ÀÀ¶ÔÏó" ! #, fuzzy ! msgid "Finding entry in browser" ! msgstr "ÔÚä¯ÀÀ¶ÔÏóÀï²éÕÒ" msgid "No browser available" msgstr "ûÓÐÓÐЧµÄä¯ÀÀ¶ÔÏó" + #, fuzzy + msgid "Adding all to browser" + msgstr "°ÑËùÓÐÏîÄ¿Ìí¼Óµ½ä¯ÀÀ¶ÔÏó" + + #, fuzzy + msgid "Adding selected entries to browser" + msgstr "°ÑËùÓÐÏîÄ¿Ìí¼Óµ½ä¯ÀÀ¶ÔÏó" + + msgid "Exporting selected entries to LDIF" + msgstr "" + + #, fuzzy + msgid "Do you really want to delete the selected entries?" + msgstr "ÄúÕæµÄÏëÒÆ¶¯´ËÌõÄ¿Âð£¿" + + #, fuzzy + msgid "Deleting selected entries" + msgstr "È¡µÃËùÑ¡×Ö´®" + + msgid "Creating new entry from search result" + msgstr "" + + #, fuzzy + msgid "Deleting entry" + msgstr "ɾ³ýÌõÄ¿³ö´í" + + #, fuzzy + msgid "Available objectclasses" + msgstr "Ó¦ÓÃÓÚ¶ÔÏóÀàÐÍ" + + #, fuzzy + msgid "Template objectclasses" + msgstr "Ó¦ÓÃÓÚ¶ÔÏóÀàÐÍ" + + #, fuzzy + msgid "Opening template window" + msgstr "ÔÚд°¿Ú´ò¿ª" + + #, fuzzy, c-format + msgid "No schema information found for server %s" + msgstr "δÕÒµ½Ä£Ê½ÐÅÏ¢" + + #, fuzzy, c-format + msgid "No objectclass information found for server %s" + msgstr "δÕÒµ½Ä£Ê½ÐÅÏ¢" + + #, fuzzy, c-format + msgid "No attribute type information found for server %s" + msgstr "δÕÒµ½Ä£Ê½ÐÅÏ¢" + + #. Template name + #, fuzzy + msgid "Template name" + msgstr "Ä£°å" + + msgid "GQ: create new template" + msgstr "" + + #, fuzzy + msgid "GQ: edit template" + msgstr "ÓÃ×÷Ä£°å" + + msgid "Adding/deleting objectclass to/from template" + msgstr "" + + #, fuzzy + msgid "Saving template" + msgstr "ÓÃ×÷Ä£°å" + + #. window2template() failed + msgid "Could not create new template." + msgstr "" + + #, fuzzy + msgid "You need to enter a name for the new template." + msgstr "Äú±ØÐèΪÐÂÌõÄ¿ÊäÈëÒ»¸ö DN" + + msgid "A template with that name already exists!" + msgstr "" + #, fuzzy, c-format msgid "Failed to initialize LDAP structure for server '%1$s': %2$s." *************** *** 1205,1218 **** msgstr "ÕýÔÚÁ¬½Ó %s µÄ %d ¶Ë¿Ú" - msgid "Error connecting to server" - msgstr "Á¬½Ó·þÎñÆ÷´íÎó" - #, fuzzy, c-format msgid "Deleting: %s" msgstr "ÕýÔÚɾ³ý£º%s" - msgid "Error deleting entry" - msgstr "ɾ³ýÌõÄ¿³ö´í" - #, fuzzy, c-format msgid "Deleted %s" --- 1443,1450 ---- *************** *** 1272,1282 **** msgstr "ÇëÑ¡ÔñÒ»¸öÎļþµ¼³ö´ËÊôÐÔµÄÊý¾Ý" #, c-format msgid "Missing superior objectClass %s" msgstr "¶ªÊ§Éϼ¶¶ÔÏóÀàÐÍ %s" - msgid "Missing superior objectClass" - msgstr "¶ªÊ§Éϼ¶¶ÔÏóÀàÐÍ" - #, c-format msgid "Marked %d attribute(s) to be obsolete" --- 1504,1514 ---- msgstr "ÇëÑ¡ÔñÒ»¸öÎļþµ¼³ö´ËÊôÐÔµÄÊý¾Ý" + msgid "Changing objectClass attribute" + msgstr "" + #, c-format msgid "Missing superior objectClass %s" msgstr "¶ªÊ§Éϼ¶¶ÔÏóÀàÐÍ %s" #, c-format msgid "Marked %d attribute(s) to be obsolete" *************** *** 1287,1294 **** msgstr "ÒѾ´ÓжÔÏóÀàÐÍÌí¼ÓÁË %d ¸öÊôÐÔ" - #. only sometimes goto makes sense - msgid "Moving/copying LDAP objects" - msgstr "ÕýÔÚÒÆ¶¯/¸´ÖÆ LDAP ¶ÔÏó" - #, c-format msgid "Error during base search for '%1$s': %2$s" --- 1519,1522 ---- *************** *** 1306,1309 **** --- 1534,1540 ---- msgstr "ÄúÕæµÄÏëÒÆ¶¯´ËÌõÄ¿Âð£¿" + msgid "Refreshing entry after dragging" + msgstr "" + msgid "Could not find data to drag - internal error" msgstr "ÎÞ·¨ÕÒµ½ÍÏ×§µÄÊý¾Ý - ÄÚ²¿´íÎó" *************** *** 1313,1316 **** --- 1544,1551 ---- msgstr "ÒÑ´´½¨ %s" + #, fuzzy + msgid "Moving entry" + msgstr "Ìí¼ÓÌõÄ¿³ö´í" + #, fuzzy, c-format msgid "Could not find source server by its nickname ('%s')!" *************** *** 1351,1361 **** msgstr "ÎÞ·¨¸ù¾ÝêdzÆÕÒµ½Ö¸ÏòµÄ·þÎñÆ÷£¡" ! #, fuzzy, c-format ! msgid "Server '%s' down. Export may be incomplete!" ! msgstr "·þÎñÆ÷¹Ø±Õ¡£µ¼³ö½«²»ÍêÕû£¡" ! ! #, fuzzy, c-format ! msgid "LDAP error while searching below '%s'. Export may be incomplete!" ! msgstr "LDAP´íÎó¡£µ¼³ö½«²»ÍêÕû£¡" msgid "" --- 1586,1591 ---- msgstr "ÎÞ·¨¸ù¾ÝêdzÆÕÒµ½Ö¸ÏòµÄ·þÎñÆ÷£¡" ! msgid "Refreshing entry after pasting" ! msgstr "" msgid "" *************** *** 1424,1436 **** msgstr "ÒÑÈ¡ÏûµÄÖ¤ÊéÊýÄ¿" ! #~ msgid "Expand entry" ! #~ msgstr "Õ¹¿ªÌõÄ¿" ! #~ msgid "onelevel search on %s" ! #~ msgstr "¶Ô %s ×öµ¥²ãËÑË÷" #, fuzzy ! #~ msgid "Showing referrals" ! #~ msgstr "ÏÔʾ²Î¿¼" #~ msgid "One entry found (running)" --- 1654,1686 ---- msgstr "ÒÑÈ¡ÏûµÄÖ¤ÊéÊýÄ¿" ! #~ msgid "Oops!" ! #~ msgstr "°¥ßº£¡" ! #~ msgid "Not enough memory to make form." ! #~ msgstr "ÎÞ×ã¹»ÄÚ´æ´´½¨´°¿Ú" #, fuzzy ! #~ msgid "Using schema from last-resort schemaserver" ! #~ msgstr "×î½ü·ÃÎʵÄģʽ·þÎñÆ÷" ! ! #~ msgid "Error connecting to server" ! #~ msgstr "Á¬½Ó·þÎñÆ÷´íÎó" ! ! #~ msgid "Missing superior objectClass" ! #~ msgstr "¶ªÊ§Éϼ¶¶ÔÏóÀàÐÍ" ! ! #~ msgid "Moving/copying LDAP objects" ! #~ msgstr "ÕýÔÚÒÆ¶¯/¸´ÖÆ LDAP ¶ÔÏó" ! ! #, fuzzy ! #~ msgid "Server '%s' down. Export may be incomplete!" ! #~ msgstr "·þÎñÆ÷¹Ø±Õ¡£µ¼³ö½«²»ÍêÕû£¡" ! ! #, fuzzy ! #~ msgid "LDAP error while searching below '%s'. Export may be incomplete!" ! #~ msgstr "LDAP´íÎó¡£µ¼³ö½«²»ÍêÕû£¡" ! ! #~ msgid "onelevel search on %s" ! #~ msgstr "¶Ô %s ×öµ¥²ãËÑË÷" #~ msgid "One entry found (running)" *************** *** 1546,1552 **** #~ msgid "Close Connection" #~ msgstr "¹Ø±ÕÁ¬½Ó" - - #~ msgid "Export to LDIF" - #~ msgstr "µ¼³öµ½LDIF" #~ msgid "Search below" --- 1796,1799 ---- |
From: <sta...@us...> - 2003-11-03 22:56:03
|
Update of /cvsroot/gqclient/gq/po In directory sc8-pr-cvs1:/tmp/cvs-serv26873 Modified Files: de.po Log Message: * Updated german translation Index: de.po =================================================================== RCS file: /cvsroot/gqclient/gq/po/de.po,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** de.po 22 Oct 2003 22:27:59 -0000 1.25 --- de.po 3 Nov 2003 22:56:00 -0000 1.26 *************** *** 6,11 **** msgstr "" "Project-Id-Version: gq 1.0\n" ! "POT-Creation-Date: 2003-10-21 09:00+0200\n" ! "PO-Revision-Date: 2003-10-21 07:28+0200\n" "Last-Translator: Peter Stamfest <pe...@st...>\n" "Language-Team: LANGUAGE <LL...@li...>\n" --- 6,11 ---- msgstr "" "Project-Id-Version: gq 1.0\n" ! "POT-Creation-Date: 2003-11-03 23:29+0100\n" ! "PO-Revision-Date: 2003-11-03 23:55+0100\n" "Last-Translator: Peter Stamfest <pe...@st...>\n" "Language-Team: LANGUAGE <LL...@li...>\n" *************** *** 34,37 **** --- 34,46 ---- msgstr[1] "%d Server gefunden" + msgid "Expanding subtree" + msgstr "Unterbaum öffnen" + + msgid "Selecting entry" + msgstr "Eintrag auswählen" + + msgid "Refreshing entry" + msgstr "Eintrag: Ansicht erneuern" + #, c-format msgid "Closed connection to server %s" *************** *** 92,95 **** --- 101,112 ---- "%3$s\n" + #, c-format + msgid "Configuration saved to '%s'" + msgstr "Konfiguration gespeichert in '%s'" + + #, c-format + msgid "Saving configuration to '%s' failed." + msgstr "Speichern der Konfiguration in '%s' fehlgeschlagen." + msgid "Error writing configfile" msgstr "Fehler beim Schreiben der Konfigurationsdatei" *************** *** 125,128 **** --- 142,146 ---- msgstr "Es existiert bereits ein Filter mit dem Namen '%s'" + #. gtk_container_border_width(GTK_CONTAINER(window), CONTAINER_BORDER_WIDTH); msgid "Filter name" msgstr "Filtername" *************** *** 139,142 **** --- 157,163 ---- msgstr "_OK" + msgid "_Cancel" + msgstr "_Abbrechen" + msgid "Server" msgstr "Server" *************** *** 160,163 **** --- 181,187 ---- msgstr "_Kopieren" + msgid "Filter list window opened." + msgstr "Filterlisten-Fenster geöffnet." + msgid "Edit filter" msgstr "Filter bearbeiten" *************** *** 177,182 **** msgstr "S_peichern" ! msgid "_Cancel" ! msgstr "_Abbrechen" msgid "You must fill in a name for the filter" --- 201,216 ---- msgstr "S_peichern" ! msgid "Editing filter cancelled." ! msgstr "Filterbearbeitung abgebrochen." ! ! #, c-format ! msgid "Edit filter window opened for filter '%s'." ! msgstr "Filterbearbeitung für filter '%s' geöffnet." ! ! msgid "Edit filter window opened for new filter." ! msgstr "Filterbearbeitung für neuen Filter geöffnet." ! ! msgid "Saving filter" ! msgstr "Filter speichern" msgid "You must fill in a name for the filter" *************** *** 184,190 **** #. shouldn't happen - msgid "Save failed" - msgstr "Speichern fehlgeschlagen" - msgid "Unknown error" msgstr "Unbekannter Fehler" --- 218,221 ---- *************** *** 213,217 **** "tooltip|Changes the display type of the current attribute into 'Entry', thus " "makes the input field a one-line text box." ! msgstr "" msgid "Turn into multi-line entry field" --- 244,248 ---- "tooltip|Changes the display type of the current attribute into 'Entry', thus " "makes the input field a one-line text box." ! msgstr "tooltip|Setzt den Anzeigetyp des aktuellen Attributs auf 'Entry'." msgid "Turn into multi-line entry field" *************** *** 253,256 **** --- 284,297 ---- msgstr "S_chliessen" + msgid "Changeing display type" + msgstr "Anzeigetyp ändern" + + msgid "Showing schema information" + msgstr "Schema Information anzeigen" + + #, c-format + msgid "User friendly name for LDAP attribute '%s'" + msgstr "Benutzerdefinierter Name für LDAP attribute '%s'" + #, c-format msgid "Attribute %s" *************** *** 274,279 **** msgstr "Voreinstellung des Anzeigetyps aufheben" ! msgid "Error adding entry" ! msgstr "Fehler beim Hinzufügen eines Eintrages" msgid "You must enter a DN for a new entry." --- 315,326 ---- msgstr "Voreinstellung des Anzeigetyps aufheben" ! msgid "Set user-friendly name" ! msgstr "Benutzerdefinierten Namen setzen" ! ! msgid "Clear user-friendly name" ! msgstr "Benutzerdefinierten Namen löschen" ! ! msgid "Adding entry" ! msgstr "Eintrages hinzufügen" msgid "You must enter a DN for a new entry." *************** *** 307,316 **** msgstr "Fehler beim Umbenennen von '%1$s': %2$s" ! msgid "Oops!" ! msgstr "" msgid "Server schema not available." msgstr "Server Schema nicht verfügbar." msgid "Not an 'extensibleObject'" msgstr "Kein 'extensibleObject'" --- 354,369 ---- msgstr "Fehler beim Umbenennen von '%1$s': %2$s" ! msgid "Adding attribute value field" ! msgstr "Hinzufügen eines Attributwertes fehlgeschlagen" ! ! msgid "Changing display type" ! msgstr "Anzeigetyp ändern" msgid "Server schema not available." msgstr "Server Schema nicht verfügbar." + msgid "Creating new attribute" + msgstr "Neues Attribut hinzufügen" + msgid "Not an 'extensibleObject'" msgstr "Kein 'extensibleObject'" *************** *** 319,325 **** msgstr "Attribut auswählen" - msgid "Not enough memory to make form." - msgstr "Kein weiterer Speicher verfügbar" - #. an error occurred msgid "Cannot retrieve DN of entry." --- 372,375 ---- *************** *** 335,338 **** --- 385,391 ---- msgstr "Registerkarten wiederherstellen" + msgid "Saving main window snapshot" + msgstr "Zustand des Hauptfensters sichern" + #. current_search_options_window = window; msgid "Message Log" *************** *** 680,683 **** --- 733,740 ---- msgstr "Ähnlich SSL." + #, c-format + msgid "Server properties window opened for server '%s'" + msgstr "Eigenschaften für Server '%s' geöffnet." + msgid "Preferences" msgstr "Einstellungen" *************** *** 701,704 **** --- 758,767 ---- msgstr "_GUI" + msgid "Securit_y" + msgstr "Sicher_heit" + + msgid "Preferences window opened" + msgstr "Einstellungsfenster geöffnet " + #. Edit button msgid "_Edit" *************** *** 763,766 **** --- 826,838 ---- "dieser Einstellung wirkt sich nurauf neue Browse-Registerkarten aus." + #. browse_use_user_friendly button + msgid "Use _user friendly attribute names" + msgstr "Benutzerdefinierte _Attributsnamen benutzen" + + msgid "" + "If set, turns on to use user-friendly attribute names (if configured) in " + "browse mode." + msgstr "Wenn aktiviert werden benutzerdefinierte Attributsnamen im Browse mode verwendet." + #. Format frame msgid "Format" *************** *** 819,826 **** "werden." ! #. server didn't publish a schema, try the last resort ! #. schemaserver ! msgid "Using schema from last-resort schemaserver" ! msgstr "Benutze Schema von Fallback Server" #, c-format --- 891,932 ---- "werden." ! #. Persistency frame ! msgid "Security" ! msgstr "Sicherheit" ! ! #. Restore Window Sizes checkbox ! msgid "_Never leak credentials" ! msgstr "Anmeldeinformationen _nicht weitergeben" ! ! msgid "" ! "Turn off if you want to use heuristics to find the credentials needed to " ! "follow referrals. The problems with these heuristics is that they may leak " ! "credential information: If you follow a referral to some untrusted server, " ! "then your currently used credentials might get sent to this untrusted " ! "server. This might allow an attacker to sniff credentials during transit to " ! "or on the untrusted server. If turned on, a referral will always use an " ! "anonymous bind." ! msgstr "" ! "Deaktivieren Sie diese Einstellung wenn Sie wollen dass die\n" ! "Anmeldeinformationen für LDAP Verweise heuristisch gefunden werden\n" ! "sollen. Ein Problem des verwendeten heuristischen Verfahrens ist die\n" ! "Möglichkeit, dass die Anmeldeinformationen an einen nicht\n" ! "vertrauenswürdigen Server übertragen werden könnten. Dies könnte dazu\n" ! "führen dass die Anmeldeinformationen in die Hände eines Angreifers\n" ! "gelangen könnten. Wenn diese Einstellung aktiviert ist wird eine\n" ! "anonymer Verbindung zon LDAP Server aufgebaut." ! ! #. Do not use ldap.conf ... checkbox ! msgid "Do not _use ldap.conf/.ldaprc file" ! msgstr "ldap.conf/.ldaprc nicht benutzen" ! ! msgid "" ! "Turn off the standard use of the system-wide ldap.conf configuration file " ! "and/or the per-user .ldaprc. This works by setting the environment variable " ! "LDAPNOINIT. Note that the this feature only set this variable, but never " ! "deletes it. This means that the default behaviour when not selecting this " ! "depends on the environment variable being set or not prior to the start of " ! "gq. Changing this will only affect future program runs." ! msgstr "" #, c-format *************** *** 848,851 **** --- 954,960 ---- msgstr "Schema Suche unter '%1$s' auf '%2$s'" + msgid "Expanding server schema entry" + msgstr "Server Schema eintrag öffnen" + #. Open in new window msgid "Open in new window" *************** *** 864,867 **** --- 973,979 ---- msgstr "Syntaxes" + msgid "Showing schema details" + msgstr "Weiterleitungen zeigen" + msgid "GQ: objectclass" msgstr "GQ: Objektklasse" *************** *** 937,940 **** --- 1049,1055 ---- msgstr "Syntax { Länge }" + msgid "Attribute details" + msgstr "Attributdetails" + msgid "Used in attribute types" msgstr "Benutzt in Attributtypen" *************** *** 1002,1005 **** --- 1117,1123 ---- "so werden ALLE angezeigt." + msgid "Creating search option window" + msgstr "Suchoptionen öffnen" + #. find button msgid "_Find" *************** *** 1010,1013 **** --- 1128,1137 ---- msgstr "_Optionen" + msgid "Looking for search-bases" + msgstr "Server Suffixes finden" + + msgid "Searching" + msgstr "Suchen" + msgid "Please enter a valid search filter" msgstr "Sie müssen einen gültigen Filterausdruck eingeben" *************** *** 1032,1036 **** msgstr "Fehler bei Suche unter '%1$s': %2$s" - #. error #, c-format msgid "Unspecified error searching below '%1$s'" --- 1156,1159 ---- *************** *** 1045,1048 **** --- 1168,1196 ---- msgstr[1] "%d Einträge gefunden" + #. Selection submenu + msgid "Selection" + msgstr "Auswahl" + + #. Select All + msgid "Select All" + msgstr "Alle auswählen" + + #. Unselect All + msgid "Unselect All" + msgstr "Auswahl aufheben" + + #. Export to LDIF + msgid "Export to LDIF" + msgstr "Exportieren (LDIF)" + + #. Add to Browser + msgid "Add to Browser" + msgstr "Zu Browser hinzufügen" + + #. Delete + msgid "Delete" + msgstr "Entfernen" + + #. ** End of Selected submenu ** #. Edit msgid "Edit" *************** *** 1061,1071 **** msgstr "Alle zum Browser hinzufügen" ! #. Delete ! msgid "Delete" ! msgstr "Entfernen" msgid "No browser available" msgstr "Kein Browser verfügbar." #, c-format msgid "Failed to initialize LDAP structure for server '%1$s': %2$s." --- 1209,1286 ---- msgstr "Alle zum Browser hinzufügen" ! msgid "Finding entry in browser" ! msgstr "Im Browser finden" msgid "No browser available" msgstr "Kein Browser verfügbar." + msgid "Adding all to browser" + msgstr "Alle zum Browser hinzufügen" + + msgid "Adding selected entries to browser" + msgstr "Ausgewählte Einträge zum Browser hinzufügen" + + msgid "Exporting selected entries to LDIF" + msgstr "Ausgewählte Einträge im LDIF Format exportieren" + + msgid "Do you really want to delete the selected entries?" + msgstr "Wollen Sie die ausgewählten Einträge wirklich löschen?" + + msgid "Deleting selected entries" + msgstr "Auswahl löschen" + + msgid "Creating new entry from search result" + msgstr "Neuen Eintrag von Suchergebnis erstellen" + + msgid "Deleting entry" + msgstr "Eintrage löschen" + + msgid "Available objectclasses" + msgstr "Verfügbare Objektklassen" + + msgid "Template objectclasses" + msgstr "Vorlagen Objektklassen" + + msgid "Opening template window" + msgstr "Öffne Vorlagenfenster" + + #, c-format + msgid "No schema information found for server %s" + msgstr "Keine Schema Information auf '%s' gefunden" + + #, c-format + msgid "No objectclass information found for server %s" + msgstr "Keine Objektklassen Information auf '%s' gefunden" + + #, c-format + msgid "No attribute type information found for server %s" + msgstr "Keine Attribut Information auf '%s' gefunden" + + #. Template name + msgid "Template name" + msgstr "Vorlagenname" + + msgid "GQ: create new template" + msgstr "GQ: Neue Vorlage erstellen" + + msgid "GQ: edit template" + msgstr "GQ: Vorlage bearbeiten" + + msgid "Adding/deleting objectclass to/from template" + msgstr "Objektklasse zur/von der Vorlage hinzufügen/entfernen" + + msgid "Saving template" + msgstr "Vorlage speichern" + + #. window2template() failed + msgid "Could not create new template." + msgstr "Konnte neue Vorlage nicht erstellen." + + msgid "You need to enter a name for the new template." + msgstr "Sie müssen einen Namen für die Vorlage vergeben." + + msgid "A template with that name already exists!" + msgstr "Eine Vorlage mit diesem Namen existiert bereits!" + #, c-format msgid "Failed to initialize LDAP structure for server '%1$s': %2$s." *************** *** 1170,1183 **** msgstr "Verbinden mit %1$s, port %2$d" - msgid "Error connecting to server" - msgstr "Fehler beim Verbindungsaufbau mit Server" - #, c-format msgid "Deleting: %s" msgstr "%s wird gelöscht" - msgid "Error deleting entry" - msgstr "Fehler beim Löschen eines Eintrages" - #, c-format msgid "Deleted %s" --- 1385,1392 ---- *************** *** 1236,1246 **** "sollen" #, c-format msgid "Missing superior objectClass %s" msgstr "Übergeordnete Objektklasse %s nicht gefunden" - msgid "Missing superior objectClass" - msgstr "Übergeordnete Objektklasse nicht gefunden" - #, c-format msgid "Marked %d attribute(s) to be obsolete" --- 1445,1455 ---- "sollen" + msgid "Changing objectClass attribute" + msgstr "objectClass Attribut verändern" + #, c-format msgid "Missing superior objectClass %s" msgstr "Übergeordnete Objektklasse %s nicht gefunden" #, c-format msgid "Marked %d attribute(s) to be obsolete" *************** *** 1251,1258 **** msgstr "%d Attribut(e) von neuer Objektklasse hinzugefügt" - #. only sometimes goto makes sense - msgid "Moving/copying LDAP objects" - msgstr "Einträge verschieben/kopieren" - #, c-format msgid "Error during base search for '%1$s': %2$s" --- 1460,1463 ---- *************** *** 1270,1273 **** --- 1475,1481 ---- msgstr "Wollen Sie diesen Eintrag wirklich verschieben?" + msgid "Refreshing entry after dragging" + msgstr "Eintrag nach d'n'd aktualisieren" + msgid "Could not find data to drag - internal error" msgstr "Drag-and-Drop Daten nicht gefunden - interner Fehler" *************** *** 1277,1280 **** --- 1485,1491 ---- msgstr "%s angelegt" + msgid "Moving entry" + msgstr "Eintrag verschieben" + #, c-format msgid "Could not find source server by its nickname ('%s')!" *************** *** 1319,1330 **** "Konnte Ursprungsserver für die benutzte Bezeichnung ('%s') nicht finden!" ! #, c-format ! msgid "Server '%s' down. Export may be incomplete!" ! msgstr "Server '%s' down. Export möglicherweise nicht komplett!" ! ! #, c-format ! msgid "LDAP error while searching below '%s'. Export may be incomplete!" ! msgstr "" ! "LDAP Fehler während Suche unter '%s'. Export mögilcherweise nicht komplett!" msgid "" --- 1530,1535 ---- "Konnte Ursprungsserver für die benutzte Bezeichnung ('%s') nicht finden!" ! msgid "Refreshing entry after pasting" ! msgstr "Eintrag aktualisieren nach Einfügung" msgid "" *************** *** 1395,1407 **** msgstr "Anzahl zurückgezogener Zertifikate" ! #~ msgid "Expand entry" ! #~ msgstr "Eintrag öffnen" #~ msgid "onelevel search on %s" #~ msgstr "Suche Einträge direkt unter %s" - #~ msgid "Showing referrals" - #~ msgstr "Weiterleitungen _zeigen" - #~ msgid "One entry found (running)" #~ msgid_plural "%d entries found (running)" --- 1600,1629 ---- msgstr "Anzahl zurückgezogener Zertifikate" ! #~ msgid "Not enough memory to make form." ! #~ msgstr "Kein weiterer Speicher verfügbar" ! ! #~ msgid "Using schema from last-resort schemaserver" ! #~ msgstr "Benutze Schema von Fallback Server" ! ! #~ msgid "Error connecting to server" ! #~ msgstr "Fehler beim Verbindungsaufbau mit Server" ! ! #~ msgid "Missing superior objectClass" ! #~ msgstr "Übergeordnete Objektklasse nicht gefunden" ! ! #~ msgid "Moving/copying LDAP objects" ! #~ msgstr "Einträge verschieben/kopieren" ! ! #~ msgid "Server '%s' down. Export may be incomplete!" ! #~ msgstr "Server '%s' down. Export möglicherweise nicht komplett!" ! ! #~ msgid "LDAP error while searching below '%s'. Export may be incomplete!" ! #~ msgstr "" ! #~ "LDAP Fehler während Suche unter '%s'. Export mögilcherweise nicht " ! #~ "komplett!" #~ msgid "onelevel search on %s" #~ msgstr "Suche Einträge direkt unter %s" #~ msgid "One entry found (running)" #~ msgid_plural "%d entries found (running)" *************** *** 1512,1518 **** #~ msgid "Close Connection" #~ msgstr "Verbindung schliessen" - - #~ msgid "Export to LDIF" - #~ msgstr "Exportieren (LDIF)" #~ msgid "Search below" --- 1734,1737 ---- |
From: <sta...@us...> - 2003-11-03 22:28:27
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv20106 Modified Files: browse-export.c gq-xml.c ldif.c ldif.h util.c util.h Log Message: * signed/unsigned stuff to avoid warnings with gcc 2.96 and 3.2.2 Index: browse-export.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse-export.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** browse-export.c 2 Nov 2003 17:08:28 -0000 1.5 --- browse-export.c 3 Nov 2003 22:28:24 -0000 1.6 *************** *** 88,92 **** GString *gmessage = NULL; /* GString *bigmessage = NULL; */ ! int written; int ctx; struct ldapserver *last = NULL; --- 88,92 ---- GString *gmessage = NULL; /* GString *bigmessage = NULL; */ ! size_t written; int ctx; struct ldapserver *last = NULL; *************** *** 129,133 **** written = fwrite(out->str, 1, out->len, outfile); ! if(written != out->len) { error_push(ctx, _("Save to '%3$s' failed: Only %1$d of %2$d bytes written"), --- 129,133 ---- written = fwrite(out->str, 1, out->len, outfile); ! if(written != (size_t) out->len) { error_push(ctx, _("Save to '%3$s' failed: Only %1$d of %2$d bytes written"), *************** *** 194,198 **** written = fwrite(out->str, 1, out->len, outfile); ! if(written != out->len) { g_string_sprintf(gmessage, _("%1$d of %2$d bytes written"), --- 194,198 ---- written = fwrite(out->str, 1, out->len, outfile); ! if(written != (size_t) out->len) { g_string_sprintf(gmessage, _("%1$d of %2$d bytes written"), Index: gq-xml.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/gq-xml.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** gq-xml.c 3 Nov 2003 21:28:37 -0000 1.13 --- gq-xml.c 3 Nov 2003 22:28:24 -0000 1.14 *************** *** 1126,1129 **** --- 1126,1130 ---- int fd; int rc; + int wrote; int l = strlen(filename) + 20; *************** *** 1143,1148 **** } ! rc = write(fd, newbuf->str, newbuf->len); ! if (rc == newbuf->len) { close(fd); rename(tmp, filename); --- 1144,1149 ---- } ! wrote = write(fd, newbuf->str, newbuf->len); ! if (wrote == (int) newbuf->len) { close(fd); rename(tmp, filename); Index: ldif.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/ldif.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ldif.c 28 Oct 2003 19:16:01 -0000 1.18 --- ldif.c 3 Nov 2003 22:28:24 -0000 1.19 *************** *** 142,150 **** ! gboolean ldif_line_out(GString *out, char *attr, char *value, int vlen, int error_context) { GString *tmp; ! int i, w, do_base64; /* char message[256]; */ --- 142,152 ---- ! gboolean ldif_line_out(GString *out, char *attr, char *value, ! unsigned int vlen, int error_context) { GString *tmp; ! int i; ! int w, do_base64; /* char message[256]; */ *************** *** 175,179 **** do_base64 = 0; ! for(i = 0; i < vlen && !do_base64; i++) { if(!isascii( (int) value[i]) || !isprint( (int) value[i])) do_base64 = 1; --- 177,181 ---- do_base64 = 0; ! for(i = 0; i < (int) vlen && !do_base64; i++) { if(!isascii( (int) value[i]) || !isprint( (int) value[i])) do_base64 = 1; *************** *** 191,195 **** w = strlen(attr) + do_base64 + 2; ! for(i = 0; i < tmp->len; i++, w++) { if(w > 76) { g_string_append(out, "\n "); --- 193,197 ---- w = strlen(attr) + do_base64 + 2; ! for(i = 0; i < (int) tmp->len; i++, w++) { if(w > 76) { g_string_append(out, "\n "); *************** *** 206,212 **** static const char ch[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ! void b64_encode(GString *out, char *value, int vlen) { ! int i,j; char chin[4], chout[5]; --- 208,214 ---- static const char ch[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ! void b64_encode(GString *out, char *value, unsigned int vlen) { ! unsigned int i, j; char chin[4], chout[5]; *************** *** 264,268 **** ! void b64_decode(GByteArray *out, const char *value, int vlen) { /* int cnt = 0; */ int eq = 0; --- 266,270 ---- ! void b64_decode(GByteArray *out, const char *value, unsigned int vlen) { /* int cnt = 0; */ int eq = 0; *************** *** 286,290 **** char tmp[] = { 0, 0, 0}; ! int i, j = 0, d; char c; --- 288,293 ---- char tmp[] = { 0, 0, 0}; ! unsigned int i, j = 0; ! signed int d; char c; Index: ldif.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/ldif.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ldif.h 28 Oct 2003 19:16:01 -0000 1.7 --- ldif.h 3 Nov 2003 22:28:24 -0000 1.8 *************** *** 1,5 **** /* GQ -- a GTK-based LDAP client ! Copyright (C) 1998-2001 Bert Vermeulen This program is released under the Gnu General Public License with --- 1,6 ---- /* GQ -- a GTK-based LDAP client ! Copyright (C) 1998-2003 Bert Vermeulen ! Copyright (C) 2002-2003 Peter Stamfest This program is released under the Gnu General Public License with *************** *** 33,40 **** gboolean ldif_entry_out(GString *out, LDAP *ld, LDAPMessage *msg, int error_context); ! gboolean ldif_line_out(GString *out, char *attr, char *value, int vlen, int error_context); ! void b64_encode(GString *out, char *value, int vlen); ! void b64_decode(GByteArray *out, const char *value, int vlen); #endif --- 34,42 ---- gboolean ldif_entry_out(GString *out, LDAP *ld, LDAPMessage *msg, int error_context); ! gboolean ldif_line_out(GString *out, char *attr, char *value, ! unsigned int vlen, int error_context); ! void b64_encode(GString *out, char *value, unsigned int vlen); ! void b64_decode(GByteArray *out, const char *value, unsigned int vlen); #endif Index: util.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/util.c,v retrieving revision 1.88 retrieving revision 1.89 diff -C2 -d -r1.88 -r1.89 *** util.c 3 Nov 2003 21:34:53 -0000 1.88 --- util.c 3 Nov 2003 22:28:24 -0000 1.89 *************** *** 863,867 **** ! const gpointer detokenize_data(const struct tokenlist *list, int token) { int i; --- 863,867 ---- ! const void *detokenize_data(const struct tokenlist *list, int token) { int i; Index: util.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/util.h,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** util.h 3 Nov 2003 21:07:58 -0000 1.30 --- util.h 3 Nov 2003 22:28:24 -0000 1.31 *************** *** 69,73 **** const int token; const char keyword[32]; ! const gpointer data; }; --- 69,73 ---- const int token; const char keyword[32]; ! const void *data; }; *************** *** 75,79 **** int tokenize(const struct tokenlist *list, const char *keyword); const char *detokenize(const struct tokenlist *list, int token); ! const gpointer detokenize_data(const struct tokenlist *list, int token); char *get_username(void); --- 75,79 ---- int tokenize(const struct tokenlist *list, const char *keyword); const char *detokenize(const struct tokenlist *list, int token); ! const void *detokenize_data(const struct tokenlist *list, int token); char *get_username(void); |
From: <sta...@us...> - 2003-11-03 21:53:09
|
Update of /cvsroot/gqclient/gq In directory sc8-pr-cvs1:/tmp/cvs-serv12049 Modified Files: ChangeLog Log Message: * Checking in changes made during the last few days Index: ChangeLog =================================================================== RCS file: /cvsroot/gqclient/gq/ChangeLog,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** ChangeLog 27 Oct 2003 22:19:45 -0000 1.50 --- ChangeLog 3 Nov 2003 21:53:06 -0000 1.51 *************** *** 1,2 **** --- 1,24 ---- + 2003-11-03 Peter Stamfest <pe...@st...> + * Implemented missing rollback capability for failed save attempts + (and tested them in failure situations). + * Fixed GUI problem wrt rollback when editing filters + * Environment variables GQRC and GQSTATE can be used to override + the filenames of the configuration file (usually ~/.gq) and the + state file (usually ~/.gq-state) + * Fixed several buglets wrt template editing + * Added configuration settings to turn on/off user-friendly attributes + * Added configuration setting to turn of parsing of ldap.conf and + ~/.ldaprc et.al. + 2003-11-02 Peter Stamfest <pe...@st...> + * Added user-friendly attribute names for those who like it - I + rewrote the persistent default displaytype stuff to allow for + LDAP attribute related preferences on a per attribute basis. + * Fixed several bugs introduces during the last few days. + * Did a lot of testing + 2003-11-01 Peter Stamfest <pe...@st...> + * Last couple of days: Huge changes + * rewrote error handling to mostly work with transient/modal windows + when popping up error messages, also makes the interface more + user-friendly 2003-10-27 Peter Stamfest <pe...@st...> * Finally implemented LMHASH for dt_password. I hope I got it right. |
From: <sta...@us...> - 2003-11-03 21:47:13
|
Update of /cvsroot/gqclient/gq In directory sc8-pr-cvs1:/tmp/cvs-serv10781 Modified Files: configure.in Log Message: * Bumped version to 1.0beta1 Index: configure.in =================================================================== RCS file: /cvsroot/gqclient/gq/configure.in,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** configure.in 3 Nov 2003 21:07:56 -0000 1.57 --- configure.in 3 Nov 2003 21:47:09 -0000 1.58 *************** *** 30,34 **** AC_INIT(src/gq.c) ! AM_INIT_AUTOMAKE(gq, 1.0alpha4) LANGPACK_VERSION=1 --- 30,34 ---- AC_INIT(src/gq.c) ! AM_INIT_AUTOMAKE(gq, 1.0beta1) LANGPACK_VERSION=1 |
From: <sta...@us...> - 2003-11-03 21:44:10
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv9918 Modified Files: prefs.c Log Message: * Fixed a problem created by merging several CVS trees prior to the last check-in Index: prefs.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/prefs.c,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** prefs.c 3 Nov 2003 21:34:52 -0000 1.57 --- prefs.c 3 Nov 2003 21:44:06 -0000 1.58 *************** *** 1253,1257 **** /* browse mode: Use user-friendly attribute names */ ! CONFIG_TOGGLE_BUTTON(config, pw, browse_use_user_friendly); /* GUI */ --- 1253,1257 ---- /* browse mode: Use user-friendly attribute names */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, browse_use_user_friendly); /* GUI */ *************** *** 1286,1290 **** /* do_not_use_ldap_conf */ ! CONFIG_TOGGLE_BUTTON(config, pw, do_not_use_ldap_conf); /* LDIF: format */ --- 1286,1290 ---- /* do_not_use_ldap_conf */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, do_not_use_ldap_conf); /* LDIF: format */ |
From: <sta...@us...> - 2003-11-03 21:41:30
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv9056 Modified Files: template.c Log Message: * Many improvements: - stateful windows - A cancel button when editing templates - Usual X11 rules now apply to all buttons (activated by click, not by button press) - focus handling aligned with the rest of gq - removed a really strange destroy callback to remove data attached to an object - using *_add_data_full now to register a destructor - Use a button box now to asure equal sized buttons Index: template.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/template.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** template.c 3 Nov 2003 21:07:58 -0000 1.15 --- template.c 3 Nov 2003 21:41:27 -0000 1.16 *************** *** 49,52 **** --- 49,53 ---- #include "debug.h" #include "i18n.h" + #include "state.h" *************** *** 127,132 **** } ! templatewin = gtk_window_new(GTK_WINDOW_TOPLEVEL); ! if (modalFor) { assert(GTK_IS_WINDOW(modalFor)); --- 128,133 ---- } ! templatewin = stateful_gtk_window_new(GTK_WINDOW_TOPLEVEL, ! "template", 700, 450); if (modalFor) { assert(GTK_IS_WINDOW(modalFor)); *************** *** 141,145 **** gtk_container_border_width(GTK_CONTAINER(templatewin), 10); - gtk_window_set_default_size(GTK_WINDOW(templatewin), 700, 450); gtk_signal_connect(GTK_OBJECT(templatewin), "key_press_event", (GtkSignalFunc) close_on_esc, (gpointer) templatewin); --- 142,145 ---- *************** *** 166,170 **** --- 166,172 ---- oclist = gtk_clist_new_with_titles(1, otitle); GTK_CLIST(oclist)->button_actions[1] = GTK_BUTTON_SELECTS; + #ifdef OLD_FOCUS_HANDLING GTK_WIDGET_UNSET_FLAGS(oclist, GTK_CAN_FOCUS); + #endif gtk_object_set_data_full(GTK_OBJECT(oclist), "server", server, (GtkDestroyNotify) ldapserver_unref); *************** *** 191,200 **** button = gtk_button_new(); gtk_widget_set_usize(button, 20, 30); GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); gtk_object_set_data(GTK_OBJECT(button), "direction", "right"); arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_OUT); gtk_widget_show(arrow); gtk_container_add(GTK_CONTAINER(button), arrow); ! gtk_signal_connect(GTK_OBJECT(button), "pressed", (GtkSignalFunc) arrow_button_callback, templatewin); gtk_widget_show(button); --- 193,204 ---- button = gtk_button_new(); gtk_widget_set_usize(button, 20, 30); + #ifdef OLD_FOCUS_HANDLING GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); + #endif gtk_object_set_data(GTK_OBJECT(button), "direction", "right"); arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_OUT); gtk_widget_show(arrow); gtk_container_add(GTK_CONTAINER(button), arrow); ! gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) arrow_button_callback, templatewin); gtk_widget_show(button); *************** *** 204,213 **** button = gtk_button_new(); gtk_widget_set_usize(button, 20, 30); GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); gtk_object_set_data(GTK_OBJECT(button), "direction", "left"); arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_OUT); gtk_widget_show(arrow); gtk_container_add(GTK_CONTAINER(button), arrow); ! gtk_signal_connect(GTK_OBJECT(button), "pressed", (GtkSignalFunc) arrow_button_callback, templatewin); gtk_widget_show(button); --- 208,219 ---- button = gtk_button_new(); gtk_widget_set_usize(button, 20, 30); + #ifdef OLD_FOCUS_HANDLING GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); + #endif gtk_object_set_data(GTK_OBJECT(button), "direction", "left"); arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_OUT); gtk_widget_show(arrow); gtk_container_add(GTK_CONTAINER(button), arrow); ! gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) arrow_button_callback, templatewin); gtk_widget_show(button); *************** *** 223,227 **** --- 229,235 ---- templatelist = gtk_clist_new_with_titles(1, ttitle); GTK_CLIST(templatelist)->button_actions[1] = GTK_BUTTON_SELECTS; + #ifdef OLD_FOCUS_HANDLING GTK_WIDGET_UNSET_FLAGS(templatelist, GTK_CAN_FOCUS); + #endif gtk_object_set_data_full(GTK_OBJECT(templatelist), "server", server, (GtkDestroyNotify) ldapserver_unref); *************** *** 247,251 **** --- 255,261 ---- clist = gtk_clist_new_with_titles(1, rtitle); GTK_CLIST(clist)->button_actions[1] = GTK_BUTTON_SELECTS; + #ifdef OLD_FOCUS_HANDLING GTK_WIDGET_UNSET_FLAGS(clist, GTK_CAN_FOCUS); + #endif gtk_object_set_data_full(GTK_OBJECT(clist), "server", server, (GtkDestroyNotify) ldapserver_unref); *************** *** 267,271 **** --- 277,283 ---- clist = gtk_clist_new_with_titles(1, atitle); GTK_CLIST(clist)->button_actions[1] = GTK_BUTTON_SELECTS; + #ifdef OLD_FOCUS_HANDLING GTK_WIDGET_UNSET_FLAGS(clist, GTK_CAN_FOCUS); + #endif gtk_object_set_data_full(GTK_OBJECT(clist), "server", server, (GtkDestroyNotify) ldapserver_unref); *************** *** 288,293 **** button = gtk_button_new_with_label(" Edit input defaults "); GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_DEFAULT); GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); ! gtk_signal_connect(GTK_OBJECT(button), "pressed", (GtkSignalFunc) create_tdefault_edit_window, (gpointer) templatewin); --- 300,307 ---- button = gtk_button_new_with_label(" Edit input defaults "); GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_DEFAULT); + #ifdef OLD_FOCUS_HANDLING GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); ! #endif ! gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) create_tdefault_edit_window, (gpointer) templatewin); *************** *** 314,318 **** gtk_box_pack_start(GTK_BOX(hbox3), entry, FALSE, FALSE, 10); ! hbox4 = gtk_hbox_new(FALSE, 0); gtk_widget_show(hbox4); gtk_box_pack_start(GTK_BOX(vbox1), hbox4, FALSE, FALSE, 10); --- 328,332 ---- gtk_box_pack_start(GTK_BOX(hbox3), entry, FALSE, FALSE, 10); ! hbox4 = gtk_hbutton_box_new(); gtk_widget_show(hbox4); gtk_box_pack_start(GTK_BOX(vbox1), hbox4, FALSE, FALSE, 10); *************** *** 325,329 **** #endif GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); ! gtk_signal_connect(GTK_OBJECT(button), "pressed", (GtkSignalFunc) save_template_callback, (gpointer) templatewin); --- 339,343 ---- #endif GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); ! gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) save_template_callback, (gpointer) templatewin); *************** *** 338,350 **** button = gq_button_new_with_label(_("_Cancel")); #endif ! GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS); ! gtk_signal_connect_object(GTK_OBJECT(button), "pressed", (GtkSignalFunc) gtk_widget_destroy, (gpointer) templatewin); gtk_widget_show(button); gtk_box_pack_end(GTK_BOX(hbox4), button, FALSE, FALSE, 0); - gtk_signal_connect_object(GTK_OBJECT(templatewin), "destroy", - (GtkSignalFunc) delete_edit_window, - (gpointer) templatewin); fill_new_template(templatewin); --- 352,360 ---- button = gq_button_new_with_label(_("_Cancel")); #endif ! gtk_signal_connect_object(GTK_OBJECT(button), "clicked", (GtkSignalFunc) gtk_widget_destroy, (gpointer) templatewin); gtk_widget_show(button); gtk_box_pack_end(GTK_BOX(hbox4), button, FALSE, FALSE, 0); fill_new_template(templatewin); *************** *** 357,362 **** gtk_window_set_title(GTK_WINDOW(templatewin), _("GQ: edit template")); ! gtk_object_set_data(GTK_OBJECT(templatewin), ! "templatename", g_strdup(templatename)); tmpl = find_template_by_name(templatename); if(tmpl) { --- 367,373 ---- gtk_window_set_title(GTK_WINDOW(templatewin), _("GQ: edit template")); ! gtk_object_set_data_full(GTK_OBJECT(templatewin), ! "templatename", ! g_strdup(templatename), g_free); tmpl = find_template_by_name(templatename); if(tmpl) { *************** *** 365,369 **** while(list) { /* a bit slow maybe */ ! move_objectclass(oclist, templatelist, (char *) list->data); build_used_attrs_list(templatewin, create_context); list = list->next; --- 376,381 ---- while(list) { /* a bit slow maybe */ ! move_objectclass(oclist, templatelist, ! (const char *) list->data); build_used_attrs_list(templatewin, create_context); list = list->next; *************** *** 384,407 **** done: error_flush(create_context); - } - - - /* - * templatename holds the name of the existing template the editor is using. - * this is g_strdup'ed so need to free it before the window goes - */ - /* gtk2 checked (multiple destroy callbacks safety), confidence 0.9 */ - gboolean delete_edit_window(GtkWidget *window) - { - char *templatename; - - if (window) { - if( (templatename = gtk_object_get_data(GTK_OBJECT(window), "templatename")) != NULL) { - g_free(templatename); - gtk_object_set_data(GTK_OBJECT(window), "templatename", NULL); - } - } - - return(FALSE); } --- 396,399 ---- |
From: <sta...@us...> - 2003-11-03 21:34:57
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv7529 Modified Files: configfile.c configfile.h filter.c prefs.c util.c Log Message: * Implemented missing rollbacks after failed saves * Fixed bug related to rollback (changes where indicated in the GUI even if they could not be saved). Index: configfile.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.c,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** configfile.c 3 Nov 2003 21:28:37 -0000 1.53 --- configfile.c 3 Nov 2003 21:34:52 -0000 1.54 *************** *** 126,134 **** #define SHALLOWCOPY(t,s,n) t->n = s->n ! /** NOTE: copy_ldapserver sets the target refcount to 0! */ void copy_ldapserver(struct ldapserver *target, const struct ldapserver *source) { DEEPCOPY (target, source, name); DEEPCOPY (target, source, ldaphost); --- 126,139 ---- #define SHALLOWCOPY(t,s,n) t->n = s->n ! /** NOTE: copy_ldapserver ONLY copies the configuration ! information. It DOES NOT copy the operational stuff. Often you ! will want to call reset_ldapserver(target) alongside of ! copy_ldapserver. */ void copy_ldapserver(struct ldapserver *target, const struct ldapserver *source) { + /* configuration */ + DEEPCOPY (target, source, name); DEEPCOPY (target, source, ldaphost); *************** *** 152,156 **** --- 157,169 ---- DEEPCOPY (target, source, canon_name); SHALLOWCOPY(target, source, is_uri); + } + /* resets the operational stuff */ + /** NOTE: reset_ldapserver sets the target refcount to 0 */ + void reset_ldapserver(struct ldapserver *target) + { + if (target->connection) { + close_connection(target, TRUE); + } target->connection = NULL; target->incarnation = 0; *************** *** 160,164 **** target->version = LDAP_VERSION2; target->server_down = 0; ! target->refcount = 0; } --- 173,177 ---- target->version = LDAP_VERSION2; target->server_down = 0; ! target->refcount = 0; } *************** *** 182,186 **** } ! static void free_ldapserver(struct ldapserver *server) { if (server->connection) { --- 195,199 ---- } ! void free_ldapserver(struct ldapserver *server) { if (server->connection) { Index: configfile.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.h,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** configfile.h 3 Nov 2003 21:28:37 -0000 1.38 --- configfile.h 3 Nov 2003 21:34:52 -0000 1.39 *************** *** 180,187 **** struct ldapserver *new_ldapserver(void); ! /** NOTE: copy_ldapserver sets the target refcount to 0 */ void copy_ldapserver(struct ldapserver *target, const struct ldapserver *source); /* canonicalize_ldapserver - to be called whenever the server-related --- 180,194 ---- struct ldapserver *new_ldapserver(void); + void free_ldapserver(struct ldapserver *server); ! /** NOTE: copy_ldapserver ONLY copies the configuration ! information. It DOES NOT copy the operational stuff. Often you ! will want to call reset_ldapserver(target) alongside of ! copy_ldapserver. */ void copy_ldapserver(struct ldapserver *target, const struct ldapserver *source); + + /** NOTE: reset_ldapserver sets the target refcount to 0 */ + void reset_ldapserver(struct ldapserver *target); /* canonicalize_ldapserver - to be called whenever the server-related Index: filter.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/filter.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** filter.c 3 Nov 2003 21:07:57 -0000 1.27 --- filter.c 3 Nov 2003 21:34:52 -0000 1.28 *************** *** 948,965 **** if(strcasecmp(filter->servername, servername)) { g_free_and_dup(filter->servername, servername); - gtk_clist_set_text(GTK_CLIST(filter_clist), row, 1, - servername); } if(strcasecmp(filter->basedn, basedn)) { g_free_and_dup(filter->basedn, basedn); - gtk_clist_set_text(GTK_CLIST(filter_clist), row, 2, - basedn); } if(strcasecmp(filter->ldapfilter, flattened)) { g_free_and_dup(filter->ldapfilter, flattened); - gtk_clist_set_text(GTK_CLIST(filter_clist), row, 3, - flattened); } --- 948,959 ---- *************** *** 971,974 **** --- 965,975 ---- copy_filter(filter, old_backup); } else { + gtk_clist_set_text(GTK_CLIST(filter_clist), row, 1, + servername); + gtk_clist_set_text(GTK_CLIST(filter_clist), row, 2, + basedn); + gtk_clist_set_text(GTK_CLIST(filter_clist), row, 3, + flattened); + /* udpate filter menu in main window */ mainwin_update_filter_menu(&mainwin); *************** *** 992,995 **** --- 993,998 ---- if (save_ok) { gtk_widget_destroy(window); + } else { + /* changes already undone */ } } Index: prefs.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/prefs.c,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** prefs.c 3 Nov 2003 21:28:38 -0000 1.56 --- prefs.c 3 Nov 2003 21:34:52 -0000 1.57 *************** *** 187,192 **** --- 187,195 ---- struct server_windata *sw = cb_data->sw; gboolean save_ok; + struct ldapserver *save = new_ldapserver(); server = cb_data->server; + copy_ldapserver(save, server); + window = sw->editwindow; *************** *** 209,213 **** if (!passwdmatch) { single_warning_popup(_("Passwords do not match")); ! return; } --- 212,216 ---- if (!passwdmatch) { single_warning_popup(_("Passwords do not match")); ! goto done; } *************** *** 221,225 **** "Do you want to store your bind password as clear text?")); if (!rc) { ! return; } } --- 224,228 ---- "Do you want to store your bind password as clear text?")); if (!rc) { ! goto done; } } *************** *** 248,252 **** "Please choose another name"), this); ! return; } } --- 251,255 ---- "Please choose another name"), this); ! goto done; } } *************** *** 266,270 **** if (*text) { single_warning_popup(_("Port must be numeric or empty")); ! return; } else { /* empty, might have LDAP URI */ --- 269,273 ---- if (*text) { single_warning_popup(_("Port must be numeric or empty")); ! goto done; } else { /* empty, might have LDAP URI */ *************** *** 357,362 **** } - update_serverlist(&mainwin); - /* if (cb_data->edit_new_server) { */ /* /\* everything ok, take the server out of the cb_data (in case it */ --- 360,363 ---- *************** *** 367,374 **** if (save_ok) { gtk_widget_destroy(window); } else { ! #warning FIXME: Undo changes } } --- 368,379 ---- if (save_ok) { + update_serverlist(&mainwin); gtk_widget_destroy(window); } else { ! copy_ldapserver(server, save); } + + done: + if (save) free_ldapserver(save); } *************** *** 1206,1209 **** --- 1211,1217 ---- { unsigned int type; + /* use a dummy configuration to store current/old preferences for + rollback */ + struct gq_config *save = new_config(); /* Search type */ *************** *** 1216,1239 **** /* saves a lot of typing */ ! #define CONFIG_TOGGLE_BUTTON(c,p,n) (c)->n = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON((p)->n)) /* Show DN */ ! CONFIG_TOGGLE_BUTTON(config, pw, showdn); #if 0 /* Show OC */ ! CONFIG_TOGGLE_BUTTON(config, pw, showoc); #endif /* Show RDN only */ ! CONFIG_TOGGLE_BUTTON(config, pw, show_rdn_only); #if 0 /* Sorting: search mode */ ! CONFIG_TOGGLE_BUTTON(config, pw, sort_search); #endif /* Sorting: browse mode */ ! CONFIG_TOGGLE_BUTTON(config, pw, sort_browse); /* browse mode: Use user-friendly attribute names */ --- 1224,1254 ---- /* saves a lot of typing */ ! #define CONFIG_TOGGLE_BUTTON(c,p,s,n) { \ ! (s)->n = (c)->n; \ ! (c)->n = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON((p)->n)); \ ! } + /* WHEN ADDING STUFF: DO NOT FORGET TO CODE ROLLBACK AS WELL */ /* Show DN */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, showdn); #if 0 /* Show OC */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, showoc); #endif /* Show RDN only */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, show_rdn_only); #if 0 /* Sorting: search mode */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, sort_search); #endif /* Sorting: browse mode */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, sort_browse); ! ! /* browse mode: Use user-friendly attribute names */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, browse_use_user_friendly); /* browse mode: Use user-friendly attribute names */ *************** *** 1242,1258 **** /* GUI */ /* restore window sizes */ ! CONFIG_TOGGLE_BUTTON(config, pw, restore_window_sizes); /* restore window positions */ ! CONFIG_TOGGLE_BUTTON(config, pw, restore_window_positions); /* restore search history */ ! CONFIG_TOGGLE_BUTTON(config, pw, restore_search_history); /* restore tabs */ ! CONFIG_TOGGLE_BUTTON(config, pw, restore_tabs); /* never_leak_credentials */ ! CONFIG_TOGGLE_BUTTON(config, pw, never_leak_credentials); /* do_not_use_ldap_conf */ --- 1257,1287 ---- /* GUI */ /* restore window sizes */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, restore_window_sizes); /* restore window positions */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, restore_window_positions); /* restore search history */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, restore_search_history); + /* WHEN ADDING STUFF: DO NOT FORGET TO CODE ROLLBACK AS WELL */ /* restore tabs */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, restore_tabs); /* never_leak_credentials */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, never_leak_credentials); ! ! /* do_not_use_ldap_conf */ ! CONFIG_TOGGLE_BUTTON(config, pw, save, do_not_use_ldap_conf); ! ! /* WHEN ADDING STUFF: DO NOT FORGET TO CODE ROLLBACK AS WELL */ ! /* Search type */ ! for(type = 0; type < sizeof(pw->search_st)/sizeof(pw->search_st[0]); ! type++) { ! if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pw->search_st[type]))) ! break; ! } ! save->search_argument = config->search_argument; ! config->search_argument = type; /* do_not_use_ldap_conf */ *************** *** 1265,1270 **** --- 1294,1301 ---- break; } + save->ldifformat = config->ldifformat; config->ldifformat = type; + g_free_and_dup(save->schemaserver, config->schemaserver); if(pw->schemaserver) { g_free_and_dup(config->schemaserver, *************** *** 1275,1280 **** gtk_widget_destroy(pw->prefswindow); } else { ! #warning FIXME: Undo changes } } --- 1306,1330 ---- gtk_widget_destroy(pw->prefswindow); } else { ! /* saves typing */ ! #define CONFIG_ROLLBACK(o,s,n) (o)->n = (s)->n ! CONFIG_ROLLBACK(config, save, showdn); ! CONFIG_ROLLBACK(config, save, showoc); ! CONFIG_ROLLBACK(config, save, show_rdn_only); ! CONFIG_ROLLBACK(config, save, sort_search); ! CONFIG_ROLLBACK(config, save, sort_browse); ! CONFIG_ROLLBACK(config, save, browse_use_user_friendly); ! CONFIG_ROLLBACK(config, save, restore_window_sizes); ! CONFIG_ROLLBACK(config, save, restore_window_positions); ! CONFIG_ROLLBACK(config, save, restore_search_history); ! CONFIG_ROLLBACK(config, save, restore_tabs); ! CONFIG_ROLLBACK(config, save, never_leak_credentials); ! CONFIG_ROLLBACK(config, save, do_not_use_ldap_conf); ! ! CONFIG_ROLLBACK(config, save, search_argument); ! CONFIG_ROLLBACK(config, save, ldifformat); ! g_free_and_dup(config->schemaserver, save->schemaserver); } + + free_config(save); } Index: util.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/util.c,v retrieving revision 1.87 retrieving revision 1.88 diff -C2 -d -r1.87 -r1.88 *** util.c 3 Nov 2003 21:07:58 -0000 1.87 --- util.c 3 Nov 2003 21:34:53 -0000 1.88 *************** *** 401,404 **** --- 401,406 ---- } + reset_ldapserver(newserver); + /* check: do we have this server around already??? */ s = server_by_canon_name(new_uri->str, TRUE); *************** *** 428,431 **** --- 430,435 ---- } } + + reset_ldapserver(newserver); /* anonymous */ |
From: <sta...@us...> - 2003-11-03 21:28:41
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv5819 Modified Files: configfile.c configfile.h gq-xml.c gq.c input.c prefs.c Log Message: * Added two new configuration settings: - do-not-use-ldap-conf to turn off parsing of the standard client configuration files - browse-use-user-friendly to switch on/off the use of user-friendly attribute names Index: configfile.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.c,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** configfile.c 3 Nov 2003 21:19:53 -0000 1.52 --- configfile.c 3 Nov 2003 21:28:37 -0000 1.53 *************** *** 625,628 **** --- 625,629 ---- config_write_bool(wc, cfg->sort_search, "sort-search-mode", NULL); config_write_bool(wc, cfg->sort_browse, "sort-browse-mode", NULL); + config_write_bool(wc, cfg->browse_use_user_friendly, "browse-use-user-friendly", NULL); config_write_bool(wc, cfg->restore_window_sizes, *************** *** 636,639 **** --- 637,642 ---- config_write_bool(wc, cfg->never_leak_credentials, "never-leak-credentials", NULL); + config_write_bool(wc, cfg->do_not_use_ldap_conf, + "do-not-use-ldap-conf", NULL); config_write_string(wc, detokenize(token_ldifformat, cfg->ldifformat), *************** *** 837,841 **** --- 840,848 ---- cfg->restore_tabs = DEFAULT_RESTORE_TABS; + cfg->browse_use_user_friendly = DEFAULT_BROWSE_USE_USER_FRIENDLY; + + cfg->never_leak_credentials = DEFAULT_NEVER_LEAK_CREDENTIALS; + cfg->do_not_use_ldap_conf = DEFAULT_DO_NOT_USE_LDAP_CONF; return cfg; Index: configfile.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.h,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** configfile.h 3 Nov 2003 21:07:57 -0000 1.37 --- configfile.h 3 Nov 2003 21:28:37 -0000 1.38 *************** *** 63,66 **** --- 63,68 ---- #define DEFAULT_SHOW_REF 0 + #define DEFAULT_BROWSE_USE_USER_FRIENDLY 1 + #define DEFAULT_RESTORE_SIZES 1 #define DEFAULT_RESTORE_POSITIONS 0 *************** *** 71,74 **** --- 73,77 ---- referrals */ #define DEFAULT_NEVER_LEAK_CREDENTIALS 1 + #define DEFAULT_DO_NOT_USE_LDAP_CONF 0 /* The following do not _really_ belong in here right now... */ *************** *** 111,116 **** --- 114,122 ---- int restore_search_history; int restore_tabs; + int browse_use_user_friendly; int never_leak_credentials; + int do_not_use_ldap_conf; /* turn off parsing of ldap.conf and + .ldaprc */ GHashTable *attrs; /* attribute specific data */ Index: gq-xml.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/gq-xml.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** gq-xml.c 3 Nov 2003 21:07:57 -0000 1.12 --- gq-xml.c 3 Nov 2003 21:28:37 -0000 1.13 *************** *** 195,198 **** --- 195,207 ---- } + static void browse_use_user_friendlyE(struct parser_context *ctx, + struct tagstack_entry *e) + { + struct gq_config *c = peek_tag(ctx->stack, 1)->data; + + int b = booleanCDATA(ctx, e); + if (b >= 0) c->browse_use_user_friendly = b; + } + static void restore_window_sizesE(struct parser_context *ctx, struct tagstack_entry *e) *************** *** 240,243 **** --- 249,261 ---- } + static void do_not_use_ldap_confE(struct parser_context *ctx, + struct tagstack_entry *e) + { + struct gq_config *c = peek_tag(ctx->stack, 1)->data; + + int b = booleanCDATA(ctx, e); + if (b >= 0) c->do_not_use_ldap_conf = b; + } + static void ldif_formatE(struct parser_context *ctx, struct tagstack_entry *e) *************** *** 743,746 **** --- 761,769 ---- }, { + "browse-use-user-friendly", 0, + NULL, browse_use_user_friendlyE, + { "gq-config", NULL }, + }, + { "restore-window-sizes", 0, NULL, restore_window_sizesE, *************** *** 765,768 **** --- 788,796 ---- "never-leak-credentials", 0, NULL, never_leak_credentialsE, + { "gq-config", NULL }, + }, + { + "do-not-use-ldap-conf", 0, + NULL, do_not_use_ldap_confE, { "gq-config", NULL }, }, Index: gq.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/gq.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** gq.c 2 Nov 2003 07:20:44 -0000 1.21 --- gq.c 3 Nov 2003 21:28:37 -0000 1.22 *************** *** 1,5 **** /* GQ -- a GTK-based LDAP client ! Copyright (C) 1998-2001 Bert Vermeulen Copyright (C) 2002-2003 Peter Stamfest --- 1,5 ---- /* GQ -- a GTK-based LDAP client ! Copyright (C) 1998-2003 Bert Vermeulen Copyright (C) 2002-2003 Peter Stamfest *************** *** 124,127 **** --- 124,131 ---- init_config(); init_state(); + + if (config->do_not_use_ldap_conf) { + setenv(g_strdup("LDAPNOINIT"), g_strdup("1"), 1); + } setup_fonts(); Index: input.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/input.c,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** input.c 3 Nov 2003 21:07:57 -0000 1.82 --- input.c 3 Nov 2003 21:28:37 -0000 1.83 *************** *** 1029,1034 **** if (build || ff->label == NULL) { /* attribute name */ - ff->label = gtk_label_new(human_readable_attrname(ff->attrname)); gtk_misc_set_alignment(GTK_MISC(ff->label), LABEL_JUSTIFICATION, .5); --- 1029,1039 ---- if (build || ff->label == NULL) { /* attribute name */ + + if (config->browse_use_user_friendly) { + ff->label = gtk_label_new(human_readable_attrname(ff->attrname)); + } else { + ff->label = gtk_label_new(ff->attrname); + } gtk_misc_set_alignment(GTK_MISC(ff->label), LABEL_JUSTIFICATION, .5); Index: prefs.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/prefs.c,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** prefs.c 3 Nov 2003 21:07:57 -0000 1.55 --- prefs.c 3 Nov 2003 21:28:38 -0000 1.56 *************** *** 80,83 **** --- 80,85 ---- GtkWidget *restore_tabs; + GtkWidget *browse_use_user_friendly; + /* template tab */ GtkWidget *schemaserver; *************** *** 88,91 **** --- 90,95 ---- /* security */ GtkWidget *never_leak_credentials; + GtkWidget *do_not_use_ldap_conf; + }; *************** *** 1233,1236 **** --- 1237,1243 ---- CONFIG_TOGGLE_BUTTON(config, pw, sort_browse); + /* browse mode: Use user-friendly attribute names */ + CONFIG_TOGGLE_BUTTON(config, pw, browse_use_user_friendly); + /* GUI */ /* restore window sizes */ *************** *** 1249,1252 **** --- 1256,1262 ---- CONFIG_TOGGLE_BUTTON(config, pw, never_leak_credentials); + /* do_not_use_ldap_conf */ + CONFIG_TOGGLE_BUTTON(config, pw, do_not_use_ldap_conf); + /* LDIF: format */ for(type = 0; type < sizeof(pw->ldif_format)/sizeof(pw->ldif_format[0]); *************** *** 1864,1867 **** --- 1874,1896 ---- + /* browse_use_user_friendly button */ + pw->browse_use_user_friendly = gq_check_button_new_with_label(_("Use _user friendly attribute names")); + + if(config->browse_use_user_friendly) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(pw->browse_use_user_friendly), TRUE); + #ifdef OLD_FOCUS_HANDLING + GTK_WIDGET_UNSET_FLAGS(GTK_CHECK_BUTTON(pw->browse_use_user_friendly), + GTK_CAN_FOCUS); + #endif + gtk_tooltips_set_tip(tips, pw->browse_use_user_friendly, + _("If set, turns on to use user-friendly attribute " + "names (if configured) in browse mode."), + S_("tooltip|") + ); + + gtk_widget_show(pw->browse_use_user_friendly); + gtk_box_pack_start(GTK_BOX(vbox_view), pw->browse_use_user_friendly, + FALSE, FALSE, 5); + } *************** *** 2040,2043 **** --- 2069,2088 ---- ); + /* Do not use ldap.conf ... checkbox */ + button = gq_check_button_new_with_label(_("Do not _use ldap.conf/.ldaprc file")); + pw->do_not_use_ldap_conf = button; + + if(config->do_not_use_ldap_conf) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), TRUE); + #ifdef OLD_FOCUS_HANDLING + GTK_WIDGET_UNSET_FLAGS(GTK_CHECK_BUTTON(button), GTK_CAN_FOCUS); + #endif + gtk_widget_show(button); + gtk_box_pack_start(GTK_BOX(vbox1), button, FALSE, TRUE, 5); + + gtk_tooltips_set_tip(tips, button, + _("Turn off the standard use of the system-wide ldap.conf configuration file and/or the per-user .ldaprc. This works by setting the environment variable LDAPNOINIT. Note that the this feature only set this variable, but never deletes it. This means that the default behaviour when not selecting this depends on the environment variable being set or not prior to the start of gq. Changing this will only affect future program runs."), + S_("tooltip|") + ); } |
From: <sta...@us...> - 2003-11-03 21:19:56
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv3397 Modified Files: configfile.c state.c Log Message: * Allow to use environment variables GQRC and GQSTATE to override configuration an state file names Index: configfile.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.c,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** configfile.c 3 Nov 2003 21:07:57 -0000 1.51 --- configfile.c 3 Nov 2003 21:19:53 -0000 1.52 *************** *** 299,318 **** { gchar *rcpath = NULL; - /* static char rcpath[128]; */ char *home; ! home = homedir(); ! if(home == NULL) { ! error_push(context, _("You have no home directory!")); ! return(NULL); } - - /* need add'l "/", thus add some extra chars */ - rcpath = g_malloc(strlen(home) + strlen(RCFILE) + 3); - - sprintf(rcpath, "%s/%s", home, RCFILE); - g_free(home); - - return(rcpath); } --- 299,321 ---- { gchar *rcpath = NULL; char *home; + char *env = getenv("GQRC"); + + if (env) { + return g_strdup(env); + } else { + home = homedir(); + if(home == NULL) { + error_push(context, _("You have no home directory!")); + return(NULL); + } ! /* need add'l "/", thus add some extra chars */ ! rcpath = g_malloc(strlen(home) + strlen(RCFILE) + 3); ! ! sprintf(rcpath, "%s/%s", home, RCFILE); ! g_free(home); ! return(rcpath); } } Index: state.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/state.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** state.c 3 Nov 2003 21:07:58 -0000 1.12 --- state.c 3 Nov 2003 21:19:54 -0000 1.13 *************** *** 491,508 **** gchar *rcpath = NULL; char *home; ! home = homedir(); ! if(home == NULL) { ! error_push(context, _("You have no home directory!")); ! return(NULL); } - - /* need add'l "/", thus add some extra chars */ - rcpath = g_malloc(strlen(home) + strlen(STATEFILE) + 3); - - sprintf(rcpath, "%s/%s", home, STATEFILE); - g_free(home); - - return(rcpath); } --- 491,513 ---- gchar *rcpath = NULL; char *home; + char *env = getenv("GQSTATE"); ! if (env) { ! return g_strdup(env); ! } else { ! home = homedir(); ! if(home == NULL) { ! error_push(context, _("You have no home directory!")); ! return(NULL); ! } ! ! /* need add'l "/", thus add some extra chars */ ! rcpath = g_malloc(strlen(home) + strlen(STATEFILE) + 3); ! ! sprintf(rcpath, "%s/%s", home, STATEFILE); ! g_free(home); ! ! return(rcpath); } } |
From: <sta...@us...> - 2003-11-03 21:16:00
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv2553 Modified Files: common.h Log Message: * Made g_free_and_dup NULL safe Index: common.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/common.h,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** common.h 28 Oct 2003 19:16:01 -0000 1.33 --- common.h 3 Nov 2003 21:15:57 -0000 1.34 *************** *** 156,160 **** #define g_free_and_dup(target, source) \ ! { if (target) g_free(target); (target) = g_strdup(source); } #define g_free_if(x) \ --- 156,161 ---- #define g_free_and_dup(target, source) \ ! { if (target) g_free(target); \ ! (target) = (source) ? g_strdup(source) : NULL; } #define g_free_if(x) \ |
From: <sta...@us...> - 2003-11-03 21:14:51
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv2145 Modified Files: browse.c Log Message: * Fixed a crash when refreshing non dn-browse entries (used a pointer to an already free'd inputform Index: browse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse.c,v retrieving revision 1.94 retrieving revision 1.95 diff -C2 -d -r1.94 -r1.95 *** browse.c 3 Nov 2003 21:07:56 -0000 1.94 --- browse.c 3 Nov 2003 21:14:41 -0000 1.95 *************** *** 2,6 **** GQ -- a GTK-based LDAP client Copyright (C) 1998-2003 Bert Vermeulen ! Parts: Copyright (C) 2002-2003 Peter Stamfest <pe...@st...> This program is released under the Gnu General Public License with --- 2,6 ---- GQ -- a GTK-based LDAP client Copyright (C) 1998-2003 Bert Vermeulen ! Copyright (C) 2002-2003 Peter Stamfest This program is released under the Gnu General Public License with *************** *** 378,381 **** --- 378,393 ---- GTK_WIDGET(ctree)); + /* delete old struct inputform (if any) */ + struct inputform *iform = BROWSETAB(tab)->inputform; + if(iform) { + /* but first get current hide status */ + /* HACK: store hide status it in the browse-tab + data-structure */ + BROWSETAB(tab)->hidden = iform->hide_status; + + inputform_free(iform); + BROWSETAB(tab)->inputform = NULL; + } + entry->base_methods->refresh(entry, ctx, ctree, node, tab); error_flush(ctx); |
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv32757/src Modified Files: browse-dnd.c browse.c browse.h configfile.c configfile.h debug.c debug.h dt_binary.c dt_generic_binary.c dt_oc.c dt_password.c dt_time.c dtutil.c filter.c filter.h formfill.c formfill.h gq-xml.c input.c ldapops.c mainwin.c mainwin.h prefs.c ref-browse.c schema.c schemabrowse.c search.c search.h state.c syntax.c syntax.h template.c template.h util.c util.h xmlparse.c Log Message: * Improved code quality by trying out many gcc warning option to find potential problems: - hiding of global/local variables in some scope - Added many const keywords where appropriate and useful - Cleaned up some header files and made many functions static - took care of some signed/unsigned situations - some minor cosmetic changes - added some missing initialization values - Use some more warning options permanently with gcc Index: browse-dnd.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse-dnd.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** browse-dnd.c 2 Nov 2003 07:20:42 -0000 1.20 --- browse-dnd.c 3 Nov 2003 21:07:56 -0000 1.21 *************** *** 189,193 **** 67, 100, 200 }; ! if (distance >= (sizeof(intervalmap) / sizeof(intervalmap[0])) || distance < 0) { return 200; --- 189,193 ---- 67, 100, 200 }; ! if (distance >= (int) (sizeof(intervalmap) / sizeof(intervalmap[0])) || distance < 0) { return 200; Index: browse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse.c,v retrieving revision 1.93 retrieving revision 1.94 diff -C2 -d -r1.93 -r1.94 *** browse.c 2 Nov 2003 17:23:49 -0000 1.93 --- browse.c 3 Nov 2003 21:07:56 -0000 1.94 *************** *** 244,248 **** } ! void add_single_server(struct tab *tab, struct ldapserver *server) { --- 244,248 ---- } ! #if DEAD_CODE void add_single_server(struct tab *tab, struct ldapserver *server) { *************** *** 253,257 **** } ! /* --- 253,257 ---- } ! #endif /* *************** *** 277,281 **** /* GTK callbacks translating to the correct entry object method calls */ ! void tree_row_expanded(GtkCTree *ctree, GtkCTreeNode *ctree_node, struct tab *tab) { browse_entry *entry; --- 277,283 ---- /* GTK callbacks translating to the correct entry object method calls */ ! static void tree_row_expanded(GtkCTree *ctree, ! GtkCTreeNode *ctree_node, ! struct tab *tab) { browse_entry *entry; *************** *** 297,302 **** ! void tree_row_selected(GtkCTree *ctree, GtkCTreeNode *node, ! int column, struct tab *tab) { browse_entry *entry; --- 299,304 ---- ! static void tree_row_selected(GtkCTree *ctree, GtkCTreeNode *node, ! int column, struct tab *tab) { browse_entry *entry; *************** *** 1013,1019 **** if (e) { /* have it!! */ ! char *dn = ldap_get_dn(ld, e); ! found = dn_browse_single_add(dn, tree, node); ! if (dn) ldap_memfree(dn); node = found; --- 1015,1021 ---- if (e) { /* have it!! */ ! char *dn2 = ldap_get_dn(ld, e); ! found = dn_browse_single_add(dn2, tree, node); ! if (dn2) ldap_memfree(dn2); node = found; Index: browse.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse.h,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** browse.h 2 Nov 2003 07:20:43 -0000 1.37 --- browse.h 3 Nov 2003 21:07:56 -0000 1.38 *************** *** 54,61 **** }; - - struct ldapserver *server_from_node(GtkCTree *ctreeroot, - GtkCTreeNode *node); - struct browse_entry_vtab; --- 54,57 ---- *************** *** 124,128 **** ! void record_path(struct tab *tab, browse_entry *entry, GtkCTree *ctreeroot, GtkCTreeNode *node); --- 120,124 ---- ! void record_path(struct tab *tab, browse_entry *entry, GtkCTree *ctreeroot, GtkCTreeNode *node); *************** *** 132,161 **** /* get the server object for the current entry */ ! struct ldapserver *server_from_node(GtkCTree *ctreeroot, GtkCTreeNode *node); ! void cleanup_browse_mode(struct tab *tab); struct tab *new_browsemode(); ! void refresh_subtree(int error_context, ! GtkCTree *ctree, GtkCTreeNode *node); ! void refresh_subtree_new_dn(int error_context, ! GtkCTree *ctree, GtkCTreeNode *node, const char *newdn, int options); ! void refresh_subtree_with_options(int error_context, GtkCTree *ctree, GtkCTreeNode *node, int options); - void refresh_server(GtkCTree *ctree, - GtkCTreeNode *node); - GtkCTreeNode *show_server_dn(int error_context, ! GtkCTree *tree, struct ldapserver *server, const char *dn, gboolean select_node); --- 128,154 ---- /* get the server object for the current entry */ ! struct ldapserver *server_from_node(GtkCTree *ctreeroot, GtkCTreeNode *node); ! /* void cleanup_browse_mode(struct tab *tab); */ struct tab *new_browsemode(); ! void refresh_subtree(int error_context, ! GtkCTree *ctree, GtkCTreeNode *node); ! void refresh_subtree_new_dn(int error_context, ! GtkCTree *ctree, GtkCTreeNode *node, const char *newdn, int options); ! void refresh_subtree_with_options(int error_context, GtkCTree *ctree, GtkCTreeNode *node, int options); GtkCTreeNode *show_server_dn(int error_context, ! GtkCTree *tree, struct ldapserver *server, const char *dn, gboolean select_node); *************** *** 164,174 **** gboolean select_node); ! GtkCTreeNode *node_from_dn(GtkCTree *ctreeroot, GtkCTreeNode *top, char *dn); ! void add_single_server(struct tab *tab, struct ldapserver *server); ! void tree_row_expanded(GtkCTree *ctree, GtkCTreeNode *ctree_node, struct tab *tab); ! void tree_row_selected(GtkCTree *ctree, GtkCTreeNode *node, int column, struct tab *tab); GtkCTreeNode *dn_browse_single_add(const char *dn, --- 157,165 ---- gboolean select_node); ! GtkCTreeNode *node_from_dn(GtkCTree *ctreeroot, GtkCTreeNode *top, char *dn); ! /* void add_single_server(struct tab *tab, struct ldapserver *server); */ GtkCTreeNode *dn_browse_single_add(const char *dn, *************** *** 176,179 **** --- 167,171 ---- GtkCTreeNode *node); + /* options to the refresh_subtree_with_options functions */ /* NOTE: browse-dnd.h defines additional options starting at 256 */ *************** *** 181,185 **** #define REFRESH_FORCE_UNEXPAND 2 ! GtkCTreeNode *tree_node_from_server_dn(GtkCTree *ctree, struct ldapserver *server, const char *dn); --- 173,177 ---- #define REFRESH_FORCE_UNEXPAND 2 ! GtkCTreeNode *tree_node_from_server_dn(GtkCTree *ctree, struct ldapserver *server, const char *dn); Index: configfile.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.c,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** configfile.c 2 Nov 2003 17:41:04 -0000 1.50 --- configfile.c 3 Nov 2003 21:07:57 -0000 1.51 *************** *** 43,46 **** --- 43,47 ---- #include "template.h" #include "filter.h" + #include "encode.h" /* gq_codeset */ #include "errorchain.h" #include "debug.h" *************** *** 55,76 **** const struct tokenlist token_searchargument[] = { ! { SEARCHARG_BEGINS_WITH, "Begins with" }, ! { SEARCHARG_ENDS_WITH, "Ends with" }, ! { SEARCHARG_CONTAINS, "Contains" }, ! { SEARCHARG_EQUALS, "Equals" }, ! { 0, "" } }; const struct tokenlist token_bindtype[] = { ! { BINDTYPE_SIMPLE, "Simple" }, ! { BINDTYPE_KERBEROS, "Kerberos"}, ! { BINDTYPE_SASL, "SASL"}, ! { 0, "" } }; const struct tokenlist token_ldifformat[] = { ! { LDIF_UMICH, "UMich" }, ! { LDIF_V1, "Version1" }, ! { 0, "" } }; --- 56,77 ---- const struct tokenlist token_searchargument[] = { ! { SEARCHARG_BEGINS_WITH, "Begins with", NULL }, ! { SEARCHARG_ENDS_WITH, "Ends with", NULL }, ! { SEARCHARG_CONTAINS, "Contains", NULL }, ! { SEARCHARG_EQUALS, "Equals", NULL }, ! { 0, "", NULL } }; const struct tokenlist token_bindtype[] = { ! { BINDTYPE_SIMPLE, "Simple", NULL }, ! { BINDTYPE_KERBEROS, "Kerberos", NULL }, ! { BINDTYPE_SASL, "SASL", NULL }, ! { 0, "", NULL } }; const struct tokenlist token_ldifformat[] = { ! { LDIF_UMICH, "UMich", NULL }, ! { LDIF_V1, "Version1", NULL }, ! { 0, "", NULL } }; *************** *** 107,110 **** --- 108,112 ---- newserver->is_uri = 0; + /* operational */ newserver->connection = NULL; newserver->incarnation = 0; *************** *** 121,125 **** /* saves typing */ ! #define DEEPCOPY(t,s,n) t->n = s->n ? g_strdup(s->n) : NULL #define SHALLOWCOPY(t,s,n) t->n = s->n --- 123,127 ---- /* saves typing */ ! #define DEEPCOPY(t,s,n) g_free_and_dup(t->n, s->n) #define SHALLOWCOPY(t,s,n) t->n = s->n *************** *** 250,265 **** ! void config_add_server(struct gq_config *config, struct ldapserver *newserver) { ! config->servers = g_list_append(config->servers, newserver); ldapserver_ref(newserver); } ! void config_remove_server(struct gq_config *config, struct ldapserver *server) { ! config->servers = g_list_remove(config->servers, server); ldapserver_unref(server); } --- 252,267 ---- ! void config_add_server(struct gq_config *cfg, struct ldapserver *newserver) { ! cfg->servers = g_list_append(cfg->servers, newserver); ldapserver_ref(newserver); } ! void config_remove_server(struct gq_config *cfg, struct ldapserver *server) { ! cfg->servers = g_list_remove(cfg->servers, server); ldapserver_unref(server); } *************** *** 591,595 **** { char xmldecl[255]; - extern const char *gq_codeset; snprintf(xmldecl, sizeof(xmldecl), --- 593,596 ---- Index: configfile.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.h,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** configfile.h 2 Nov 2003 17:41:04 -0000 1.36 --- configfile.h 3 Nov 2003 21:07:57 -0000 1.37 *************** *** 118,124 **** struct keywordlist { ! char attribute[64]; ! int token; ! int flags; }; --- 118,124 ---- struct keywordlist { ! const char attribute[64]; ! const int token; ! const int flags; }; Index: debug.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/debug.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** debug.c 17 Oct 2003 06:31:16 -0000 1.9 --- debug.c 3 Nov 2003 21:07:57 -0000 1.10 *************** *** 47,51 **** #endif ! void *gq_malloc(size_t size, char *msg) { void *newmem; --- 47,51 ---- #endif ! void *gq_malloc(size_t size, const char *msg) { void *newmem; *************** *** 65,69 **** ! void gq_free(void *mem, char *msg) { #ifdef DEBUG --- 65,69 ---- ! void gq_free(void *mem, const char *msg) { #ifdef DEBUG Index: debug.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/debug.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** debug.h 22 Oct 2003 05:39:46 -0000 1.8 --- debug.h 3 Nov 2003 21:07:57 -0000 1.9 *************** *** 68,73 **** #endif /* DEBUG */ ! void *gq_malloc(size_t size, char *msg); ! void gq_free(void *mem, char *msg); void report_num_mallocs(void); void dump_ldapservers(void); --- 68,73 ---- #endif /* DEBUG */ ! void *gq_malloc(size_t size, const char *msg); ! void gq_free(void *mem, const char *msg); void report_num_mallocs(void); void dump_ldapservers(void); Index: dt_binary.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/dt_binary.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** dt_binary.c 2 Nov 2003 07:20:43 -0000 1.16 --- dt_binary.c 3 Nov 2003 21:07:57 -0000 1.17 *************** *** 1,8 **** /* GQ -- a GTK-based LDAP client ! Copyright (C) 1998-2001 Bert Vermeulen ! ! This file (dt_binary.c) is ! Copyright (C) 2002 by Peter Stamfest and Bert Vermeulen This program is released under the Gnu General Public License with --- 1,6 ---- /* GQ -- a GTK-based LDAP client ! Copyright (C) 1998-2003 Bert Vermeulen ! Copyright (C) 2002-2003 Peter Stamfest This program is released under the Gnu General Public License with *************** *** 268,272 **** } else if (*flags & DT_BINARY_PLAIN) { /* check if data does NOT contain a NUL byte .... */ ! int i; int fail = 0; for (i = 0 ; i < data->len ; i++) { --- 266,270 ---- } else if (*flags & DT_BINARY_PLAIN) { /* check if data does NOT contain a NUL byte .... */ ! unsigned int i; int fail = 0; for (i = 0 ; i < data->len ; i++) { Index: dt_generic_binary.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/dt_generic_binary.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** dt_generic_binary.c 2 Nov 2003 17:23:49 -0000 1.13 --- dt_generic_binary.c 3 Nov 2003 21:07:57 -0000 1.14 *************** *** 351,355 **** file = open(selected_filename, O_WRONLY | O_TRUNC | O_CREAT, 0666); if (file >= 0) { ! int n, wrote = 0; while( (n = write(file, data->data + wrote, --- 351,356 ---- file = open(selected_filename, O_WRONLY | O_TRUNC | O_CREAT, 0666); if (file >= 0) { ! int n; ! unsigned int wrote = 0; while( (n = write(file, data->data + wrote, Index: dt_oc.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/dt_oc.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** dt_oc.c 2 Nov 2003 07:20:43 -0000 1.20 --- dt_oc.c 3 Nov 2003 21:07:57 -0000 1.21 *************** *** 351,355 **** oc = find_oc_by_oc_name(ss, newtext); if (oc) { ! LDAPAttributeType *at; /* required attributes */ for(i = 0; oc->oc_at_oids_must && oc->oc_at_oids_must[i]; i++) { --- 351,356 ---- oc = find_oc_by_oc_name(ss, newtext); if (oc) { ! at = NULL; ! /* required attributes */ for(i = 0; oc->oc_at_oids_must && oc->oc_at_oids_must[i]; i++) { Index: dt_password.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/dt_password.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** dt_password.c 2 Nov 2003 07:20:43 -0000 1.21 --- dt_password.c 3 Nov 2003 21:07:57 -0000 1.22 *************** *** 69,81 **** /* NOTE: The password-hash generating functions may change the data in-place. They are explicitly permitted to do so. */ ! static GByteArray *dt_password_encode_password_crypt(char *data, int len); ! static GByteArray *dt_password_encode_password_md5(char *data, int len); ! static GByteArray *dt_password_encode_password_sha1(char *data, int len); ! static GByteArray *dt_password_encode_password_ssha1(char *data, int len); ! static GByteArray *dt_password_encode_password_smd5(char *data, int len); ! static GByteArray *dt_password_encode_password_nthash(char *data, int len); ! static GByteArray *dt_password_encode_password_lmhash(char *data, int len); ! typedef GByteArray *(CryptFunc)(char *data, int len); #endif --- 69,88 ---- /* NOTE: The password-hash generating functions may change the data in-place. They are explicitly permitted to do so. */ ! static GByteArray *dt_password_encode_password_crypt(char *data, ! unsigned int len); ! static GByteArray *dt_password_encode_password_md5(char *data, ! unsigned int len); ! static GByteArray *dt_password_encode_password_sha1(char *data, ! unsigned int len); ! static GByteArray *dt_password_encode_password_ssha1(char *data, ! unsigned int len); ! static GByteArray *dt_password_encode_password_smd5(char *data, ! unsigned int len); ! static GByteArray *dt_password_encode_password_nthash(char *data, ! unsigned int len); ! static GByteArray *dt_password_encode_password_lmhash(char *data, ! unsigned int len); ! typedef GByteArray *(CryptFunc)(char *data, unsigned int len); #endif *************** *** 126,130 **** #if defined(HAVE_LIBCRYPTO) ! static GByteArray *dt_password_encode_password_crypt(char *data, int len) { GString *salt; --- 133,138 ---- #if defined(HAVE_LIBCRYPTO) ! static GByteArray *dt_password_encode_password_crypt(char *data, ! unsigned int len) { GString *salt; *************** *** 155,159 **** } ! static GByteArray *dt_password_encode_password_md5(char *data, int len) { char md5_out[MD5_DIGEST_LENGTH]; --- 163,168 ---- } ! static GByteArray *dt_password_encode_password_md5(char *data, ! unsigned int len) { char md5_out[MD5_DIGEST_LENGTH]; *************** *** 173,177 **** } ! static GByteArray *dt_password_encode_password_sha1(char *data, int len) { char sha_out[SHA_DIGEST_LENGTH]; --- 182,187 ---- } ! static GByteArray *dt_password_encode_password_sha1(char *data, ! unsigned int len) { char sha_out[SHA_DIGEST_LENGTH]; *************** *** 192,196 **** ! static GByteArray *dt_password_encode_password_ssha1(char *data, int len) { unsigned char rand[4]; --- 202,207 ---- ! static GByteArray *dt_password_encode_password_ssha1(char *data, ! unsigned int len) { unsigned char rand[4]; *************** *** 219,223 **** } ! static GByteArray *dt_password_encode_password_smd5(char *data, int len) { unsigned char rand[4]; --- 230,235 ---- } ! static GByteArray *dt_password_encode_password_smd5(char *data, ! unsigned int len) { unsigned char rand[4]; *************** *** 247,254 **** static const char hexdigit[] = "0123456789ABCDEF"; ! static GByteArray *dt_password_encode_password_nthash(char *data, int len) { unsigned char md4_out[MD4_DIGEST_LENGTH]; ! int i; GByteArray *unicode = g_byte_array_new(); GByteArray *gb = g_byte_array_new(); --- 259,267 ---- static const char hexdigit[] = "0123456789ABCDEF"; ! static GByteArray *dt_password_encode_password_nthash(char *data, ! unsigned int len) { unsigned char md4_out[MD4_DIGEST_LENGTH]; ! unsigned int i; GByteArray *unicode = g_byte_array_new(); GByteArray *gb = g_byte_array_new(); *************** *** 315,319 **** handled by toupper) */ ! static des_cblock *lm_make_key(const char *pw, des_cblock *key) { int i; --- 328,332 ---- handled by toupper) */ ! static void lm_make_key(const char *pw, des_cblock *key) { int i; *************** *** 330,336 **** static const char *lmhash_key = "KGS!@#$%"; ! static GByteArray *dt_password_encode_password_lmhash(char *data, int len) { ! int i; char hex[2]; char plain[15]; --- 343,350 ---- static const char *lmhash_key = "KGS!@#$%"; ! static GByteArray *dt_password_encode_password_lmhash(char *data, ! unsigned int len) { ! unsigned int i; char hex[2]; char plain[15]; Index: dt_time.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/dt_time.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** dt_time.c 2 Nov 2003 07:20:43 -0000 1.11 --- dt_time.c 3 Nov 2003 21:07:57 -0000 1.12 *************** *** 93,97 **** struct { ! char *fmt; int *ptr; int max; --- 93,97 ---- struct { ! const char *fmt; int *ptr; int max; *************** *** 103,107 **** { "%2u", &tm->tm_min, 59 }, { "%2u", &tm->tm_sec, 59 }, ! { NULL, NULL }, }; --- 103,107 ---- { "%2u", &tm->tm_min, 59 }, { "%2u", &tm->tm_sec, 59 }, ! { NULL, NULL, 0 }, }; Index: dtutil.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/dtutil.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** dtutil.c 30 Sep 2003 17:20:25 -0000 1.4 --- dtutil.c 3 Nov 2003 21:07:57 -0000 1.5 *************** *** 1,8 **** /* GQ -- a GTK-based LDAP client ! Copyright (C) 1998-2001 Bert Vermeulen ! ! This file (dtutil.c) is ! Copyright (C) 2002 by Peter Stamfest This program is released under the Gnu General Public License with --- 1,6 ---- /* GQ -- a GTK-based LDAP client ! Copyright (C) 1998-2003 Bert Vermeulen ! Copyright (C) 2002-2003 Peter Stamfest This program is released under the Gnu General Public License with Index: filter.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/filter.c,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** filter.c 2 Nov 2003 17:49:46 -0000 1.26 --- filter.c 3 Nov 2003 21:07:57 -0000 1.27 *************** *** 53,56 **** --- 53,72 ---- static void copy_existing_filter(GtkCList *filter_clist); + static void name_popup(void); + static void filterlist_row_selected(GtkCList *filter_clist, + int row, int column, + GdkEventButton *event, gpointer data); + static void filterlist_row_unselected(GtkCList *filter_clist, + int row, int column, + GdkEventButton *event, gpointer data); + static void remove_from_filtermenu(struct gq_filter *filter); + static void delete_filter(GtkWidget *widget, GtkCList *filter_clist); + static void edit_filter(GtkCList *filter_clist, int is_new_filter, + int row, struct gq_filter *filter); + + static void save_filter(GtkWidget *window); + static char *indent_filter(char *filter); + static char *unindent_filter(char *indented); + static void indent_toggled(GtkToggleButton *indent, gpointer editbox); struct gq_filter *new_filter() *************** *** 87,91 **** } ! struct gq_filter *check_filtername(const char *filtername) { GList *filterlist; --- 103,107 ---- } ! static struct gq_filter *check_filtername(const char *filtername) { GList *filterlist; *************** *** 206,210 **** ! void name_popup(void) { GtkWidget *window, *vbox1, *vbox2, *hbox0, *label, *filternamebox, *button; --- 222,226 ---- ! static void name_popup(void) { GtkWidget *window, *vbox1, *vbox2, *hbox0, *label, *filternamebox, *button; *************** *** 476,481 **** ! void filterlist_row_selected(GtkCList *filter_clist, int row, int column, ! GdkEventButton *event, gpointer data) { struct gq_filter *filter; --- 492,498 ---- ! static void filterlist_row_selected(GtkCList *filter_clist, ! int row, int column, ! GdkEventButton *event, gpointer data) { struct gq_filter *filter; *************** *** 500,505 **** ! void filterlist_row_unselected(GtkCList *filter_clist, int row, int column, ! GdkEventButton *event, gpointer data) { --- 517,523 ---- ! static void filterlist_row_unselected(GtkCList *filter_clist, ! int row, int column, ! GdkEventButton *event, gpointer data) { *************** *** 517,526 **** ! void delete_filter(GtkWidget *widget, GtkCList *filter_clist) { int selected_row; struct gq_filter *filter; ! selected_row = (GPOINTER_TO_UINT(gtk_object_get_data(GTK_OBJECT(filter_clist), "selected_row"))); if(selected_row == -1) /* nothing selected */ --- 535,544 ---- ! static void delete_filter(GtkWidget *widget, GtkCList *filter_clist) { int selected_row; struct gq_filter *filter; ! selected_row = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(filter_clist), "selected_row")); if(selected_row == -1) /* nothing selected */ *************** *** 552,556 **** struct gq_filter *filter; ! selected_row = (GPOINTER_TO_UINT(gtk_object_get_data(GTK_OBJECT(filter_clist), "selected_row"))); if(selected_row == -1) /* nothing selected */ --- 570,574 ---- struct gq_filter *filter; ! selected_row = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(filter_clist), "selected_row")); if(selected_row == -1) /* nothing selected */ *************** *** 564,568 **** ! void remove_from_filtermenu(struct gq_filter *filter) { GtkWidget *menuitem; --- 582,586 ---- ! static void remove_from_filtermenu(struct gq_filter *filter) { GtkWidget *menuitem; *************** *** 586,591 **** ! void edit_filter(GtkCList *filter_clist, int is_new_filter, ! int row, struct gq_filter *filter) { #if GTK_MAJOR >= 2 --- 604,609 ---- ! static void edit_filter(GtkCList *filter_clist, int is_new_filter, ! int row, struct gq_filter *filter) { #if GTK_MAJOR >= 2 *************** *** 794,798 **** ! void save_filter(GtkWidget *window) { GtkWidget *entry, *text, *filter_clist; --- 812,816 ---- ! static void save_filter(GtkWidget *window) { GtkWidget *entry, *text, *filter_clist; *************** *** 978,982 **** ! char *indent_filter(char *filter) { unsigned int i, f, s, indent, oslstack[30]; --- 996,1000 ---- ! static char *indent_filter(char *filter) { unsigned int i, f, s, indent, oslstack[30]; *************** *** 1045,1049 **** ! char *unindent_filter(char *indented) { unsigned int s, f, allow_sp, allow_sp_next; --- 1063,1067 ---- ! static char *unindent_filter(char *indented) { unsigned int s, f, allow_sp, allow_sp_next; *************** *** 1091,1095 **** ! void indent_toggled(GtkToggleButton *indent, gpointer editbox) { char *current, *newtext; --- 1109,1113 ---- ! static void indent_toggled(GtkToggleButton *indent, gpointer editbox) { char *current, *newtext; Index: filter.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/filter.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** filter.h 2 Nov 2003 07:20:44 -0000 1.5 --- filter.h 3 Nov 2003 21:07:57 -0000 1.6 *************** *** 47,67 **** void copy_filter(struct gq_filter *target, const struct gq_filter *source); ! struct gq_filter *check_filtername(const char *filtername); void add_filter(GtkWidget *filternamebox); ! void name_popup(void); void filter_selected(struct gq_filter *filter); void show_filters(void); ! void filterlist_row_selected(GtkCList *filter_clist, int row, int column, ! GdkEventButton *event, gpointer data); ! void filterlist_row_unselected(GtkCList *filter_clist, int row, int column, ! GdkEventButton *event, gpointer data); void add_new_filter_callback(GtkCList *filter_clist); ! void delete_filter(GtkWidget *widget, GtkCList *filter_clist); ! void remove_from_filtermenu(struct gq_filter *filter); ! void edit_filter(GtkCList *filter_clist, int is_new_filter, int row, struct gq_filter *filter); ! void save_filter(GtkWidget *window); ! char *indent_filter(char *filter); ! char *unindent_filter(char *indented); ! void indent_toggled(GtkToggleButton *indent, gpointer editbox); #endif /* GQ_FILTER_H_INCLUDED */ --- 47,68 ---- void copy_filter(struct gq_filter *target, const struct gq_filter *source); ! /* struct gq_filter *check_filtername(const char *filtername); */ void add_filter(GtkWidget *filternamebox); ! /* void name_popup(void); */ void filter_selected(struct gq_filter *filter); void show_filters(void); ! /* void filterlist_row_selected(GtkCList *filter_clist, int row, int column, */ ! /* GdkEventButton *event, gpointer data); */ ! /* void filterlist_row_unselected(GtkCList *filter_clist, int row, int column, */ ! /* GdkEventButton *event, gpointer data); */ void add_new_filter_callback(GtkCList *filter_clist); ! /* void delete_filter(GtkWidget *widget, GtkCList *filter_clist); */ ! /* void remove_from_filtermenu(struct gq_filter *filter); */ ! /* void edit_filter(GtkCList *filter_clist, int is_new_filter, int row, struct gq_filter *filter); */ ! /* void save_filter(GtkWidget *window); */ ! /* char *indent_filter(char *filter); */ ! /* char *unindent_filter(char *indented); */ ! /* void indent_toggled(GtkToggleButton *indent, gpointer editbox); */ ! #endif /* GQ_FILTER_H_INCLUDED */ Index: formfill.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/formfill.c,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** formfill.c 2 Nov 2003 17:41:05 -0000 1.44 --- formfill.c 3 Nov 2003 21:07:57 -0000 1.45 *************** *** 218,222 **** entry = ldap_first_entry(ld, res); if(entry) { ! char *c; for(attr = ldap_first_attribute(ld, entry, &ber); attr ; --- 218,222 ---- entry = ldap_first_entry(ld, res); if(entry) { ! char *cc; for(attr = ldap_first_attribute(ld, entry, &ber); attr ; *************** *** 224,232 **** gboolean oc; /* filter out some internal attributes... */ ! c = attr_strip(attr); if (server->hide_internal) { ! if (isInternalAttr(c)) { ldap_memfree(attr); ! if (c) g_free(c); continue; } --- 224,232 ---- gboolean oc; /* filter out some internal attributes... */ ! cc = attr_strip(attr); if (server->hide_internal) { ! if (isInternalAttr(cc)) { ldap_memfree(attr); ! if (cc) g_free(cc); continue; } *************** *** 239,244 **** ldapserver_ref(server); ! strncpy(form->attrname, c, MAX_ATTR_LEN); ! if (c) g_free(c); oc = strcasecmp(attr, "objectClass") == 0; --- 239,244 ---- ldapserver_ref(server); ! strncpy(form->attrname, cc, MAX_ATTR_LEN); ! if (cc) g_free(cc); oc = strcasecmp(attr, "objectClass") == 0; *************** *** 426,430 **** check for aliases. The canonical attribute type may be retrieved when passing a non NULL value for attrtype */ ! struct formfill *lookup_attribute_using_schema(GList *formlist, char *attr, struct server_schema *schema, LDAPAttributeType **attrtype) --- 426,431 ---- check for aliases. The canonical attribute type may be retrieved when passing a non NULL value for attrtype */ ! struct formfill *lookup_attribute_using_schema(GList *formlist, ! const char *attr, struct server_schema *schema, LDAPAttributeType **attrtype) Index: formfill.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/formfill.h,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** formfill.h 2 Nov 2003 07:20:44 -0000 1.29 --- formfill.h 3 Nov 2003 21:07:57 -0000 1.30 *************** *** 118,122 **** void dump_formlist(GList *formlist); struct formfill *lookup_attribute(GList *formlist, char *attr); ! struct formfill *lookup_attribute_using_schema(GList *formlist, char *attr, struct server_schema *schema, LDAPAttributeType **attrtype); --- 118,123 ---- void dump_formlist(GList *formlist); struct formfill *lookup_attribute(GList *formlist, char *attr); ! struct formfill *lookup_attribute_using_schema(GList *formlist, ! const char *attr, struct server_schema *schema, LDAPAttributeType **attrtype); Index: gq-xml.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/gq-xml.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** gq-xml.c 2 Nov 2003 17:41:05 -0000 1.11 --- gq-xml.c 3 Nov 2003 21:07:57 -0000 1.12 *************** *** 37,40 **** --- 37,41 ---- #include <errno.h> #include <fcntl.h> + #include <ctype.h> #include "gq-xml.h" *************** *** 50,53 **** --- 51,55 ---- #include "errorchain.h" #include "common.h" + #include "encode.h" /* gq_codeset */ *************** *** 973,977 **** { ! NULL }, --- 975,981 ---- { ! NULL, 0, ! NULL, NULL, ! { NULL }, }, *************** *** 982,986 **** { FILE *fp = fopen(filename, "r"); - extern int errno; int changed = 0; --- 986,989 ---- *************** *** 1011,1015 **** return 0; } else { - extern const char *gq_codeset; char *cfgbuf; GString *newbuf; --- 1014,1017 ---- Index: input.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/input.c,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -d -r1.81 -r1.82 *** input.c 2 Nov 2003 17:41:05 -0000 1.81 --- input.c 3 Nov 2003 21:07:57 -0000 1.82 *************** *** 1758,1768 **** mods = formdiff_to_ldapmod(oldlist, newlist); if(mods != NULL && mods[0] != NULL) { ! LDAPControl c, *ctrls[2] = { NULL, NULL } ; ! c.ldctl_oid = LDAP_CONTROL_MANAGEDSAIT; ! c.ldctl_value.bv_val = NULL; ! c.ldctl_value.bv_len = 0; ! c.ldctl_iscritical = 1; ! ctrls[0] = &c; /* dump_mods(mods); */ --- 1758,1768 ---- mods = formdiff_to_ldapmod(oldlist, newlist); if(mods != NULL && mods[0] != NULL) { ! LDAPControl ct, *ctrls[2] = { NULL, NULL } ; ! ct.ldctl_oid = LDAP_CONTROL_MANAGEDSAIT; ! ct.ldctl_value.bv_val = NULL; ! ct.ldctl_value.bv_len = 0; ! ct.ldctl_iscritical = 1; ! ctrls[0] = &ct; /* dump_mods(mods); */ *************** *** 2465,2469 **** struct server_schema *ss; ! attr_dialog_comm comm = { 0, 0, 0, NULL }; comm.outbuf = outbuf; *outbuf = NULL; --- 2465,2469 ---- struct server_schema *ss; ! attr_dialog_comm comm = { 0, 0, 0, NULL, NULL, NULL }; comm.outbuf = outbuf; *outbuf = NULL; Index: ldapops.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/ldapops.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** ldapops.c 2 Nov 2003 07:20:44 -0000 1.21 --- ldapops.c 3 Nov 2003 21:07:57 -0000 1.22 *************** *** 165,169 **** c.ldctl_value.bv_val = NULL; c.ldctl_value.bv_len = 0; ! c.ldctl_iscritical = 1; ctrls[0] = &c; --- 165,169 ---- c.ldctl_value.bv_val = NULL; c.ldctl_value.bv_len = 0; ! c.ldctl_iscritical = 1; ctrls[0] = &c; *************** *** 182,195 **** if (sld == tld && (flags & MOVE_DELETE_MOVED) && source_server->version == LDAP_VERSION3) { - LDAPControl cc, *ctrls[2] = { NULL, NULL } ; - - /* prepare ManageDSAit in case we deal with referrals */ - cc.ldctl_oid = LDAP_CONTROL_MANAGEDSAIT; - cc.ldctl_value.bv_val = NULL; - cc.ldctl_value.bv_len = 0; - cc.ldctl_iscritical = 1; - - ctrls[0] = &cc; - rc = ldap_rename_s(sld, source_dn, /* dn */ --- 182,185 ---- *************** *** 303,307 **** entries ... and copying may continue */ do { ! LDAPMessage *res; recheck = FALSE; --- 293,297 ---- entries ... and copying may continue */ do { ! res = NULL; recheck = FALSE; Index: mainwin.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/mainwin.c,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** mainwin.c 2 Nov 2003 17:41:05 -0000 1.54 --- mainwin.c 3 Nov 2003 21:07:57 -0000 1.55 *************** *** 58,61 **** --- 58,63 ---- struct mainwin_data mainwin; + static void create_license_window(void); + static GtkWidget *create_about_window(void); static void close_current_tab(struct mainwin_data *win); *************** *** 925,929 **** } ! void create_license_window(void) { #if GTK_MAJOR < 2 --- 927,931 ---- } ! static void create_license_window(void) { #if GTK_MAJOR < 2 *************** *** 1040,1044 **** } ! GtkWidget *create_about_window(void) { GtkWidget *dialog_vbox2, *hbox0, *hbox; --- 1042,1046 ---- } ! static GtkWidget *create_about_window(void) { GtkWidget *dialog_vbox2, *hbox0, *hbox; Index: mainwin.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/mainwin.h,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** mainwin.h 2 Nov 2003 17:41:05 -0000 1.24 --- mainwin.h 3 Nov 2003 21:07:57 -0000 1.25 *************** *** 96,101 **** void cleanup_tab(struct tab *tab); void update_serverlist(struct mainwin_data *win); ! void create_license_window(void); ! GtkWidget *create_about_window(void); /* gboolean ctrl_b_hack(GtkWidget *widget, GdkEventKey *event, gpointer obj); */ /* gboolean ctrl_w_hack(GtkWidget *widget, GdkEventKey *event, gpointer obj); */ --- 96,100 ---- void cleanup_tab(struct tab *tab); void update_serverlist(struct mainwin_data *win); ! /* gboolean ctrl_b_hack(GtkWidget *widget, GdkEventKey *event, gpointer obj); */ /* gboolean ctrl_w_hack(GtkWidget *widget, GdkEventKey *event, gpointer obj); */ Index: prefs.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/prefs.c,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** prefs.c 2 Nov 2003 17:23:49 -0000 1.54 --- prefs.c 3 Nov 2003 21:07:57 -0000 1.55 *************** *** 1199,1205 **** static void prefs_okbutton_callback(GtkWidget *button, ! struct prefs_windata *pw) { ! int type; /* Search type */ --- 1199,1205 ---- static void prefs_okbutton_callback(GtkWidget *button, ! struct prefs_windata *pw) { ! unsigned int type; /* Search type */ Index: ref-browse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/ref-browse.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ref-browse.c 2 Nov 2003 17:23:49 -0000 1.9 --- ref-browse.c 3 Nov 2003 21:07:57 -0000 1.10 *************** *** 138,142 **** } ! static void ref_browse_entry_expand(browse_entry *e, int error_context, GtkCTree *ctree, --- 138,142 ---- } ! static void ref_browse_entry_expand(browse_entry *be, int error_context, GtkCTree *ctree, *************** *** 145,150 **** { ref_browse_entry *entry; ! assert(IS_REF_ENTRY(e)); ! entry = REF_BROWSE_ENTRY(e); if (!entry->expanded) { --- 145,150 ---- { ref_browse_entry *entry; ! assert(IS_REF_ENTRY(be)); ! entry = REF_BROWSE_ENTRY(be); if (!entry->expanded) { Index: schema.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/schema.c,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** schema.c 2 Nov 2003 07:20:44 -0000 1.26 --- schema.c 3 Nov 2003 21:07:58 -0000 1.27 *************** *** 89,95 **** server->name); } - done: } ! set_normalcursor(); return(ss); --- 89,94 ---- server->name); } } ! done: set_normalcursor(); return(ss); *************** *** 112,122 **** const char *errp; char *subschema = NULL; ! char *subschemasubentry[] = { "subschemaSubentry", ! NULL }; ! char *schema_attrs[] = { "objectClasses", ! "attributeTypes", ! "matchingRules", ! "ldapSyntaxes", ! NULL }; if(server->flags & SERVER_HAS_NO_SCHEMA) --- 111,121 ---- const char *errp; char *subschema = NULL; ! const char *subschemasubentry[] = { "subschemaSubentry", ! NULL }; ! const char *schema_attrs[] = { "objectClasses", ! "attributeTypes", ! "matchingRules", ! "ldapSyntaxes", ! NULL }; if(server->flags & SERVER_HAS_NO_SCHEMA) *************** *** 132,136 **** server->name); msg = ldap_search_ext_s(ld, "", LDAP_SCOPE_BASE, "(objectclass=*)", ! subschemasubentry, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &res); --- 131,135 ---- server->name); msg = ldap_search_ext_s(ld, "", LDAP_SCOPE_BASE, "(objectclass=*)", ! (char**) subschemasubentry, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &res); *************** *** 178,182 **** msg = ldap_search_ext_s(ld, subschema, LDAP_SCOPE_BASE, ! "(objectclass=*)", schema_attrs, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &res); --- 177,181 ---- msg = ldap_search_ext_s(ld, subschema, LDAP_SCOPE_BASE, ! "(objectclass=*)", (char**) schema_attrs, 0, NULL, NULL, NULL, LDAP_NO_LIMIT, &res); Index: schemabrowse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/schemabrowse.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** schemabrowse.c 2 Nov 2003 07:20:44 -0000 1.27 --- schemabrowse.c 3 Nov 2003 21:07:58 -0000 1.28 *************** *** 52,56 **** ! static void attach_schema_item(GtkWidget *tree, char *type, void *schemaobject, char *itemname); static gboolean schema_button_tree(GtkWidget *tree_item, GdkEventButton *event, --- 52,56 ---- ! static void attach_schema_item(GtkWidget *tree, const char *type, void *schemaobject, char *itemname); static gboolean schema_button_tree(GtkWidget *tree_item, GdkEventButton *event, *************** *** 392,396 **** /* more of a macro really, this makes inserting duplicates easier */ ! static void attach_schema_item(GtkWidget *tree, char *type, void *schemaobject, char *itemname) { --- 392,396 ---- /* more of a macro really, this makes inserting duplicates easier */ ! static void attach_schema_item(GtkWidget *tree, const char *type, void *schemaobject, char *itemname) { *************** *** 869,873 **** GtkWidget *entry, *combo, *check, *clist; int i; ! char *kind, *dummy[2]; /* left half */ --- 869,874 ---- GtkWidget *entry, *combo, *check, *clist; int i; ! const char *kind; ! char *dummy[2]; /* left half */ *************** *** 1262,1266 **** GtkWidget *combo, *entry, *check, *clist; int i; ! char *usage, *dummy[2]; /* left half */ --- 1263,1268 ---- GtkWidget *combo, *entry, *check, *clist; int i; ! const char *usage; ! char *dummy[2]; /* left half */ Index: search.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/search.c,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** search.c 2 Nov 2003 17:23:49 -0000 1.61 --- search.c 3 Nov 2003 21:07:58 -0000 1.62 *************** *** 60,66 **** static void query(struct tab *tab); ! static int column_by_attr(struct attrs **attrlist, char *attribute); ! static int new_attr(struct attrs **attrlist, char *attr); ! static struct attrs *find_attr(struct attrs *attrlist, char *attr); static gint searchbase_button_clicked(GtkWidget *widget, --- 60,66 ---- static void query(struct tab *tab); ! static int column_by_attr(struct attrs **attrlist, const char *attribute); ! static int new_attr(struct attrs **attrlist, const char *attr); ! static struct attrs *find_attr(struct attrs *attrlist, const char *attr); static gint searchbase_button_clicked(GtkWidget *widget, *************** *** 74,77 **** --- 74,83 ---- static void destroy_search_mode(GtkWidget *w, struct tab *tab); + static void servername_changed_callback(struct tab *tab); + static int select_entry_callback(GtkWidget *clist, gint row, gint column, + GdkEventButton *event, struct tab *tab); + static void search_edit_entry_callback(struct tab *tab); + static void search_new_from_entry_callback(GtkWidget *w, struct tab *tab); + static void delete_search_entry(struct tab *tab); static void search_save_snapshot(int error_context, *************** *** 882,886 **** ! void servername_changed_callback(struct tab *tab) { GList *searchbase_list; --- 888,892 ---- ! static void servername_changed_callback(struct tab *tab) { GList *searchbase_list; *************** *** 981,985 **** } ! static int column_by_attr(struct attrs **attrlist, char *attribute) { struct attrs *attr; --- 987,991 ---- } ! static int column_by_attr(struct attrs **attrlist, const char *attribute) { struct attrs *attr; *************** *** 994,1005 **** ! static int new_attr(struct attrs **attrlist, char *attr) { ! struct attrs *new_attr, *alist; int cnt; ! new_attr = g_malloc(sizeof(struct attrs)); ! strncpy(new_attr->name, attr, MAX_ATTR_LEN); ! new_attr->next = NULL; cnt = 0; --- 1000,1011 ---- ! static int new_attr(struct attrs **attrlist, const char *attr) { ! struct attrs *n_attr, *alist; int cnt; ! n_attr = g_malloc(sizeof(struct attrs)); ! strncpy(n_attr->name, attr, MAX_ATTR_LEN); ! n_attr->next = NULL; cnt = 0; *************** *** 1011,1020 **** alist = alist->next; } ! alist->next = new_attr; } else ! *attrlist = new_attr; ! new_attr->column = cnt; return(cnt); --- 1017,1026 ---- alist = alist->next; } ! alist->next = n_attr; } else ! *attrlist = n_attr; ! n_attr->column = cnt; return(cnt); *************** *** 1022,1026 **** ! static struct attrs *find_attr(struct attrs *attrlist, char *attribute) { --- 1028,1032 ---- ! static struct attrs *find_attr(struct attrs *attrlist, const char *attribute) { *************** *** 1488,1492 **** list. The attrs[i] MUST NOT be free'd */ const GList *I; - int i; want_oc = 0; --- 1494,1497 ---- *************** *** 1640,1644 **** if (rc == LDAP_SUCCESS) { - int i; for (i = 0 ; refs[i] ; i++) { add_referral(query_context, --- 1645,1648 ---- *************** *** 2063,2067 **** } ! void search_new_from_entry_callback(GtkWidget *w, struct tab *tab) { struct dn_on_server *set; --- 2067,2071 ---- } ! static void search_new_from_entry_callback(GtkWidget *w, struct tab *tab) { struct dn_on_server *set; *************** *** 2080,2084 **** } ! void search_edit_entry_callback(struct tab *tab) { struct dn_on_server *set; --- 2084,2088 ---- } ! static void search_edit_entry_callback(struct tab *tab) { struct dn_on_server *set; *************** *** 2092,2096 **** } ! void delete_search_entry(struct tab *tab) { struct dn_on_server *set; --- 2096,2100 ---- } ! static void delete_search_entry(struct tab *tab) { struct dn_on_server *set; *************** *** 2110,2115 **** } ! int select_entry_callback(GtkWidget *clist, gint row, gint column, ! GdkEventButton *event, struct tab *tab) { struct dn_on_server *set; --- 2114,2119 ---- } ! static int select_entry_callback(GtkWidget *clist, gint row, gint column, ! GdkEventButton *event, struct tab *tab) { struct dn_on_server *set; Index: search.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/search.h,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** search.h 2 Nov 2003 07:20:44 -0000 1.17 --- search.h 3 Nov 2003 21:07:58 -0000 1.18 *************** *** 62,78 **** struct tab *new_searchmode(); - void servername_changed_callback(struct tab *tab); char *make_filter(struct ldapserver *server, char *querystring); - void search_new_from_entry_callback(GtkWidget *w, struct tab *tab); - void search_edit_entry_callback(struct tab *tab); - void delete_search_entry(struct tab *tab); - int select_entry_callback(GtkWidget *clist, gint row, gint column, - GdkEventButton *event, struct tab *tab); - int unselect_entry_callback(GtkWidget *clist, gint row, gint column, - GdkEventButton *event, struct tab *tab); - - void cleanup_search_mode(struct tab *tab); void fill_out_search(struct tab *tab, struct ldapserver *server, --- 62,68 ---- Index: state.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/state.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** state.c 2 Nov 2003 17:23:49 -0000 1.11 --- state.c 3 Nov 2003 21:07:58 -0000 1.12 *************** *** 4,10 **** Copyright (C) 2002-2003 Peter Stamfest - This file is - Copyright (c) 2003 by Peter Stamfest <pe...@st...> - This program is released under the Gnu General Public License with the additional exemption that compiling, linking, and/or using --- 4,7 ---- *************** *** 47,50 **** --- 44,48 ---- #include "i18n.h" #include "state.h" + #include "encode.h" /* gq_codeset */ enum state_value_type { *************** *** 55,62 **** static struct tokenlist token_value_type_names[] = { ! { SV_int, "integer" }, ! { SV_char, "string" }, ! { SV_list, "list" }, ! { 0, "" } }; --- 53,60 ---- static struct tokenlist token_value_type_names[] = { ! { SV_int, "integer", NULL }, ! { SV_char, "string", NULL }, ! { SV_list, "list", NULL }, ! { 0, "", NULL } }; *************** *** 613,617 **** { char xmldecl[255]; - extern const char *gq_codeset; snprintf(xmldecl, sizeof(xmldecl), --- 611,614 ---- *************** *** 678,682 **** struct tagstack_entry *e) { ! GHashTable *entities = peek_tag(ctx->stack, 1)->data; struct state_entity *ent = e->data; int i; --- 675,679 ---- struct tagstack_entry *e) { ! GHashTable *ents = peek_tag(ctx->stack, 1)->data; struct state_entity *ent = e->data; int i; *************** *** 684,688 **** for (i = 0 ; e->attrs[i] ; i += 2) { if (strcmp("name", e->attrs[i]) == 0) { ! g_hash_table_insert(entities, g_strdup(e->attrs[i+1]), ent); --- 681,685 ---- for (i = 0 ; e->attrs[i] ; i += 2) { if (strcmp("name", e->attrs[i]) == 0) { ! g_hash_table_insert(ents, g_strdup(e->attrs[i+1]), ent); *************** *** 821,825 **** }, { ! NULL } }; --- 818,824 ---- }, { ! NULL, 0, ! NULL, NULL, ! { NULL }, } }; Index: syntax.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/syntax.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** syntax.c 2 Nov 2003 17:23:49 -0000 1.20 --- syntax.c 3 Nov 2003 21:07:58 -0000 1.21 *************** *** 538,542 **** /* lookup syntax... */ for(sh = syntaxes ; sh->syntax_oid ; sh++) { ! g_hash_table_insert(syntax_hash, sh->syntax_oid, sh); } } --- 538,542 ---- /* lookup syntax... */ for(sh = syntaxes ; sh->syntax_oid ; sh++) { ! g_hash_table_insert(syntax_hash, (gpointer) sh->syntax_oid, sh); } } Index: syntax.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/syntax.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** syntax.h 2 Nov 2003 07:20:44 -0000 1.10 --- syntax.h 3 Nov 2003 21:07:58 -0000 1.11 *************** *** 34,39 **** struct syntax_handler { ! char *syntax_oid; ! char *desc; int displaytype; int (*displayTypeFunc)(const char *attr, const char *syn_oid); --- 34,39 ---- struct syntax_handler { ! const char *syntax_oid; ! const char *desc; int displaytype; int (*displayTypeFunc)(const char *attr, const char *syn_oid); *************** *** 42,46 **** typedef struct _display_type_handler { ! char *name; gboolean selectable; gboolean show_in_search_result; --- 42,46 ---- typedef struct _display_type_handler { ! const char *name; gboolean selectable; gboolean show_in_search_result; Index: template.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/template.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** template.c 2 Nov 2003 07:20:44 -0000 1.14 --- template.c 3 Nov 2003 21:07:58 -0000 1.15 *************** *** 503,507 **** * move item by name from source clist to destination clist */ ! void move_objectclass(GtkWidget *source, GtkWidget *destination, char *objectclass) { int row; --- 503,508 ---- * move item by name from source clist to destination clist */ ! void move_objectclass(GtkWidget *source, GtkWidget *destination, ! const char *objectclass) { int row; *************** *** 761,765 **** * return row number */ ! int get_clist_row_by_text(GtkWidget *clist, char *text) { int i, row; --- 762,766 ---- * return row number */ ! int get_clist_row_by_text(GtkWidget *clist, const char *text) { int i, row; Index: template.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/template.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** template.h 2 Nov 2003 07:20:44 -0000 1.6 --- template.h 3 Nov 2003 21:07:58 -0000 1.7 *************** *** 46,55 **** void arrow_button_callback(GtkWidget *widget, GtkWidget *window); int clistcasecmp(GtkCList *clist, gconstpointer row1, gconstpointer row2); ! void move_objectclass(GtkWidget *source, GtkWidget *destination, char *objectclass); void save_template_callback(GtkWidget *widget, GtkWidget *window); struct gq_template *window2template(GtkWidget *window); void fill_clist_templates(GtkWidget *clist); char *get_clist_selection(GtkWidget *clist); ! int get_clist_row_by_text(GtkWidget *clist, char *text); --- 46,56 ---- void arrow_button_callback(GtkWidget *widget, GtkWidget *window); int clistcasecmp(GtkCList *clist, gconstpointer row1, gconstpointer row2); ! void move_objectclass(GtkWidget *source, GtkWidget *destination, ! const char *objectclass); void save_template_callback(GtkWidget *widget, GtkWidget *window); struct gq_template *window2template(GtkWidget *window); void fill_clist_templates(GtkWidget *clist); char *get_clist_selection(GtkWidget *clist); ! int get_clist_row_by_text(GtkWidget *clist, const char *text); Index: util.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/util.c,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -d -r1.86 -r1.87 *** util.c 2 Nov 2003 17:41:05 -0000 1.86 --- util.c 3 Nov 2003 21:07:58 -0000 1.87 *************** *** 450,454 **** goto done; } - /* nothing usable found - retry */ } --- 450,453 ---- *************** *** 711,718 **** for (e = ldap_first_entry(ld, res); e ; e = ldap_next_entry(ld, e)) { ! char *dn = ldap_get_dn(ld, e); gboolean delok = delete_entry_full(delete_context, ! server, dn, TRUE); ! if (dn) ldap_memfree(dn); if (delok) { --- 710,717 ---- for (e = ldap_first_entry(ld, res); e ; e = ldap_next_entry(ld, e)) { ! char *dn2 = ldap_get_dn(ld, e); gboolean delok = delete_entry_full(delete_context, ! server, dn2, TRUE); ! if (dn2) ldap_memfree(dn2); if (delok) { Index: util.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/util.h,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** util.h 2 Nov 2003 17:41:05 -0000 1.29 --- util.h 3 Nov 2003 21:07:58 -0000 1.30 *************** *** 67,73 **** struct tokenlist { ! int token; ! char keyword[32]; ! gpointer data; }; --- 67,73 ---- struct tokenlist { ! const int token; ! const char keyword[32]; ! const gpointer data; }; Index: xmlparse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/xmlparse.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** xmlparse.c 9 Oct 2003 18:00:26 -0000 1.7 --- xmlparse.c 3 Nov 2003 21:07:58 -0000 1.8 *************** *** 4,10 **** Copyright (C) 2002-2003 Peter Stamfest - This file is - Copyright (c) 2003 by Peter Stamfest <pe...@st...> - This program is released under the Gnu General Public License with the additional exemption that compiling, linking, and/or using --- 4,7 ---- *************** *** 178,182 **** /* maybe, maybe, maybe..... (J Joplin) */ - int i; int ok = 1; /* check context */ --- 175,178 ---- |
From: <sta...@us...> - 2003-11-03 21:07:59
|
Update of /cvsroot/gqclient/gq In directory sc8-pr-cvs1:/tmp/cvs-serv32757 Modified Files: configure.in Log Message: * Improved code quality by trying out many gcc warning option to find potential problems: - hiding of global/local variables in some scope - Added many const keywords where appropriate and useful - Cleaned up some header files and made many functions static - took care of some signed/unsigned situations - some minor cosmetic changes - added some missing initialization values - Use some more warning options permanently with gcc Index: configure.in =================================================================== RCS file: /cvsroot/gqclient/gq/configure.in,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** configure.in 2 Nov 2003 17:23:49 -0000 1.56 --- configure.in 3 Nov 2003 21:07:56 -0000 1.57 *************** *** 492,501 **** dnl Only use -Wall if we have gcc if test "x$GCC" = "xyes"; then ! if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then ! CFLAGS="$CFLAGS -Wall" ! fi ! if test -z "`echo "$CFLAGS" | grep "\-Wmissing-declarations" 2> /dev/null`" ; then ! CFLAGS="$CFLAGS -Wmissing-declarations" fi fi --- 492,504 ---- dnl Only use -Wall if we have gcc if test "x$GCC" = "xyes"; then ! for A in -Wall -W -Wno-unused -Wmissing-declarations -Wcast-align -Wpointer-arith -Wfloat-equal ! do ! # The following should work as well, but might (?) be less portable ! # if ! echo "$CFLAGS" | grep -q -w -- "$A" ; then ! ! if test -z "`echo "$CFLAGS" | grep -w -- "$A" 2> /dev/null`" ; then ! CFLAGS="$CFLAGS $A" fi + done fi |
From: <sta...@us...> - 2003-11-02 17:49:51
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv16539 Modified Files: filter.c Log Message: * Fixed several bugs found during testing - switch to the most recently used search tab when selecting a filter through the main window if the current tab in no search tab. - fixed some crashes due to buggy implementation of the new configuration saving policy when dealing with filters * Streamlined filter operations * Some cosmetic changes * Made some windows stateful Index: filter.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/filter.c,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** filter.c 2 Nov 2003 17:23:49 -0000 1.25 --- filter.c 2 Nov 2003 17:49:46 -0000 1.26 *************** *** 107,111 **** void add_filter(GtkWidget *filternamebox) { ! GtkWidget *focusbox, *menuitem, *button; GtkWidget *server_combo, *searchbase_combo; GList *filterlist; --- 107,111 ---- void add_filter(GtkWidget *filternamebox) { ! GtkWidget *focusbox, *button; GtkWidget *server_combo, *searchbase_combo; GList *filterlist; *************** *** 190,200 **** config->filters = g_list_append(config->filters, filter); /* and add it to the Filters menu */ ! menuitem = gtk_menu_item_new_with_label(filtername); ! gtk_object_set_data(GTK_OBJECT(menuitem), "filter", filter); ! gtk_signal_connect_object(GTK_OBJECT(menuitem), "activate", ! GTK_SIGNAL_FUNC(filter_selected), (GtkObject *) filter); ! gtk_container_add(GTK_CONTAINER(mainwin.filtermenu), menuitem); ! gtk_widget_show(menuitem); if (save_config(filternamebox)) { --- 190,196 ---- config->filters = g_list_append(config->filters, filter); + /* and add it to the Filters menu */ ! mainwin_update_filter_menu(&mainwin); if (save_config(filternamebox)) { *************** *** 215,227 **** window = gtk_dialog_new(); ! gtk_container_border_width(GTK_CONTAINER(window), CONTAINER_BORDER_WIDTH); gtk_window_set_title(GTK_WINDOW(window), _("Filter name")); gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE); - /* What does this mean... (PS: 20030929) */ - gtk_signal_connect_object(GTK_OBJECT(window), "destroy", - (GtkSignalFunc) gtk_widget_destroy, - (gpointer) window); - gtk_signal_connect_object(GTK_OBJECT(window), "key_press_event", GTK_SIGNAL_FUNC(close_on_esc), --- 211,218 ---- window = gtk_dialog_new(); ! /* gtk_container_border_width(GTK_CONTAINER(window), CONTAINER_BORDER_WIDTH); */ gtk_window_set_title(GTK_WINDOW(window), _("Filter name")); gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE); gtk_signal_connect_object(GTK_OBJECT(window), "key_press_event", GTK_SIGNAL_FUNC(close_on_esc), *************** *** 231,234 **** --- 222,227 ---- gtk_widget_show(vbox1); + gtk_container_border_width(GTK_CONTAINER(vbox1), CONTAINER_BORDER_WIDTH); + label = gq_label_new(_("Filter _name")); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); *************** *** 257,260 **** --- 250,255 ---- gtk_widget_show(vbox2); + gtk_container_border_width(GTK_CONTAINER(vbox2), CONTAINER_BORDER_WIDTH); + hbox0 = gtk_hbutton_box_new(); gtk_widget_show(hbox0); *************** *** 267,271 **** #endif gtk_signal_connect_object(GTK_OBJECT(button), "clicked", ! GTK_SIGNAL_FUNC(add_filter), GTK_OBJECT(filternamebox)); gtk_box_pack_start(GTK_BOX(hbox0), button, FALSE, FALSE, 0); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); --- 262,268 ---- #endif gtk_signal_connect_object(GTK_OBJECT(button), "clicked", ! GTK_SIGNAL_FUNC(add_filter), ! GTK_OBJECT(filternamebox)); ! gtk_box_pack_start(GTK_BOX(hbox0), button, FALSE, FALSE, 0); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); *************** *** 274,277 **** --- 271,287 ---- gtk_widget_show(button); + + #if GTK_MAJOR >= 2 + button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); + #else + button = gq_button_new_with_label(_("_Cancel")); + #endif + gtk_signal_connect_object(GTK_OBJECT(button), "clicked", + GTK_SIGNAL_FUNC(gtk_widget_destroy), + GTK_OBJECT(window)); + + gtk_box_pack_start(GTK_BOX(hbox0), button, FALSE, FALSE, 0); + gtk_widget_show(button); + gtk_widget_grab_focus(filternamebox); *************** *** 291,297 **** /* we're in luck if the current tab is a Search tab: just use this one */ ! /* if the current tab isn't a Search tab, just ignore */ ! if(tab->type != SEARCH_MODE) return; /* paste filter into searchterm box */ --- 301,315 ---- /* we're in luck if the current tab is a Search tab: just use this one */ ! /* if the current tab isn't a Search tab, find the last used on */ ! if(tab->type != SEARCH_MODE) { ! tab = get_last_of_mode(SEARCH_MODE); ! go_to_page(tab); ! } ! ! /* no search-tab - cannot use filter */ ! if (tab == NULL) { ! /* FIXME: pop up error using an error_context */ return; + } /* paste filter into searchterm box */ *************** *** 304,308 **** if(filter->servername[0]) { server_combo = SEARCHTAB(tab)->serverlist_combo; ! gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(server_combo)->entry), filter->servername); } --- 322,327 ---- if(filter->servername[0]) { server_combo = SEARCHTAB(tab)->serverlist_combo; ! gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(server_combo)->entry), ! filter->servername); } *************** *** 310,318 **** if(filter->basedn[0]) { searchbase_combo = SEARCHTAB(tab)->searchbase_combo; ! gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(searchbase_combo)->entry), filter->basedn); } gtk_signal_emit_by_name(GTK_OBJECT(focusbox), "activate"); - } --- 329,338 ---- if(filter->basedn[0]) { searchbase_combo = SEARCHTAB(tab)->searchbase_combo; ! gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(searchbase_combo)->entry), ! filter->basedn); } + /* uhhh, what a hack */ gtk_signal_emit_by_name(GTK_OBJECT(focusbox), "activate"); } *************** *** 329,341 **** char *clist_content[5]; ! window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_container_border_width(GTK_CONTAINER(window), CONTAINER_BORDER_WIDTH); gtk_window_set_title(GTK_WINDOW(window), _("Filters")); - gtk_window_set_default_size(GTK_WINDOW(window), 670, 350); - /* what does this mean? (PS 20030929) - FIXME */ - gtk_signal_connect_object(GTK_OBJECT(window), "destroy", - (GtkSignalFunc) gtk_widget_destroy, - (gpointer) window); gtk_signal_connect_object(GTK_OBJECT(window), "key_press_event", GTK_SIGNAL_FUNC(close_on_esc), --- 349,358 ---- char *clist_content[5]; ! window = stateful_gtk_window_new(GTK_WINDOW_TOPLEVEL, ! "filterlist", 670, 350); ! gtk_container_border_width(GTK_CONTAINER(window), CONTAINER_BORDER_WIDTH); gtk_window_set_title(GTK_WINDOW(window), _("Filters")); gtk_signal_connect_object(GTK_OBJECT(window), "key_press_event", GTK_SIGNAL_FUNC(close_on_esc), *************** *** 455,458 **** --- 472,476 ---- gtk_widget_show(window); + statusbar_msg(_("Filter list window opened.")); } *************** *** 568,572 **** ! void edit_filter(GtkCList *filter_clist, int is_new_filter, int row, struct gq_filter *filter) { #if GTK_MAJOR >= 2 --- 586,591 ---- ! void edit_filter(GtkCList *filter_clist, int is_new_filter, ! int row, struct gq_filter *filter) { #if GTK_MAJOR >= 2 *************** *** 577,582 **** char *indented; ! window = gtk_window_new(GTK_WINDOW_TOPLEVEL); ! gtk_window_set_default_size(GTK_WINDOW(window), 400, 350); if(!is_new_filter) gtk_object_set_data(GTK_OBJECT(window), "filter", filter); --- 596,602 ---- char *indented; ! window = stateful_gtk_window_new(GTK_WINDOW_TOPLEVEL, ! "editfilter", 400, 350); ! if(!is_new_filter) gtk_object_set_data(GTK_OBJECT(window), "filter", filter); *************** *** 587,594 **** gtk_window_set_title(GTK_WINDOW(window), _("Edit filter")); - /* What does this mean? (PS 20030929) */ - gtk_signal_connect_object(GTK_OBJECT(window), "destroy", - (GtkSignalFunc) gtk_widget_destroy, - (gpointer) window); gtk_signal_connect_object(GTK_OBJECT(window), "key_press_event", GTK_SIGNAL_FUNC(close_on_esc), --- 607,610 ---- *************** *** 758,761 **** --- 774,780 ---- gtk_box_pack_end(GTK_BOX(hbox2), cancel, FALSE, FALSE, 0); gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked", + (GtkSignalFunc) statusbar_msg, + (gpointer) _("Editing filter cancelled.")); + gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked", (GtkSignalFunc) gtk_widget_destroy, (gpointer) window); *************** *** 766,769 **** --- 785,794 ---- gtk_widget_show(window); + if (filter) { + statusbar_msg(_("Edit filter window opened for filter '%s'."), + filter->name); + } else { + statusbar_msg(_("Edit filter window opened for new filter.")); + } } *************** *** 771,780 **** void save_filter(GtkWidget *window) { ! ! GtkWidget *entry, *text, *filter_clist, *menuitem; ! GList *menuitems, *menuwidgets; ! struct gq_filter *filter, *found_filter; int row, is_a_new_filter; ! char *clist_content[5], *labeltext; const char *filtername, *servername, *basedn; char *filtertext, *flattened = NULL; --- 796,803 ---- void save_filter(GtkWidget *window) { ! GtkWidget *entry, *text, *filter_clist; ! struct gq_filter *filter; int row, is_a_new_filter; ! char *clist_content[5]; const char *filtername, *servername, *basedn; char *filtertext, *flattened = NULL; *************** *** 863,870 **** if (save_config_ext(error_context)) { - save_ok = TRUE; - filter = NULL; /* set to NULL to not free it - in the end */ - /* there's no filter_clist if we got here through the menu */ if(filter_clist) { --- 886,889 ---- *************** *** 882,891 **** /* add to Filters menu */ ! menuitem = gtk_menu_item_new_with_label(filter->name); ! gtk_object_set_data(GTK_OBJECT(menuitem), "filter", filter); ! gtk_signal_connect_object(GTK_OBJECT(menuitem), "activate", ! GTK_SIGNAL_FUNC(filter_selected), (GtkObject *) filter); ! gtk_container_add(GTK_CONTAINER(mainwin.filtermenu), menuitem); ! gtk_widget_show(menuitem); } else { /* save was not OK - undo changes */ --- 901,909 ---- /* add to Filters menu */ ! mainwin_update_filter_menu(&mainwin); ! ! save_ok = TRUE; ! filter = NULL; /* set to NULL to not free it ! in the end */ } else { /* save was not OK - undo changes */ *************** *** 895,902 **** } else { /* ! is_a_new_filter */ if(strcasecmp(filter->name, filtername)) { - struct gq_filter *old_backup = NULL; - /* existing filter was renamed */ if(check_filtername(filtername)) { --- 913,920 ---- } else { + struct gq_filter *old_backup = NULL; + /* ! is_a_new_filter */ if(strcasecmp(filter->name, filtername)) { /* existing filter was renamed */ if(check_filtername(filtername)) { *************** *** 906,964 **** goto done; } ! old_backup = new_filter(); ! copy_filter(old_backup, filter); ! ! if(strcasecmp(filter->servername, servername)) { ! g_free_and_dup(filter->servername, servername); ! gtk_clist_set_text(GTK_CLIST(filter_clist), row, 1, ! servername); ! } ! ! if(strcasecmp(filter->basedn, basedn)) { ! g_free_and_dup(filter->basedn, basedn); ! gtk_clist_set_text(GTK_CLIST(filter_clist), row, 2, ! basedn); ! } ! ! if(strcasecmp(filter->ldapfilter, flattened)) { ! g_free_and_dup(filter->ldapfilter, flattened); ! gtk_clist_set_text(GTK_CLIST(filter_clist), row, 3, ! flattened); ! } ! ! /* change filtername in internal struct, and in the filter clist window */ ! g_free_and_dup(filter->name, filtername); ! ! if (!save_config_ext(error_context)) { ! /* undo changes */ ! copy_filter(filter, old_backup); ! } else { ! save_ok = TRUE; ! filter = NULL; /* set to NULL to not ! free it */ ! ! /* find old filter in the menu, and change it there */ ! menuitems = gtk_container_children(GTK_CONTAINER(mainwin.filtermenu)); ! while(menuitems) { ! menuitem = menuitems->data; ! found_filter = gtk_object_get_data(GTK_OBJECT(menuitem), "filter"); ! if(filter == found_filter) { ! menuwidgets = gtk_container_children(GTK_CONTAINER(menuitem)); ! if(GTK_IS_LABEL(menuwidgets->data)) { ! gtk_label_get(GTK_LABEL(menuwidgets->data), &labeltext); ! /* make really, really sure */ ! if(!strcasecmp(labeltext, filter->name)) ! gtk_label_set_text(GTK_LABEL(menuwidgets->data), filtername); ! } ! break; ! } ! menuitems = menuitems->next; ! } ! ! gtk_clist_set_text(GTK_CLIST(filter_clist), row, 0, filtername); ! } ! free_filter(old_backup); } } --- 924,965 ---- goto done; } + } + old_backup = new_filter(); + copy_filter(old_backup, filter); + + if(strcasecmp(filter->servername, servername)) { + g_free_and_dup(filter->servername, servername); + gtk_clist_set_text(GTK_CLIST(filter_clist), row, 1, + servername); + } + + if(strcasecmp(filter->basedn, basedn)) { + g_free_and_dup(filter->basedn, basedn); + gtk_clist_set_text(GTK_CLIST(filter_clist), row, 2, + basedn); + } + + if(strcasecmp(filter->ldapfilter, flattened)) { + g_free_and_dup(filter->ldapfilter, flattened); + gtk_clist_set_text(GTK_CLIST(filter_clist), row, 3, + flattened); + } + + /* change filtername in internal struct, and in the filter clist window */ + g_free_and_dup(filter->name, filtername); + + if (!save_config_ext(error_context)) { + /* undo changes */ + copy_filter(filter, old_backup); + } else { + /* udpate filter menu in main window */ + mainwin_update_filter_menu(&mainwin); ! gtk_clist_set_text(GTK_CLIST(filter_clist), row, 0, filtername); ! save_ok = TRUE; ! filter = NULL; /* set to NULL to not ! free it */ } + free_filter(old_backup); } *************** *** 974,978 **** gtk_widget_destroy(window); } - } --- 975,978 ---- |
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv13540/src Modified Files: configfile.c configfile.h formfill.c gq-xml.c input.c mainwin.c mainwin.h util.c util.h Log Message: * Due to a suggestion by Scott Ware <sc...@ea...> I implemented the possibility to set user-defined attribute aliases in browse mode. This triggered an internally planned rewrite of LDAP-attribute related preferences like default display types and some other changes. Index: configfile.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.c,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** configfile.c 2 Nov 2003 17:23:49 -0000 1.49 --- configfile.c 2 Nov 2003 17:41:04 -0000 1.50 *************** *** 222,225 **** --- 222,253 ---- } + + struct attr_settings *new_attr_settings() + { + struct attr_settings *a = g_malloc0(sizeof(struct attr_settings)); + a->name = g_strdup(""); + a->defaultDT = -1; + a->user_friendly = NULL; + + return a; + } + + void free_attr_settings(struct attr_settings *a) + { + if (a) { + g_free_if(a->name); + g_free_if(a->user_friendly); + g_free(a); + } + } + + + gboolean is_default_attr_settings(struct attr_settings *as) + { + assert(as); + return as && as->defaultDT == -1 && as->user_friendly == NULL; + } + + void config_add_server(struct gq_config *config, struct ldapserver *newserver) *************** *** 490,505 **** } ! static void default_dt_dumper(char *key, ! int *value, ! struct writeconfig *wc) { ! config_write(wc, "<display-type>\n"); wc->indent++; ! config_write_string(wc, key, "dt-attribute", NULL); ! config_write_int(wc, *value, "dt-default", NULL); wc->indent--; ! config_write(wc, "</display-type>\n"); } --- 518,542 ---- } ! static void attrs_dumper(char *key, ! struct attr_settings *as, ! struct writeconfig *wc) { ! GHashTable *attrs = g_hash_table_new(g_str_hash, g_str_equal); ! g_hash_table_insert(attrs, "name", key); ! ! config_write_start_tag(wc, "ldap-attribute", attrs); wc->indent++; ! if (as->defaultDT != -1) { ! config_write_int(wc, as->defaultDT, "dt-default", NULL); ! } ! if (as->user_friendly != NULL && strlen(as->user_friendly) > 0) { ! config_write_string(wc, as->user_friendly, "user-friendly", NULL); ! } wc->indent--; ! config_write_end_tag(wc, "ldap-attribute"); ! ! g_hash_table_destroy(attrs); } *************** *** 699,709 **** wc->indent++; ! config_write(wc, "<display-types>\n"); ! wc->indent++; ! ! g_hash_table_foreach(cfg->defaultDT, (GHFunc) default_dt_dumper, wc); ! ! wc->indent--; ! config_write(wc, "</display-types>\n"); wc->indent--; --- 736,748 ---- wc->indent++; ! if (g_hash_table_size(cfg->attrs) > 0) { ! config_write_start_tag(wc, "ldap-attributes", NULL); ! wc->indent++; ! ! g_hash_table_foreach(cfg->attrs, (GHFunc) attrs_dumper, wc); ! ! wc->indent--; ! config_write_end_tag(wc, "ldap-attributes"); ! } wc->indent--; *************** *** 787,791 **** cfg->ldifformat = DEFAULT_LDIFFORMAT; cfg->schemaserver = g_strdup(""); /* [0] = '\0'; */ ! cfg->defaultDT = g_hash_table_new(g_str_hash, g_str_equal); cfg->restore_window_sizes = DEFAULT_RESTORE_SIZES; --- 826,830 ---- cfg->ldifformat = DEFAULT_LDIFFORMAT; cfg->schemaserver = g_strdup(""); /* [0] = '\0'; */ ! cfg->attrs = g_hash_table_new(g_str_hash, g_str_equal); cfg->restore_window_sizes = DEFAULT_RESTORE_SIZES; *************** *** 849,862 **** } ! ! static gboolean default_dt_remove(gpointer key, ! gpointer value, ! gpointer user_data) { ! if (key) g_free(key); ! if (value) g_free(value); return 1; } void free_config(struct gq_config *cfg) { struct ldapserver *server; --- 888,925 ---- } ! static gboolean attr_remove(gpointer key, ! gpointer value, ! gpointer user_data) { ! g_free_if(key); ! free_attr_settings((struct attr_settings *)value); return 1; } + struct attr_settings *lookup_attr_settings(const char *attrname) + { + struct attr_settings *as; + char *tmp, *t; + + if (!config->attrs) return NULL; + + tmp = g_strdup(attrname); + for (t = tmp ; *t ; t++) { + *t = tolower(*t); + } + + as = g_hash_table_lookup(config->attrs, tmp); + + g_free(tmp); + + return as; + } + + const char *human_readable_attrname(const char *attrname) + { + struct attr_settings *as = lookup_attr_settings(attrname); + return (as && as->user_friendly && strlen(as->user_friendly) > 0) ? as->user_friendly : attrname; + } + void free_config(struct gq_config *cfg) { struct ldapserver *server; *************** *** 887,895 **** g_list_free(cfg->filters); ! /* free default display type hash */ ! g_hash_table_foreach_remove(cfg->defaultDT, default_dt_remove, NULL); ! g_hash_table_destroy(cfg->defaultDT); ! cfg->defaultDT = NULL; /* free object itself */ --- 950,958 ---- g_list_free(cfg->filters); ! /* free ldap attribute settings hash */ ! g_hash_table_foreach_remove(cfg->attrs, attr_remove, NULL); ! g_hash_table_destroy(cfg->attrs); ! cfg->attrs = NULL; /* free object itself */ Index: configfile.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.h,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** configfile.h 2 Nov 2003 07:20:43 -0000 1.35 --- configfile.h 2 Nov 2003 17:41:04 -0000 1.36 *************** *** 33,37 **** #include "common.h" ! #define CURRENT_CONFIG_VERSION 2 #define CONFIG_INDENT_STRING " " --- 33,37 ---- #include "common.h" ! #define CURRENT_CONFIG_VERSION 3 #define CONFIG_INDENT_STRING " " *************** *** 114,118 **** int never_leak_credentials; ! GHashTable *defaultDT; }; --- 114,118 ---- int never_leak_credentials; ! GHashTable *attrs; /* attribute specific data */ }; *************** *** 130,136 **** --- 130,153 ---- }; + /* A structure holding LDAP attribute specific, configurable settings */ + struct attr_settings { + char *name; + int defaultDT; /* default displaytype: -1: unset */ + char *user_friendly; /* user-friendly name */ + }; + struct writeconfig *new_writeconfig(); void free_writeconfig(struct writeconfig *wc); + + struct attr_settings *new_attr_settings(); + void free_attr_settings(struct attr_settings *); + /* returns TRUE if the attr_settings object contains only default + values. This indicates that the object could be removed + altogether */ + gboolean is_default_attr_settings(struct attr_settings *); + + struct attr_settings *lookup_attr_settings(const char *attrname); + const char *human_readable_attrname(const char *attrname); void config_write_start_tag(struct writeconfig *wc, Index: formfill.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/formfill.c,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** formfill.c 2 Nov 2003 17:23:49 -0000 1.43 --- formfill.c 2 Nov 2003 17:41:05 -0000 1.44 *************** *** 484,488 **** struct ldapserver *server, struct formfill *form) { ! int *val = NULL; /* this is ugly... all of this needs a cleanup!!!! - FIXME */ --- 484,488 ---- struct ldapserver *server, struct formfill *form) { ! struct attr_settings *as; /* this is ugly... all of this needs a cleanup!!!! - FIXME */ *************** *** 496,505 **** form->syntax = get_syntax_handler_of_attr(error_context, server, form->attrname, NULL); - if (config->defaultDT) { - val = g_hash_table_lookup(config->defaultDT, form->attrname); - } ! if (val) { ! form->displaytype = *val; } else { form->displaytype = find_displaytype(error_context, server, form); --- 496,503 ---- form->syntax = get_syntax_handler_of_attr(error_context, server, form->attrname, NULL); ! as = lookup_attr_settings(form->attrname); ! if (as && as->defaultDT != -1) { ! form->displaytype = as->defaultDT; } else { form->displaytype = find_displaytype(error_context, server, form); Index: gq-xml.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/gq-xml.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** gq-xml.c 2 Nov 2003 17:23:49 -0000 1.10 --- gq-xml.c 2 Nov 2003 17:41:05 -0000 1.11 *************** *** 555,568 **** if (d->attr) { if (get_dt_handler(d->dt)) { ! int *p = (int *) g_malloc(sizeof(int)); ! *p = d->dt; ! g_hash_table_insert(c->defaultDT, ! d->attr, ! p); ! d->attr = NULL; /* stored in hash table */ } } - } --- 555,575 ---- if (d->attr) { + char *t; + for (t = d->attr ; *t ; t++) *t = tolower(*t); + if (get_dt_handler(d->dt)) { ! struct attr_settings *as = ! (struct attr_settings *) g_hash_table_lookup(c->attrs, ! d->attr); ! if (!as) { ! as = new_attr_settings(); ! as->name = g_strdup(d->attr); ! g_hash_table_insert(c->attrs, g_strdup(as->name), ! as); ! } ! ! as->defaultDT = d->dt; } } } *************** *** 576,580 **** } - static void ldapserver_dt_defaultE(struct parser_context *ctx, struct tagstack_entry *e) --- 583,586 ---- *************** *** 586,589 **** --- 592,686 ---- } + static void ldap_attributeS(struct parser_context *ctx, + struct tagstack_entry *e) + { + struct gq_config *c = peek_tag(ctx->stack, 3)->data; + int i; + + for (i = 0 ; e->attrs[i] ; i += 2) { + if (strcasecmp(e->attrs[i], "name") == 0) { + char *tmp, *t; + struct attr_settings *as; + + assert(e->attrs[i + 1]); + + tmp = g_strdup(e->attrs[i + 1]); + for (t = tmp ; *t ; t++) *t = tolower(*t); + + as = (struct attr_settings *) g_hash_table_lookup(c->attrs, tmp); + + if (!as) { + as = new_attr_settings(); + as->name = g_strdup(tmp); + g_hash_table_insert(c->attrs, g_strdup(as->name), + as); + } + + g_free(tmp); + + e->data = as; + e->free_data = NULL; + break; + } + } + + if (!e->data) { + /* raise error: missing attribute "name" */ + XMLhandleError(ctx, _("Missing attribute 'name'")); + } + } + + + static void ldap_attributeE(struct parser_context *ctx, + struct tagstack_entry *e) + { + struct gq_config *c = peek_tag(ctx->stack, 3)->data; + struct attr_settings *as; + gpointer okey; + + assert(e->data); + as = (struct attr_settings *) e->data; + + if (is_default_attr_settings(as)) { + /* corresponds to default settings anyway - get rid of this + unneeded object */ + + g_hash_table_lookup_extended(c->attrs, + as->name, + &okey, NULL); + g_hash_table_remove(c->attrs, as->name); + g_free_if(okey); + + free_attr_settings(as); + } + } + + + static void dt_defaultE(struct parser_context *ctx, + struct tagstack_entry *e) + { + struct attr_settings *as = + (struct attr_settings *) peek_tag(ctx->stack, 1)->data; + + long l = longCDATA(ctx, e); + + assert(as); + + if (l >= 0) as->defaultDT = l; + } + + static void user_friendlyE(struct parser_context *ctx, + struct tagstack_entry *e) + { + struct attr_settings *as = + (struct attr_settings *) peek_tag(ctx->stack, 1)->data; + + assert(as); + + if (e->cdata && strlen(e->cdata) > 0) { + as->user_friendly = g_strdup(e->cdata); + } + } + static struct xml_tag config_tags[] = { *************** *** 818,821 **** --- 915,946 ---- }, + /* ldap-attributes */ + { + "ldap-attributes", 0, + NULL, NULL, + { "defaults", NULL }, + }, + + /* ldap-attribute */ + { + "ldap-attribute", 0, + ldap_attributeS, ldap_attributeE, + { "ldap-attributes", "defaults", NULL }, + }, + + { + "dt-default", 0, + NULL, dt_defaultE, + { "ldap-attribute", NULL }, + }, + + { + "user-friendly", 0, + NULL, user_friendlyE, + { "ldap-attribute", NULL }, + }, + + + #ifndef NO_DEPRECATED /* display-types */ *************** *** 843,846 **** --- 968,974 ---- { "display-type", NULL }, }, + + #endif + { Index: input.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/input.c,v retrieving revision 1.80 retrieving revision 1.81 diff -C2 -d -r1.80 -r1.81 *** input.c 2 Nov 2003 17:23:49 -0000 1.80 --- input.c 2 Nov 2003 17:41:05 -0000 1.81 *************** *** 28,31 **** --- 28,32 ---- #include <stdio.h> /* perror() */ #include <stdlib.h> /* free() */ + #include <ctype.h> /* tolower() */ #include <glib.h> *************** *** 584,599 **** gpointer okey; gpointer val; ! if (g_hash_table_lookup_extended(config->defaultDT, ! form->attrname, ! &okey, &val)) { ! g_hash_table_remove(config->defaultDT, form->attrname); ! if (save_config(GTK_WIDGET(menuitem))) { if (okey) g_free(okey); ! if (val) g_free(val); ! } else { /* save failed, undo changes - re-insert into hash */ ! g_hash_table_insert(config->defaultDT, okey, val); } --- 585,620 ---- gpointer okey; gpointer val; + struct attr_settings *as = lookup_attr_settings(form->attrname); + int old_ddt; + int do_free = 0; ! if (!as) return; ! old_ddt = as->defaultDT; ! ! as->defaultDT = -1; ! if (is_default_attr_settings(as)) { ! do_free = 1; ! } ! ! if (do_free) { ! if (g_hash_table_lookup_extended(config->attrs, ! as->name, ! &okey, &val)) { ! g_hash_table_remove(config->attrs, okey); ! } ! } ! ! if (save_config(GTK_WIDGET(menuitem))) { ! if (do_free) { if (okey) g_free(okey); ! if (val) free_attr_settings(val); ! } ! } else { ! as->defaultDT = old_ddt; ! ! if (do_free) { /* save failed, undo changes - re-insert into hash */ ! g_hash_table_insert(config->attrs, okey, val); } *************** *** 604,649 **** struct formfill *form) { - int dt; - gpointer okey = NULL; - gpointer val = NULL; - gpointer nkey = NULL; - int *p = NULL; ! /* first remove, in case one has been set before */ ! if (g_hash_table_lookup_extended(config->defaultDT, ! form->attrname, ! &okey, &val)) { ! g_hash_table_remove(config->defaultDT, form->attrname); ! } else { ! okey = val = NULL; } ! dt = get_dt_from_handler(form->dt_handler); ! if (dt != -1) { ! p = (int *) g_malloc(sizeof(int)); ! *p = dt; ! g_hash_table_insert(config->defaultDT, ! nkey = g_strdup(form->attrname), ! p); } if (save_config(GTK_WIDGET(menuitem))) { ! g_free_if(okey); ! g_free_if(val); } else { ! /* save failed, undo changes */ ! g_hash_table_remove(config->defaultDT, form->attrname); ! g_free_if(nkey); ! g_free_if(p); ! g_hash_table_insert(config->defaultDT, ! okey, val); } } static gboolean widget_button_press(GtkWidget *widget, GdkEventButton *event, ! struct formfill *form) { if (event->type == GDK_BUTTON_PRESS && event->button == 3) { --- 625,785 ---- struct formfill *form) { gpointer nkey = NULL; ! struct attr_settings *as = lookup_attr_settings(form->attrname); ! int old_ddt = -1; ! int is_new = 0; ! ! if (!as) { ! char *t; ! as = new_attr_settings(); ! as->name = g_strdup(form->attrname); ! for (t = as->name ; *t ; t++) *t = tolower(*t); ! is_new = 1; ! ! g_hash_table_insert(config->attrs, ! nkey = g_strdup(as->name), ! as); } ! old_ddt = as->defaultDT; ! as->defaultDT = get_dt_from_handler(form->dt_handler); ! ! if (!save_config(GTK_WIDGET(menuitem))) { ! /* save failed, undo changes */ ! if (is_new) { ! g_hash_table_remove(config->attrs, nkey); ! free_attr_settings(as); ! g_free(nkey); ! } else { ! as->defaultDT = old_ddt; ! } ! } ! } ! ! /* quick and dirty callback data */ ! struct iform_form { ! struct inputform *iform; ! struct formfill *form; ! }; ! ! static struct iform_form *new_iform_form() { ! struct iform_form *i = g_malloc0(sizeof(struct iform_form)); ! return i; ! } ! ! static void free_iform_form(struct iform_form *iff) { ! g_free_if(iff); ! } ! ! static void remove_user_friendly_for_attr(GtkMenuItem *menuitem, ! struct iform_form *iff) ! { ! gpointer okey; ! gpointer val; ! struct attr_settings *as = lookup_attr_settings(iff->form->attrname); ! char *old_uf = NULL; ! int do_free = 0; ! ! if (!as) return; ! ! old_uf = as->user_friendly; ! as->user_friendly = NULL; ! ! if (is_default_attr_settings(as)) { ! do_free = 1; ! } ! ! if (do_free) { ! if (g_hash_table_lookup_extended(config->attrs, ! as->name, ! &okey, &val)) { ! g_hash_table_remove(config->attrs, okey); ! } } if (save_config(GTK_WIDGET(menuitem))) { ! if (do_free) { ! g_free_if(okey); ! g_free_if(old_uf); ! if (val) free_attr_settings(val); ! } ! refresh_inputform(iff->iform); } else { ! as->user_friendly = old_uf; ! ! if (do_free) { ! /* save failed, undo changes - re-insert into hash */ ! g_hash_table_insert(config->attrs, ! okey, val); ! } ! } ! } ! ! static void make_user_friendly_for_attr(GtkMenuItem *menuitem, ! struct iform_form *iff) ! { ! gchar *ret = NULL; ! struct attr_settings *as = lookup_attr_settings(iff->form->attrname); ! GString *msg = g_string_sized_new(150); ! ! if (as) ret = as->user_friendly; ! ! g_string_printf(msg, _("User friendly name for LDAP attribute '%s'"), ! iff->form->attrname); ! ! ! if (query_popup(msg->str, &ret, FALSE, GTK_WIDGET(menuitem))) { ! gpointer nkey = NULL; ! char *old_uf = NULL; ! int is_new = 0; ! ! if (!as) { ! char *t; ! ! is_new = 1; ! ! as = new_attr_settings(); ! as->name = g_strdup(iff->form->attrname); ! for (t = as->name ; *t ; t++) *t = tolower(*t); ! ! g_hash_table_insert(config->attrs, ! nkey = g_strdup(as->name), ! as); ! } ! ! old_uf = as->user_friendly; ! if ((ret && strlen(ret) == 0) || ! (strcmp(ret, iff->form->attrname) == 0)) { ! g_free(ret); ! ret = NULL; ! } ! ! as->user_friendly = ret; ! ! if (!save_config(GTK_WIDGET(menuitem))) { ! /* save failed, undo changes */ ! if (is_new) { ! g_hash_table_remove(config->attrs, nkey); ! free_attr_settings(as); ! g_free(nkey); ! } else { ! as->user_friendly = old_uf; ! } ! } else { ! g_free_if(old_uf); ! ret = NULL; ! refresh_inputform(iff->iform); ! } } + g_free_if(ret); + g_string_free(msg, TRUE); } + static gboolean widget_button_press(GtkWidget *widget, GdkEventButton *event, ! struct iform_form *iff) { if (event->type == GDK_BUTTON_PRESS && event->button == 3) { *************** *** 652,655 **** --- 788,792 ---- GList *dt_list; char buf[40]; + struct attr_settings *as; root_menu = gtk_menu_item_new_with_label("Root"); *************** *** 658,662 **** gtk_menu_item_set_submenu(GTK_MENU_ITEM(root_menu), menu); ! snprintf(buf, sizeof(buf), _("Attribute %s"), form->attrname); label = gtk_menu_item_new_with_label(buf); --- 795,799 ---- gtk_menu_item_set_submenu(GTK_MENU_ITEM(root_menu), menu); ! snprintf(buf, sizeof(buf), _("Attribute %s"), iff->form->attrname); label = gtk_menu_item_new_with_label(buf); *************** *** 682,686 **** gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(schema_show_attr), ! (gpointer) form); gtk_widget_show(menu_item); --- 819,823 ---- gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(schema_show_attr), ! (gpointer) iff->form); gtk_widget_show(menu_item); *************** *** 712,716 **** menu_item = gtk_menu_item_new_with_label(h->name); ! gtk_object_set_data(GTK_OBJECT(menu_item), "formfill", form); /* gtk_object_set_data(GTK_OBJECT(menu_item), "entry", entry); */ gtk_menu_append(GTK_MENU(submenu), menu_item); --- 849,854 ---- menu_item = gtk_menu_item_new_with_label(h->name); ! gtk_object_set_data(GTK_OBJECT(menu_item), "formfill", ! iff->form); /* gtk_object_set_data(GTK_OBJECT(menu_item), "entry", entry); */ gtk_menu_append(GTK_MENU(submenu), menu_item); *************** *** 724,727 **** --- 862,867 ---- + as = lookup_attr_settings(iff->form->attrname); + menu_item = gtk_menu_item_new_with_label(_("Make current display type the default for this attribute")); /* gtk_object_set_data(GTK_OBJECT(menu_item), "formfill", form); */ *************** *** 729,733 **** gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(make_dt_default_for_attr), ! (gpointer) form); gtk_widget_show(menu_item); --- 869,873 ---- gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(make_dt_default_for_attr), ! (gpointer) iff->form); gtk_widget_show(menu_item); *************** *** 737,746 **** gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(remove_dt_default_for_attr), ! (gpointer) form); gtk_widget_show(menu_item); gtk_widget_set_sensitive(menu_item, ! g_hash_table_lookup(config->defaultDT, ! form->attrname) != NULL); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, --- 877,909 ---- gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(remove_dt_default_for_attr), ! (gpointer) iff->form); gtk_widget_show(menu_item); gtk_widget_set_sensitive(menu_item, ! as != NULL && as->defaultDT != -1); ! ! #if GTK_MAJOR >= 2 ! menu_item = gtk_separator_menu_item_new(); ! gtk_menu_append(GTK_MENU(menu), menu_item); ! gtk_widget_show(menu_item); ! #endif ! ! menu_item = gtk_menu_item_new_with_label(_("Set user-friendly name")); ! gtk_menu_append(GTK_MENU(menu), menu_item); ! ! gtk_signal_connect(GTK_OBJECT(menu_item), "activate", ! GTK_SIGNAL_FUNC(make_user_friendly_for_attr), ! (gpointer) iff); ! gtk_widget_show(menu_item); ! ! menu_item = gtk_menu_item_new_with_label(_("Clear user-friendly name")); ! gtk_menu_append(GTK_MENU(menu), menu_item); ! gtk_signal_connect(GTK_OBJECT(menu_item), "activate", ! GTK_SIGNAL_FUNC(remove_user_friendly_for_attr), ! (gpointer) iff); ! gtk_widget_show(menu_item); ! ! gtk_widget_set_sensitive(menu_item, ! as != NULL && as->user_friendly); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, *************** *** 867,871 **** /* attribute name */ ! ff->label = gtk_label_new(ff->attrname); gtk_misc_set_alignment(GTK_MISC(ff->label), LABEL_JUSTIFICATION, .5); --- 1030,1034 ---- /* attribute name */ ! ff->label = gtk_label_new(human_readable_attrname(ff->attrname)); gtk_misc_set_alignment(GTK_MISC(ff->label), LABEL_JUSTIFICATION, .5); *************** *** 876,885 **** if (ff->dt_handler && ff->dt_handler->selectable) { gtk_signal_connect(GTK_OBJECT(ff->event_box), "button_press_event", GTK_SIGNAL_FUNC(widget_button_press), ! ff); ! gtk_object_set_data(GTK_OBJECT(ff->event_box), ! "row", GINT_TO_POINTER(row)); } --- 1039,1053 ---- if (ff->dt_handler && ff->dt_handler->selectable) { + struct iform_form *iff = new_iform_form(); + iff->iform = iform; + iff->form = ff; + gtk_signal_connect(GTK_OBJECT(ff->event_box), "button_press_event", GTK_SIGNAL_FUNC(widget_button_press), ! iff); ! gtk_object_set_data_full(GTK_OBJECT(ff->event_box), ! "cb-data", iff, ! (GtkDestroyNotify)free_iform_form); } *************** *** 2433,2438 **** done: - error_flush(error_context); - return comm.rc; } --- 2601,2604 ---- *************** *** 2440,2444 **** /* Checks if the objectClass attribute contains "extensibleObject" */ ! int is_extensible_object(struct inputform *iform) { GList *f, *wl; --- 2606,2610 ---- /* Checks if the objectClass attribute contains "extensibleObject" */ ! static int is_extensible_object(struct inputform *iform) { GList *f, *wl; Index: mainwin.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/mainwin.c,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** mainwin.c 2 Nov 2003 17:23:49 -0000 1.53 --- mainwin.c 2 Nov 2003 17:41:05 -0000 1.54 *************** *** 492,495 **** --- 492,534 ---- } + + void mainwin_update_filter_menu(struct mainwin_data *win) + { + GList *menuitems = gtk_container_children(GTK_CONTAINER(win->filtermenu)); + GList *I; + + /* Filters | list of filters */ + + if (menuitems) { + for ( I = g_list_first(menuitems) ; I ; I = g_list_next(I) ) { + GtkWidget *item = GTK_WIDGET(I->data); + gpointer data = gtk_object_get_data(GTK_OBJECT(item), "filter"); + + if (data) { + gtk_widget_destroy(item); + } + } + + g_list_free(menuitems); + } + + for ( I = g_list_first(config->filters) ; I ; I = g_list_next(I) ) { + struct gq_filter *filter; + GtkWidget *menuitem; + + filter = (struct gq_filter *) I->data; + menuitem = gtk_menu_item_new_with_label(filter->name); + + gtk_object_set_data(GTK_OBJECT(menuitem), "filter", filter); + gtk_signal_connect_object(GTK_OBJECT(menuitem), "activate", + GTK_SIGNAL_FUNC(filter_selected), + (GtkObject *) filter); + + gtk_container_add(GTK_CONTAINER(win->filtermenu), menuitem); + gtk_widget_show(menuitem); + } + } + + void create_mainwin(struct mainwin_data *win) { *************** *** 501,506 **** GtkWidget *handlebox; GtkAccelGroup *accel_group; - GList *filterlist; - struct gq_filter *filter; assert(win != NULL); --- 540,543 ---- *************** *** 647,651 **** menuFilters = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(Filters), menuFilters); ! mainwin.filtermenu = menuFilters; /* Filters | New */ --- 684,688 ---- menuFilters = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(Filters), menuFilters); ! win->filtermenu = menuFilters; /* Filters | New */ *************** *** 685,702 **** gtk_container_add(GTK_CONTAINER(menuFilters), menuitem); ! /* Filters | list of filters */ ! filterlist = config->filters; ! while(filterlist) { ! filter = (struct gq_filter *) filterlist->data; ! menuitem = gtk_menu_item_new_with_label(filter->name); ! gtk_object_set_data(GTK_OBJECT(menuitem), "filter", filter); ! gtk_signal_connect_object(GTK_OBJECT(menuitem), "activate", ! GTK_SIGNAL_FUNC(filter_selected), (GtkObject *) filter); ! gtk_container_add(GTK_CONTAINER(menuFilters), menuitem); ! gtk_widget_show(menuitem); ! ! filterlist = filterlist->next; ! } ! /* Help menu */ --- 722,726 ---- gtk_container_add(GTK_CONTAINER(menuFilters), menuitem); ! mainwin_update_filter_menu(win); /* Help menu */ Index: mainwin.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/mainwin.h,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** mainwin.h 2 Nov 2003 07:20:44 -0000 1.23 --- mainwin.h 2 Nov 2003 17:41:05 -0000 1.24 *************** *** 90,93 **** --- 90,95 ---- void cleanup(struct mainwin_data *win); void create_mainwin(struct mainwin_data *); + void mainwin_update_filter_menu(struct mainwin_data *win); + struct tab *new_modetab(struct mainwin_data *, int mode); void cleanup_all_tabs(struct mainwin_data *win); Index: util.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/util.c,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 *** util.c 2 Nov 2003 07:20:44 -0000 1.85 --- util.c 2 Nov 2003 17:41:05 -0000 1.86 *************** *** 497,501 **** /* server->bindpw[0] == 0 && */ server->enteredpw[0] == 0) { ! char *ret; message = g_string_sized_new(128); g_string_sprintf(message, --- 497,501 ---- /* server->bindpw[0] == 0 && */ server->enteredpw[0] == 0) { ! char *ret = NULL; message = g_string_sized_new(128); g_string_sprintf(message, *************** *** 506,510 **** } ! if (query_popup(message->str, &ret, TRUE /* is_password */)) { g_string_free(message, TRUE); if (ret) { --- 506,511 ---- } ! if (query_popup(message->str, &ret, TRUE /* is_password */, ! NULL)) { /* FIXME: somehow get modal_for widget */ g_string_free(message, TRUE); if (ret) { *************** *** 1533,1539 **** /* pops up a dialog to retrieve user data via a GtkEntry. This ! functions waits for the data and puts it into outbuf. */ ! int query_popup(const char *title, gchar **outbuf, gboolean is_password) { GtkWidget *window, *vbox1, *vbox2, *label, *inputbox, *button, *hbox0; --- 1534,1547 ---- /* pops up a dialog to retrieve user data via a GtkEntry. This ! functions waits for the data and puts it into outbuf. ! inout_buf afterward points to allocate memory that has to be free'd ! using g_free. As an input parameter it points to the current value ! of the information to be entered (if not NULL). The passed-in ! information will not be changed. ! */ ! ! int query_popup(const char *title, gchar **inout_buf, gboolean is_password, ! GtkWidget *modal_for) { GtkWidget *window, *vbox1, *vbox2, *label, *inputbox, *button, *hbox0; *************** *** 1553,1556 **** --- 1561,1568 ---- } + if (modal_for) { + modal_for = gtk_widget_get_toplevel(modal_for); + } + window = gtk_dialog_new(); gtk_container_border_width(GTK_CONTAINER(window), CONTAINER_BORDER_WIDTH); *************** *** 1564,1567 **** --- 1576,1585 ---- (gpointer) window); + if (modal_for) { + gtk_window_set_modal(GTK_WINDOW(window), TRUE); + gtk_window_set_transient_for(GTK_WINDOW(window), + GTK_WINDOW(modal_for)); + } + vbox1 = GTK_DIALOG(window)->vbox; gtk_widget_show(vbox1); *************** *** 1579,1582 **** --- 1597,1607 ---- gtk_entry_set_visibility(GTK_ENTRY(inputbox), FALSE); } + + if (inout_buf && *inout_buf) { + int pos = 0; + gtk_editable_insert_text(GTK_EDITABLE(inputbox), + *inout_buf, strlen(*inout_buf), &pos); + } + gtk_widget_show(inputbox); gtk_signal_connect(GTK_OBJECT(inputbox), "activate", *************** *** 1631,1637 **** if (! comm->destroyed && comm->rc) { ! *outbuf = gtk_editable_get_chars(GTK_EDITABLE(inputbox), 0, -1); } else { ! *outbuf = NULL; } --- 1656,1662 ---- if (! comm->destroyed && comm->rc) { ! *inout_buf = gtk_editable_get_chars(GTK_EDITABLE(inputbox), 0, -1); } else { ! *inout_buf = NULL; } Index: util.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/util.h,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** util.h 2 Nov 2003 07:20:44 -0000 1.28 --- util.h 2 Nov 2003 17:41:05 -0000 1.29 *************** *** 113,117 **** const char *find_s_by_at_oid(int error_context, struct ldapserver *server, const char *oid); ! int query_popup(const char *title, gchar **outbuf, gboolean is_password); int question_popup(const char *title, const char *question); --- 113,118 ---- const char *find_s_by_at_oid(int error_context, struct ldapserver *server, const char *oid); ! int query_popup(const char *title, gchar **outbuf, gboolean is_password, ! GtkWidget *modal_for); int question_popup(const char *title, const char *question); |
From: <sta...@us...> - 2003-11-02 17:23:53
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv10199/src Modified Files: browse.c configfile.c dt_generic_binary.c filter.c formfill.c gq-xml.c input.c input.h mainwin.c prefs.c ref-browse.c search.c server-browse.c state.c syntax.c Log Message: * Added -Wmissing-declarations when using gcc to catch bugs due to forgotten header inclusion when defining a previously declared function when prototypes do not match * Fixed all warnings generated by -Wmissing-declarations Index: browse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/browse.c,v retrieving revision 1.92 retrieving revision 1.93 diff -C2 -d -r1.92 -r1.93 *** browse.c 2 Nov 2003 07:20:43 -0000 1.92 --- browse.c 2 Nov 2003 17:23:49 -0000 1.93 *************** *** 258,262 **** * add all configured servers to the root node */ ! void add_all_servers(GtkCTree *ctree) { struct ldapserver *server; --- 258,262 ---- * add all configured servers to the root node */ ! static void add_all_servers(GtkCTree *ctree) { struct ldapserver *server; *************** *** 297,301 **** ! void tree_row_selected(GtkCTree *ctree, GtkCTreeNode *node, int column, struct tab *tab) { browse_entry *entry; --- 297,302 ---- ! void tree_row_selected(GtkCTree *ctree, GtkCTreeNode *node, ! int column, struct tab *tab) { browse_entry *entry; *************** *** 378,382 **** error_flush(ctx); } - } --- 379,382 ---- *************** *** 398,403 **** ! ! void tree_row_expand_all(GtkMenuItem *menuitem, struct tab *tab) { GtkCTree *ctree; --- 398,403 ---- ! #if DEAD_CODE ! static void tree_row_expand_all(GtkMenuItem *menuitem, struct tab *tab) { GtkCTree *ctree; *************** *** 419,422 **** --- 419,423 ---- } + #endif static void browse_save_snapshot(int error_context, *************** *** 678,688 **** } ! GtkCTreeNode *node_from_entry(GtkCTree *ctreeroot, ! GtkCTreeNode *top, ! browse_entry *e) { return gtk_ctree_find_by_row_data(GTK_CTREE(ctreeroot), top, e); } --- 679,691 ---- } ! #if DEAD_CODE ! static GtkCTreeNode *node_from_entry(GtkCTree *ctreeroot, ! GtkCTreeNode *top, ! browse_entry *e) { return gtk_ctree_find_by_row_data(GTK_CTREE(ctreeroot), top, e); } + #endif *************** *** 748,752 **** ! GtkCTreeNode *server_node_from_server(GtkCTree *ctree, struct ldapserver *server) { --- 751,756 ---- ! static GtkCTreeNode *server_node_from_server(GtkCTree *ctree, ! struct ldapserver *server) { *************** *** 754,758 **** } ! static void remove_single_server_internal(GtkCTree *ctree, struct ldapserver *server) { --- 758,762 ---- } ! #if DEAD_CODE static void remove_single_server_internal(GtkCTree *ctree, struct ldapserver *server) { *************** *** 766,775 **** ! void remove_single_server(struct tab *tab, struct ldapserver *server) { - remove_single_server_internal(BROWSETAB(tab)->ctreeroot, server); } ! static void destroy_browse_mode(GtkWidget *w, struct tab *tab) --- 770,778 ---- ! static void remove_single_server(struct tab *tab, struct ldapserver *server) { remove_single_server_internal(BROWSETAB(tab)->ctreeroot, server); } ! #endif static void destroy_browse_mode(GtkWidget *w, struct tab *tab) *************** *** 1054,1059 **** } ! ! void _gtk_ctree_toggle_is_leaf(GtkCTree * ctree, GtkCTreeNode * node) { gchar *text, *temp; --- 1057,1062 ---- } ! #if DEAD_CODE ! static void _gtk_ctree_toggle_is_leaf(GtkCTree * ctree, GtkCTreeNode * node) { gchar *text, *temp; *************** *** 1079,1083 **** g_free(temp); } ! --- 1082,1086 ---- g_free(temp); } ! #endif Index: configfile.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/configfile.c,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** configfile.c 2 Nov 2003 07:20:43 -0000 1.48 --- configfile.c 2 Nov 2003 17:23:49 -0000 1.49 *************** *** 504,510 **** } ! gboolean save_config_internal(int write_context, ! struct gq_config *cfg, ! const char *rcpath) { GList *templatelist, *oclist, *filterlist; --- 504,511 ---- } ! ! static gboolean save_config_internal(int write_context, ! struct gq_config *cfg, ! const char *rcpath) { GList *templatelist, *oclist, *filterlist; Index: dt_generic_binary.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/dt_generic_binary.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** dt_generic_binary.c 2 Nov 2003 07:20:43 -0000 1.12 --- dt_generic_binary.c 2 Nov 2003 17:23:49 -0000 1.13 *************** *** 111,116 **** ! void dt_generic_binary_create_menu(GtkWidget *hbox, GtkWidget *vbox, ! GByteArray *data) { GtkWidget *menu, *menu_item, *submenu; --- 111,116 ---- ! static void dt_generic_binary_create_menu(GtkWidget *hbox, GtkWidget *vbox, ! GByteArray *data) { GtkWidget *menu, *menu_item, *submenu; Index: filter.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/filter.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** filter.c 2 Nov 2003 07:20:44 -0000 1.24 --- filter.c 2 Nov 2003 17:23:49 -0000 1.25 *************** *** 50,53 **** --- 50,54 ---- #include "i18n.h" #include "input.h" + #include "state.h" static void copy_existing_filter(GtkCList *filter_clist); Index: formfill.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/formfill.c,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** formfill.c 2 Nov 2003 07:20:44 -0000 1.42 --- formfill.c 2 Nov 2003 17:23:49 -0000 1.43 *************** *** 512,520 **** ! /* * arrow next to inputfield hit: add empty field below this one */ ! void add_field_to_formfill(GList *formlist, char *attr) { struct formfill *form; --- 512,520 ---- ! #if DEAD_CODE /* * arrow next to inputfield hit: add empty field below this one */ ! static void add_field_to_formfill(GList *formlist, char *attr) { struct formfill *form; *************** *** 532,536 **** } ! --- 532,536 ---- } ! #endif Index: gq-xml.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/gq-xml.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** gq-xml.c 23 Oct 2003 05:26:37 -0000 1.9 --- gq-xml.c 2 Nov 2003 17:23:49 -0000 1.10 *************** *** 77,82 **** } ! long longCDATA(struct parser_context *ctx, ! struct tagstack_entry *e) { char *ep; --- 77,82 ---- } ! static long longCDATA(struct parser_context *ctx, ! struct tagstack_entry *e) { char *ep; Index: input.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/input.c,v retrieving revision 1.79 retrieving revision 1.80 diff -C2 -d -r1.79 -r1.80 *** input.c 2 Nov 2003 07:20:44 -0000 1.79 --- input.c 2 Nov 2003 17:23:49 -0000 1.80 *************** *** 561,565 **** ! void schema_show_attr(GtkMenuItem *menuitem, struct formfill *form) { struct server_schema *ss = NULL; --- 561,565 ---- ! static void schema_show_attr(GtkMenuItem *menuitem, struct formfill *form) { struct server_schema *ss = NULL; *************** *** 579,583 **** } ! void remove_dt_default_for_attr(GtkMenuItem *menuitem, struct formfill *form) { gpointer okey; --- 579,584 ---- } ! static void remove_dt_default_for_attr(GtkMenuItem *menuitem, ! struct formfill *form) { gpointer okey; *************** *** 600,604 **** } ! void make_dt_default_for_attr(GtkMenuItem *menuitem, struct formfill *form) { int dt; --- 601,606 ---- } ! static void make_dt_default_for_attr(GtkMenuItem *menuitem, ! struct formfill *form) { int dt; *************** *** 1221,1225 **** ! char *get_new_dn(struct inputform *iform) { char *content, *content_enc; --- 1223,1227 ---- ! static char *get_new_dn(struct inputform *iform) { char *content, *content_enc; Index: input.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/input.h,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** input.h 2 Nov 2003 07:20:44 -0000 1.18 --- input.h 2 Nov 2003 17:23:49 -0000 1.19 *************** *** 97,99 **** --- 97,101 ---- void set_hide_empty_attributes(int hidden, struct inputform *form); + GdkWindow *get_any_gdk_window(GtkWidget *w); + #endif Index: mainwin.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/mainwin.c,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** mainwin.c 2 Nov 2003 07:20:44 -0000 1.52 --- mainwin.c 2 Nov 2003 17:23:49 -0000 1.53 *************** *** 116,120 **** } ! gboolean mainwin_restore_snapshot(struct mainwin_data *win) { int i, type; --- 116,120 ---- } ! static gboolean mainwin_restore_snapshot(struct mainwin_data *win) { int i, type; *************** *** 159,163 **** } ! void mainwin_save_snapshot(struct mainwin_data *win) { struct tab *tab = NULL; --- 159,163 ---- } ! static void mainwin_save_snapshot(struct mainwin_data *win) { struct tab *tab = NULL; Index: prefs.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/prefs.c,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** prefs.c 2 Nov 2003 07:20:44 -0000 1.53 --- prefs.c 2 Nov 2003 17:23:49 -0000 1.54 *************** *** 369,373 **** } ! void host_changed_callback(GtkEditable *host, GtkWidget *port) { gchar *s = gtk_editable_get_chars(host, 0, -1); --- 369,373 ---- } ! static void host_changed_callback(GtkEditable *host, GtkWidget *port) { gchar *s = gtk_editable_get_chars(host, 0, -1); *************** *** 1081,1086 **** ! void serverstab_deletebutton_callback(GtkWidget *widget, ! struct prefs_windata *pw) { GtkWidget *clist = pw->serverstab_server_clist; --- 1081,1086 ---- ! static void serverstab_deletebutton_callback(GtkWidget *widget, ! struct prefs_windata *pw) { GtkWidget *clist = pw->serverstab_server_clist; *************** *** 1119,1123 **** } ! void serverstab_newbutton_callback(GtkWidget *widget, struct prefs_windata *pw) { create_edit_server_window(NULL, pw->prefswindow); --- 1119,1124 ---- } ! static void serverstab_newbutton_callback(GtkWidget *widget, ! struct prefs_windata *pw) { create_edit_server_window(NULL, pw->prefswindow); *************** *** 1197,1201 **** ! void prefs_okbutton_callback(GtkWidget *button, struct prefs_windata *pw) { int type; --- 1198,1203 ---- ! static void prefs_okbutton_callback(GtkWidget *button, ! struct prefs_windata *pw) { int type; Index: ref-browse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/ref-browse.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ref-browse.c 2 Nov 2003 07:20:44 -0000 1.8 --- ref-browse.c 2 Nov 2003 17:23:49 -0000 1.9 *************** *** 298,302 **** } ! char* ref_browse_entry_get_name(browse_entry *entry, gboolean long_form) { char *g; --- 298,302 ---- } ! static char* ref_browse_entry_get_name(browse_entry *entry, gboolean long_form) { char *g; Index: search.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/search.c,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** search.c 2 Nov 2003 07:20:44 -0000 1.60 --- search.c 2 Nov 2003 17:23:49 -0000 1.61 *************** *** 1089,1093 **** ! void add_to_search_history(struct tab *tab) { gchar *searchterm; --- 1089,1093 ---- ! static void add_to_search_history(struct tab *tab) { gchar *searchterm; Index: server-browse.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/server-browse.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** server-browse.c 2 Nov 2003 07:20:44 -0000 1.7 --- server-browse.c 2 Nov 2003 17:23:49 -0000 1.8 *************** *** 53,59 **** * Really add a single suffix to the tree */ ! void add_suffix(server_browse_entry *entry, ! GtkCTree *ctreeroot, GtkCTreeNode *node, ! char *suffix) { GtkCTreeNode *new_item; --- 53,59 ---- * Really add a single suffix to the tree */ ! static void add_suffix(server_browse_entry *entry, ! GtkCTree *ctreeroot, GtkCTreeNode *node, ! char *suffix) { GtkCTreeNode *new_item; *************** *** 509,514 **** ! char* server_browse_entry_get_name(browse_entry *entry, ! gboolean long_form) { assert(IS_SERVER_ENTRY(entry)); --- 509,514 ---- ! static char* server_browse_entry_get_name(browse_entry *entry, ! gboolean long_form) { assert(IS_SERVER_ENTRY(entry)); Index: state.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/state.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** state.c 2 Nov 2003 07:20:44 -0000 1.10 --- state.c 2 Nov 2003 17:23:49 -0000 1.11 *************** *** 46,49 **** --- 46,50 ---- #include "xmlutil.h" #include "i18n.h" + #include "state.h" enum state_value_type { *************** *** 83,87 **** static GHashTable *entities = NULL; ! struct state_value *new_state_value(enum state_value_type t) { struct state_value *v = g_malloc0(sizeof(struct state_value)); v->type = t; --- 84,89 ---- static GHashTable *entities = NULL; ! static struct state_value *new_state_value(enum state_value_type t) ! { struct state_value *v = g_malloc0(sizeof(struct state_value)); v->type = t; *************** *** 102,106 **** } ! void free_state_value(struct state_value *v) { assert(v); --- 104,108 ---- } ! static void free_state_value(struct state_value *v) { assert(v); *************** *** 127,131 **** ! struct state_entity *new_state_entity() { struct state_entity *e = g_malloc0(sizeof(struct state_entity)); --- 129,133 ---- ! static struct state_entity *new_state_entity() { struct state_entity *e = g_malloc0(sizeof(struct state_entity)); *************** *** 487,491 **** /* filename_config returns the name of the config file. The returned pointer must g_free'd. */ ! gchar *filename_state(int context) { gchar *rcpath = NULL; --- 489,493 ---- /* filename_config returns the name of the config file. The returned pointer must g_free'd. */ ! static gchar *filename_state(int context) { gchar *rcpath = NULL; *************** *** 823,828 **** }; ! GHashTable *process_statefile_XML(int error_context, ! const char *filename) { xmlSAXHandler *handler = g_malloc0(sizeof(xmlSAXHandler)); --- 825,830 ---- }; ! static GHashTable *process_statefile_XML(int error_context, ! const char *filename) { xmlSAXHandler *handler = g_malloc0(sizeof(xmlSAXHandler)); Index: syntax.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/syntax.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** syntax.c 2 Nov 2003 07:20:44 -0000 1.19 --- syntax.c 2 Nov 2003 17:23:49 -0000 1.20 *************** *** 455,459 **** static GList *selectable_dt_list = NULL; ! void add_syntax(int type, display_type_handler *dt_handler) { int *p = (int *) g_malloc(sizeof(int)); /* leak memory */ --- 455,459 ---- static GList *selectable_dt_list = NULL; ! static void add_syntax(int type, display_type_handler *dt_handler) { int *p = (int *) g_malloc(sizeof(int)); /* leak memory */ |
From: <sta...@us...> - 2003-11-02 17:23:51
|
Update of /cvsroot/gqclient/gq In directory sc8-pr-cvs1:/tmp/cvs-serv10199 Modified Files: configure.in Log Message: * Added -Wmissing-declarations when using gcc to catch bugs due to forgotten header inclusion when defining a previously declared function when prototypes do not match * Fixed all warnings generated by -Wmissing-declarations Index: configure.in =================================================================== RCS file: /cvsroot/gqclient/gq/configure.in,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** configure.in 24 Oct 2003 19:19:52 -0000 1.55 --- configure.in 2 Nov 2003 17:23:49 -0000 1.56 *************** *** 495,498 **** --- 495,501 ---- CFLAGS="$CFLAGS -Wall" fi + if test -z "`echo "$CFLAGS" | grep "\-Wmissing-declarations" 2> /dev/null`" ; then + CFLAGS="$CFLAGS -Wmissing-declarations" + fi fi |