hi, the __attribute__ ((__deprecated__)) feature of gcc can help us to 
remember what things will become useless.

I attach a patch with an example. I've used config.h because is included in 
most of the files, at the top of them. I didn't test if all compiles fine 
(only the daemon), but you get the idea. With this now you get:

if g++ -DHAVE_CONFIG_H -I. -I. -I.. -Wall -I../include 
-DINSTALL_PREFIX=\"/home/juam/src/licq/tree/\"   -fPIC -DPIC -D_REENTRANT  -g 
-O2 -fno-exceptions -fno-check-new -MT user.o -MD -MP -MF ".deps/user.Tpo" \
  -c -o user.o `test -f 'user.cpp' || echo './'`user.cpp; \
then mv -f ".deps/user.Tpo" ".deps/user.Po"; \
else rm -f ".deps/user.Tpo"; exit 1; \
fi
user.cpp: In member function `ICQOwner* CUserManager::FetchOwner(short 
unsigned int)':
user.cpp:799: warning: `FetchOwner' is deprecated (declared at
   ../include/licq_user.h:802)

the new macro LICQ_DEPRECATED can be also used in any variable.

-- 
Buenos Aires, Argentina                           10°C with winds at 3 km/h NW
Index: configure.in
===================================================================
RCS file: /cvsroot/licq/licq/configure.in,v
retrieving revision 1.63
diff -u -d -p -r1.63 configure.in
--- configure.in	2 Jul 2003 04:44:47 -0000	1.63
+++ configure.in	7 Jul 2003 05:41:12 -0000
@@ -172,6 +172,8 @@ AC_DISABLE_SHARED
 AM_PROG_LIBTOOL
 AC_LIBTOOL_CXX
 
+LICQ_DEPRECATED
+
 AC_OUTPUT(
   bin/Makefile \
   share/Makefile \
Index: admin/acinclude.m4.in
===================================================================
RCS file: /cvsroot/licq/licq-common/admin/acinclude.m4.in,v
retrieving revision 1.20
diff -u -d -p -r1.20 acinclude.m4.in
--- admin/acinclude.m4.in	25 Jun 2003 15:45:51 -0000	1.20
+++ admin/acinclude.m4.in	7 Jul 2003 05:41:14 -0000
@@ -175,3 +175,29 @@ AC_DEFUN(AC_C_SOCKLEN_T_AND_SOCKS,
   ]);
 
 ])
+
+
+dnl Helper to remember what functions must be not used
+AC_DEFUN(LICQ_DEPRECATED,
+  [AH_BOTTOM([
+/* based on gpgme.h from gpgme cvs version (~ 0.4.2)
+ *
+ * Check for compiler features. 
+ */
+#if __GNUC__
+  #ifndef _GPGME_GCC_VERSION
+    #define _GPGME_GCC_VERSION (__GNUC__ * 10000 \
+                            + __GNUC_MINOR__ * 100 \
+                            + __GNUC_PATCHLEVEL__)
+  #endif
+ #if _GPGME_GCC_VERSION > 30100
+   #ifndef LICQ_DEPRECATED
+     #define LICQ_DEPRECATED       __attribute__ ((__deprecated__))
+   #endif
+ #endif
+#else
+  #define LICQ_DEPRECATED
+#endif
+])
+  ])
+])
Index: include/licq_user.h
===================================================================
RCS file: /cvsroot/licq/licq/include/licq_user.h,v
retrieving revision 1.44
diff -u -d -p -r1.44 licq_user.h
--- include/licq_user.h	2 Jul 2003 04:41:02 -0000	1.44
+++ include/licq_user.h	7 Jul 2003 05:41:38 -0000
@@ -250,8 +250,8 @@ const unsigned short LAST_CHECKED_AR    
 class ICQUser
 {
 public:
-  ICQUser(unsigned long id, char *filename);
-  ICQUser(unsigned long id);
+  ICQUser(unsigned long id, char *filename) LICQ_DEPRECATED;
+  ICQUser(unsigned long id) LICQ_DEPRECATED;
   ICQUser(const char *id, unsigned long ppid, char *filename);
   ICQUser(const char *id, unsigned long ppid);
   virtual ~ICQUser();
@@ -799,7 +799,7 @@ public:
   void AddUser(ICQUser *, const char *, unsigned long);
   void RemoveUser(const char *, unsigned long);
   ICQUser *FetchUser(const char *, unsigned long, unsigned short);
-  ICQOwner *FetchOwner(unsigned long, unsigned short);
+  ICQOwner *FetchOwner(unsigned long, unsigned short) LICQ_DEPRECATED;
   void DropOwner(unsigned long);
   bool IsOnList(const char *, unsigned long);
   ICQOwner *FindOwner(const char *, unsigned long);
Index: plugins/auto-reply/configure.in
===================================================================
RCS file: /cvsroot/licq/auto-reply/configure.in,v
retrieving revision 1.15
diff -u -d -p -r1.15 configure.in
--- plugins/auto-reply/configure.in	25 Jun 2003 16:08:19 -0000	1.15
+++ plugins/auto-reply/configure.in	7 Jul 2003 05:41:38 -0000
@@ -52,6 +52,8 @@ AC_CHECK_HEADER(vector.h,,
 
 AC_LANG_RESTORE
 
+LICQ_DEPRECATED
+
 AC_OUTPUT(
   src/Makefile
 	Makefile)
Index: plugins/console/configure.in
===================================================================
RCS file: /cvsroot/licq/console/configure.in,v
retrieving revision 1.28
diff -u -d -p -r1.28 configure.in
--- plugins/console/configure.in	25 Jun 2003 16:08:19 -0000	1.28
+++ plugins/console/configure.in	7 Jul 2003 05:41:49 -0000
@@ -62,6 +62,8 @@ I can't find the ncurses library. This i
 to compile this plugin. Sorry.
 ]))
 
+LICQ_DEPRECATED
+
 AC_OUTPUT(
   src/Makefile \
   Makefile
Index: plugins/email/configure.in
===================================================================
RCS file: /cvsroot/licq/email/configure.in,v
retrieving revision 1.19
diff -u -d -p -r1.19 configure.in
--- plugins/email/configure.in	25 Jun 2003 16:08:19 -0000	1.19
+++ plugins/email/configure.in	7 Jul 2003 05:42:02 -0000
@@ -54,6 +54,8 @@ AC_CHECK_HEADER(vector.h,,
 
 AC_LANG_RESTORE
 
+LICQ_DEPRECATED
+
 AC_OUTPUT(
   src/Makefile
 	Makefile)
Index: plugins/qt-gui/configure.in
===================================================================
RCS file: /cvsroot/licq/qt-gui/configure.in,v
retrieving revision 1.69
diff -u -d -p -r1.69 configure.in
--- plugins/qt-gui/configure.in	2 Jul 2003 04:44:47 -0000	1.69
+++ plugins/qt-gui/configure.in	7 Jul 2003 05:42:16 -0000
@@ -157,6 +157,8 @@ LICQ_CHECK_QT_HEADER
 dnl Checks for typedefs, structures, and compiler characteristics.
 dnl AC_C_SOCKLEN_T
 
+LICQ_DEPRECATED
+
 AC_OUTPUT(
   po/Makefile \
   src/Makefile \
Index: plugins/rms/configure.in
===================================================================
RCS file: /cvsroot/licq/rms/configure.in,v
retrieving revision 1.8
diff -u -d -p -r1.8 configure.in
--- plugins/rms/configure.in	9 Sep 2002 23:19:01 -0000	1.8
+++ plugins/rms/configure.in	7 Jul 2003 05:42:29 -0000
@@ -49,6 +49,8 @@ dnl Switch to C++ mode and check for nee
 AC_LANG_SAVE
 AC_LANG_CPLUSPLUS
 
+LICQ_DEPRECATED
+
 AC_CHECK_HEADER(vector,,
   AC_MSG_ERROR(You need to have the libstdc++ headers installed))
 

Attachment: pgp00000.pgp
Description: signature

Reply via email to