[SCM] tango branch, master, updated. debian/8.0.5+dfsg-1-1-g1dd4c13

Picca Frédéric-Emma?==?UTF-8?Q?nuel picca at debian.org
Tue May 7 07:14:31 UTC 2013


The following commit has been merged in the master branch:
commit 7055505ad657660578fa737500d5891d3306c277
Author: Picca Frédéric-Emmanuel <picca at debian.org>
Date:   Mon May 28 10:04:45 2012 +0200

    refresh the patch series

diff --git a/debian/changelog b/debian/changelog
index 6428255..16ae34a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,16 @@ tango (8.0.5+dfsg-1) UNRELEASED; urgency=low
 
   * Imported Upstream version 8.0.5+dfsg
   * reorganize packages for tango8.
+  * debian/patches
+    - 0001-debian-fix_database_scripts.patch (refreshed)
+    - 0002-debian-my.cnf.in.patch (refreshed)
+    - 0003-debian-notify_daemon.patch (refreshed)
+    - 0004-upstream-fix-bug3285674.patch (deleted)
+    - 0005-upstream-fix-bug3213730.patch (deleted)
+    - 0006 -> 0004-feature-forwarded-upstream-pkg-config-small-fixes.patch (renamed)
+    - 0007-upstream-fix-tango-db-start-during-init.patch (deleted)
+    - 0008-feature-add-jpegmmx-option-to-configure-script.patch (deleted)
+    - 0009-upstream-fix-bug3339975.patch (deleted)
 
  -- Picca Frédéric-Emmanuel <picca at debian.org>  Mon, 28 May 2012 09:38:26 +0200
 
diff --git a/debian/patches/0001-debian-fix_database_scripts.patch b/debian/patches/0001-debian-fix_database_scripts.patch
index 708f897..01aee96 100644
--- a/debian/patches/0001-debian-fix_database_scripts.patch
+++ b/debian/patches/0001-debian-fix_database_scripts.patch
@@ -11,10 +11,10 @@ update the database creation script to deal with the debian path
 Signed-off-by: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
 ---
  cppserver/database/create_db.sql.in |    8 ++------
- 1 files changed, 2 insertions(+), 6 deletions(-)
+ 1 file changed, 2 insertions(+), 6 deletions(-)
 
 diff --git a/cppserver/database/create_db.sql.in b/cppserver/database/create_db.sql.in
-index e9c4d50..e5048e4 100644
+index 43a9110..7840aaa 100644
 --- a/cppserver/database/create_db.sql.in
 +++ b/cppserver/database/create_db.sql.in
 @@ -1,12 +1,8 @@
@@ -31,11 +31,10 @@ index e9c4d50..e5048e4 100644
  
  #
  # Init the history identifiers
-@@ -121,5 +117,5 @@ INSERT INTO property_class VALUES ('TangoAccessControl','AllowedAccessCmd',6,'Ge
+@@ -124,5 +120,5 @@ INSERT INTO property_class VALUES ('TangoAccessControl','AllowedAccessCmd',6,'Ge
  # Load the stored procedures
  #
  
 -source stored_proc.sql
 +source /usr/share/tango-db/stored_proc.sql
  
--- 
diff --git a/debian/patches/0002-debian-my.cnf.in.patch b/debian/patches/0002-debian-my.cnf.in.patch
index 71f682c..1330aba 100644
--- a/debian/patches/0002-debian-my.cnf.in.patch
+++ b/debian/patches/0002-debian-my.cnf.in.patch
@@ -11,7 +11,7 @@ set the right parameters for the mysql configuration file
 Signed-off-by: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
 ---
  cppserver/database/my.cnf.in |    9 ++++-----
- 1 files changed, 4 insertions(+), 5 deletions(-)
+ 1 file changed, 4 insertions(+), 5 deletions(-)
 
 diff --git a/cppserver/database/my.cnf.in b/cppserver/database/my.cnf.in
 index 69f574c..8bae2c7 100644
@@ -41,4 +41,3 @@ index 69f574c..8bae2c7 100644
  
  # back_log is the number of connections the operating system can keep in
  # the listen queue, before the MySQL connection manager thread has
--- 
diff --git a/debian/patches/0003-debian-notify_daemon.patch b/debian/patches/0003-debian-notify_daemon.patch
index 1d98648..2c5f45f 100644
--- a/debian/patches/0003-debian-notify_daemon.patch
+++ b/debian/patches/0003-debian-notify_daemon.patch
@@ -5,7 +5,7 @@ Subject: debian/notify_daemon
 
 ---
  scripts/notify_daemon.in |    6 ++----
- 1 files changed, 2 insertions(+), 4 deletions(-)
+ 1 file changed, 2 insertions(+), 4 deletions(-)
 
 diff --git a/scripts/notify_daemon.in b/scripts/notify_daemon.in
 index a610b75..3c8ca1d 100755
@@ -35,4 +35,3 @@ index a610b75..3c8ca1d 100755
  
  echo "ulimit has been set to:"
  ulimit -s
--- 
diff --git a/debian/patches/0006-feature-forwarded-upstream-pkg-config-small-fixes.patch b/debian/patches/0004-feature-forwarded-upstream-pkg-config-small-fixes.patch
similarity index 93%
rename from debian/patches/0006-feature-forwarded-upstream-pkg-config-small-fixes.patch
rename to debian/patches/0004-feature-forwarded-upstream-pkg-config-small-fixes.patch
index 4ecdf64..b081490 100644
--- a/debian/patches/0006-feature-forwarded-upstream-pkg-config-small-fixes.patch
+++ b/debian/patches/0004-feature-forwarded-upstream-pkg-config-small-fixes.patch
@@ -26,7 +26,7 @@ index 0e61e8a..c4acacb 100644
 -Cflags: -I${includedir}
 +Cflags: -I${includedir}/tango
 diff --git a/lib/cpp/tango.pc.in b/lib/cpp/tango.pc.in
-index b9bb22f..b4a4a82 100644
+index 50e62f8..870c07d 100644
 --- a/lib/cpp/tango.pc.in
 +++ b/lib/cpp/tango.pc.in
 @@ -1,11 +1,11 @@
@@ -38,9 +38,8 @@ index b9bb22f..b4a4a82 100644
  
  Name: tango
  Description: The tango constrol system library
- Requires: omniDynamic4 >= 4.1.2 omniCOS4 log4tango
+ Requires: omniDynamic4 >= 4.1.2, omniCOS4, log4tango, libzmq
  Version: @VERSION@
  Libs: -L${libdir} -ltango
 -Cflags: -I${includedir}
 +Cflags: -I${includedir}/tango
--- 
diff --git a/debian/patches/0004-upstream-fix-bug3285674.patch b/debian/patches/0004-upstream-fix-bug3285674.patch
deleted file mode 100644
index dea101c..0000000
--- a/debian/patches/0004-upstream-fix-bug3285674.patch
+++ /dev/null
@@ -1,237 +0,0 @@
-From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?=
- <picca at synchrotron-soleil.fr>
-Date: Fri, 13 May 2011 19:05:00 +0200
-Subject: upstream-fix-bug3285674
-
----
- lib/cpp/server/tango_config.h  |   14 +++++
- lib/cpp/server/w_attribute.cpp |  122 +++++++++++++++++++++++++++++++--------
- 2 files changed, 111 insertions(+), 25 deletions(-)
-
-diff --git a/lib/cpp/server/tango_config.h b/lib/cpp/server/tango_config.h
-index 91fc26c..5a51dbf 100644
---- a/lib/cpp/server/tango_config.h
-+++ b/lib/cpp/server/tango_config.h
-@@ -356,6 +356,20 @@
- #define TANGO_HAS_CORE_LOGGER
- 
- //
-+// Define a macro for unused parameter warning
-+//
-+
-+#ifdef _TG_WINDOWS_
-+#define TANGO_UNUSED(var) var
-+#else
-+	#ifdef __GNUC__
-+		#define TANGO_UNUSED(var) var __attribute__ ((unused))
-+	#else
-+		#define TANGO_UNUSED(var) var
-+	#endif
-+#endif
-+
-+//
- // Is it a 32 or 64 bits computer
- //
- 
-diff --git a/lib/cpp/server/w_attribute.cpp b/lib/cpp/server/w_attribute.cpp
-index 54f213f..534d335 100644
---- a/lib/cpp/server/w_attribute.cpp
-+++ b/lib/cpp/server/w_attribute.cpp
-@@ -735,11 +735,31 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				
- //
- // Check the incoming value
-+// First check for NaN, INF
- //
- 
--		if (check_min_value == true)
-+		for (i = 0;i < nb_data;i++)
- 		{
--			for (i = 0;i < nb_data;i++)
-+#ifdef _TG_WINDOWS_
-+			if (_finite((*db_ptr)[i]) == 0)
-+#else
-+	#ifdef __SUNPRO_CC
-+			if (isnan((*db_ptr)[i]) != 0)
-+	#else
-+			if (isfinite((*db_ptr)[i]) == 0)
-+	#endif
-+#endif
-+			{
-+				TangoSys_OMemStream o;
-+
-+				o << "Set value for attribute " << name;
-+				o << " is a NaN or INF value (at least element " << i << ")" << ends;
-+				Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-+					      o.str(),
-+					      (const char *)"WAttribute::check_written_value()");
-+			}
-+
-+			if (check_min_value == true)
- 			{
- 				if ((*db_ptr)[i] < min_value.db)
- 				{
-@@ -752,10 +772,8 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 						      (const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		}
--		if (check_max_value == true)
--		{
--			for (i = 0;i < nb_data;i++)
-+
-+			if (check_max_value == true)
- 			{
- 				if ((*db_ptr)[i] > max_value.db)
- 				{
-@@ -878,11 +896,31 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				
- //
- // Check the incoming value
-+// First check for NaN, INF
- //
- 
--		if (check_min_value == true)
-+		for (i = 0;i < nb_data;i++)
- 		{
--			for (i = 0;i < nb_data;i++)
-+#ifdef _TG_WINDOWS_
-+			if (_finite((*fl_ptr)[i]) == 0)
-+#else
-+	#ifdef __SUNPRO_CC
-+			if (isnan((*fl_ptr)[i]) != 0)
-+	#else
-+			if (isfinite((*fl_ptr)[i]) == 0)
-+	#endif
-+#endif
-+			{
-+				TangoSys_OMemStream o;
-+
-+				o << "Set value for attribute " << name;
-+				o << " is a NaN or INF value (at least element " << i << ")" << ends;
-+				Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-+					      o.str(),
-+					      (const char *)"WAttribute::check_written_value()");
-+			}
-+
-+			if (check_min_value == true)
- 			{
- 				if ((*fl_ptr)[i] < min_value.fl)
- 				{
-@@ -895,10 +933,8 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 						      (const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		}
--		if (check_max_value == true)
--		{
--			for (i = 0;i < nb_data;i++)
-+
-+			if (check_max_value == true)
- 			{
- 				if ((*fl_ptr)[i] > max_value.fl)
- 				{
-@@ -1473,11 +1509,31 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				
- //
- // Check the incoming value
-+// First check for NaN, INF
- //
- 
--			if (check_min_value == true)
-+			for (i = 0;i < nb_data;i++)
- 			{
--				for (i = 0;i < nb_data;i++)
-+#ifdef _TG_WINDOWS_
-+				if (_finite(db_seq[i]) == 0)
-+#else
-+	#ifdef __SUNPRO_CC
-+				if (isnan(db_seq[i]) != 0)
-+	#else
-+				if (isfinite(db_seq[i]) == 0)
-+	#endif
-+#endif
-+				{
-+					TangoSys_OMemStream o;
-+
-+					o << "Set value for attribute " << name;
-+					o << " is a NaN or INF value (at least element " << i << ")" << ends;
-+					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-+						      o.str(),
-+						      (const char *)"WAttribute::check_written_value()");
-+				}
-+
-+				if (check_min_value == true)
- 				{
- 					if (db_seq[i] < min_value.db)
- 					{
-@@ -1490,10 +1546,8 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}
--			if (check_max_value == true)
--			{
--				for (i = 0;i < nb_data;i++)
-+
-+				if (check_max_value == true)
- 				{
- 					if (db_seq[i] > max_value.db)
- 					{
-@@ -1618,11 +1672,31 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				
- //
- // Check the incoming value
-+// First check for NaN, INF
- //
- 
--			if (check_min_value == true)
-+			for (i = 0;i < nb_data;i++)
- 			{
--				for (i = 0;i < nb_data;i++)
-+#ifdef _TG_WINDOWS_
-+				if (_finite(fl_seq[i]) == 0)
-+#else
-+	#ifdef __SUNPRO_CC
-+				if (isnan(fl_seq[i]) != 0)
-+	#else
-+				if (isfinite(fl_seq[i]) == 0)
-+	#endif
-+#endif
-+				{
-+					TangoSys_OMemStream o;
-+
-+					o << "Set value for attribute " << name;
-+					o << " is a NaN or INF value (at least element " << i << ")" << ends;
-+					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-+						      o.str(),
-+						      (const char *)"WAttribute::check_written_value()");
-+				}
-+
-+				if (check_min_value == true)
- 				{
- 					if (fl_seq[i] < min_value.fl)
- 					{
-@@ -1635,10 +1709,8 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}
--			if (check_max_value == true)
--			{
--				for (i = 0;i < nb_data;i++)
-+
-+				if (check_max_value == true)
- 				{
- 					if (fl_seq[i] > max_value.fl)
- 					{
-@@ -2845,7 +2917,7 @@ void WAttribute::set_write_value(vector<Tango::DevState> &val, long x, long y)
- 	set_user_set_write_value(true);
- }
- 
--void WAttribute::set_write_value(Tango::DevEncoded *, long x,long y)
-+void WAttribute::set_write_value(Tango::DevEncoded *, TANGO_UNUSED(long x),TANGO_UNUSED(long y))
- {
- 
- //
--- 
diff --git a/debian/patches/0005-upstream-fix-bug3213730.patch b/debian/patches/0005-upstream-fix-bug3213730.patch
deleted file mode 100644
index d22262d..0000000
--- a/debian/patches/0005-upstream-fix-bug3213730.patch
+++ /dev/null
@@ -1,689 +0,0 @@
-From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?=
- <picca at synchrotron-soleil.fr>
-Date: Fri, 13 May 2011 12:28:01 +0200
-Subject: upstream-fix-bug3213730
-
----
- lib/cpp/client/dbapi_base.cpp    |   19 +++-
- lib/cpp/server/attribute.cpp     |  162 +---------------------------
- lib/cpp/server/event.cpp         |  156 +--------------------------
- lib/cpp/server/eventsupplier.cpp |  220 +------------------------------------
- 4 files changed, 34 insertions(+), 523 deletions(-)
-
-diff --git a/lib/cpp/client/dbapi_base.cpp b/lib/cpp/client/dbapi_base.cpp
-index 58de924..3e3e6a2 100644
---- a/lib/cpp/client/dbapi_base.cpp
-+++ b/lib/cpp/client/dbapi_base.cpp
-@@ -227,7 +227,7 @@ Database::Database(ORB *orb_in) : Connection(orb_in),access_proxy(NULL),access_c
- 	
- 	get_server_release();
- 	
--	dev_name();	
-+	dev_name();
- }
- 
- #ifdef _TG_WINDOWS_
-@@ -4301,8 +4301,21 @@ bool Database::is_command_allowed(string &devname,string &cmd)
- 
- 	if (devname == db_device_name)
- 	{
--		string db_class("Database");
--		ret = access_proxy->is_command_allowed(db_class,cmd);
-+
-+//
-+// In case of Database object, the first command uses the default access right (READ)
-+// Therefore, this is_command_allowed method is called and the access are checked by the
-+// check_access_control() call upper in this method. If the access is WRITE, force 
-+// true for the retrun value of this method
-+//
-+
-+		if (access == ACCESS_READ)
-+		{
-+			string db_class("Database");
-+			ret = access_proxy->is_command_allowed(db_class,cmd);
-+		}
-+		else
-+			ret = true;
- 	}
- 	else
- 	{
-diff --git a/lib/cpp/server/attribute.cpp b/lib/cpp/server/attribute.cpp
-index b5bea32..0953a87 100644
---- a/lib/cpp/server/attribute.cpp
-+++ b/lib/cpp/server/attribute.cpp
-@@ -36,155 +36,6 @@ static const char *RcsId = "$Id: attribute.cpp 15556 2011-02-11 08:25:58Z taurel
- //
- // $Revision: 15556 $
- //
--// $Log$
--// Revision 3.88  2011/01/10 14:39:27  taurel
--// - Some compilation errors while compiling Tango 7.2.3
--//
--// Revision 3.87  2010/12/08 10:13:08  taurel
--// - Commit after a merge with the bugfixes branch
--//
--// Revision 3.86.2.1  2010/11/21 08:41:27  taurel
--// - Fix SourceForge bug nb 3110842
--// (wrong delete in state for spectrm att with alarm defined when
--// quality factor set to ATTR_INVALID)
--//
--// Revision 3.86  2010/11/02 14:06:54  taurel
--// - Replace dynamic_cast with static_cast in attribute.cpp.
--// - Release number is now 7.2.1
--//
--// Revision 3.85  2010/10/22 13:20:14  taurel
--// - First bug in Tango 7.2 ! Crash when reading R/W scalar string attribute
--// without requiring Tango to free memory
--//
--// Revision 3.84  2010/09/17 08:22:05  taurel
--// - Fix memory leak in cse of scalar attribute R/W for string
--//
--// Revision 3.83  2010/09/09 13:44:46  taurel
--// - Add year 2010 in Copyright notice
--//
--// Revision 3.82  2010/07/16 10:51:53  taurel
--// - Now it's possible to fill the polling buffer externally for R/W attribute
--// specifying the attribute written part
--//
--// Revision 3.81  2010/06/21 14:01:13  taurel
--// - Yet another merge with the Release_7_1_1-bugfixes branch
--//
--// Revision 3.78.2.1  2010/02/23 15:56:51  taurel
--// - Fix bug 2954995 (attribute quality INVALID)
--//
--// Revision 3.78  2009/10/27 08:22:27  taurel
--// - Attribute default value for periodic event period is back to 1 sec
--//
--// Revision 3.77  2009/10/23 14:36:27  taurel
--// - Tango 7.1.1
--// - Fix bugs 2880372 and 2881841
--// - Now support event in case of Tango system with multi db server
--// - The polling threads start with polling inactive
--//
--// Revision 3.76  2009/09/18 09:18:05  taurel
--// - End of attribute serialization implementation?
--//
--// Revision 3.75  2009/09/17 08:28:05  taurel
--// - Add a mutual exclusion to protect attribute buffer
--//
--// Revision 3.74  2009/09/16 12:24:45  taurel
--// - Fix bug in alarm checking in case of scalar attribute read due to a
--// state attribute request in a read_attributes() call
--//
--// Revision 3.73  2009/08/27 07:23:45  taurel
--// - Commit after another merge with Release_7_0_2-bugfixes branch
--//
--// Revision 3.72.2.4  2009/08/25 14:02:00  taurel
--// - Clarify an error message
--//
--// Revision 3.72.2.3  2009/07/17 08:45:58  taurel
--// - Forgot to copy the previous bug fix to all push_xxx_event() methods
--//
--// Revision 3.72.2.2  2009/07/17 08:27:36  taurel
--// - Fix bug (valgring complains about it) in push_xxx_event() methods
--// for the status attribute
--//
--// Revision 3.72.2.1  2009/06/22 06:39:56  taurel
--// - Fix bug when pushing event with attribute quality factor set to INVALID
--//
--// Revision 3.72  2009/04/30 15:09:55  taurel
--// - Some code managing only IDL 3 was still there !
--//
--// Revision 3.71  2009/03/30 15:03:44  taurel
--// - Fix last bugs before Tango 7 ??
--//
--// Revision 3.70  2009/03/19 17:50:21  jlpons
--// Added management of DevEncoded format
--//
--// Revision 3.69  2009/03/18 12:18:40  taurel
--// - Fix warnings reported when compiled with the option -Wall
--//
--// Revision 3.68  2009/03/13 09:33:29  taurel
--// - Small changes to fix Windows VC8 warnings in Warning level 3
--//
--// Revision 3.67  2009/02/04 10:23:47  taurel
--// - Fix double free when firing a change event for an attribute with
--// an INVALID quality factor (set by set_value_date_quality)
--//
--// Revision 3.66  2009/01/29 16:23:49  taurel
--// - Commit after merge with branch Release_6_1_1-bugfixes
--//
--// Revision 3.65  2009/01/21 12:49:04  taurel
--// - Change CopyRights for 2009
--//
--// Revision 3.64  2009/01/15 13:57:10  taurel
--// - Fix bugs found by Jens
--//
--// Revision 3.63  2009/01/06 09:28:50  taurel
--// - Add compatibility between a server IDL V4 and clients IDL V3
--//
--// Revision 3.62  2008/12/17 09:50:59  taurel
--// - First implementation of attributes sent on the wire using IDL Union
--// instead of IDL Any
--//
--// Revision 3.61  2008/10/06 15:00:36  taurel
--// - Changed the licensing info from GPL to LGPL
--//
--// Revision 3.60  2008/10/03 06:51:36  taurel
--// - Add some licensing info in each files
--//
--// Revision 3.59  2008/09/23 14:59:31  taurel
--// - Commit after the end of DevEncoded data type implementation
--// - The new test suite is also now running fine
--//
--// Revision 3.58  2008/07/03 12:40:05  taurel
--// - Clean memory in case of String in the set_value() method when the
--// release flag is set to true
--//
--// Revision 3.57  2008/07/03 11:29:27  taurel
--// - Clean-up memory allocation in set_value() methods
--// - Continue Device_4 implementation in fire_xxx event methods
--//
--// Revision 3.56  2008/07/01 07:38:39  taurel
--// - Some more code for a proper implementation of the DevEncoded data type with the new IDL release 4
--//
--// Revision 3.55  2008/06/14 11:29:15  taurel
--// - DevEncoded attribute data type implementation work going on
--//
--// Revision 3.54  2008/06/10 07:52:14  taurel
--// - Add code for the DevEncoded attribute data type
--//
--// Revision 3.53  2008/05/20 12:44:09  taurel
--// - Commit after merge with release 7 branch
--// Revision 3.52.2.1  2009/01/29 15:17:01  taurel
--// - Add some bug fixes for server used with the -f option (database as
--// file)
--//
--// Revision 3.52  2008/03/26 16:52:59  taurel
--// - Remove a buggy test when setting the attribute config (linked to RDS delta_t
--// and delta_val)
--//
--// Revision 3.51  2008/03/25 15:48:44  taurel
--// - Fix some warnings for gcc 4.2 (Thank's to F Picca from Soleil)
--//
--// Revision 3.50  2008/03/25 15:34:25  taurel
--// - Add 2 Attribute::set_properties() methods
--//
- //-============================================================================
- 
- #if HAVE_CONFIG_H
-@@ -370,7 +221,7 @@ void Attribute::init_event_prop(vector<AttrProperty> &prop_list)
- 
-         TangoSys_MemStream str;
- 		double rel_change_min=INT_MAX, rel_change_max=INT_MAX;
--               str << rel_change_str << ends;
-+		str << rel_change_str << ends;
- 		str >> rel_change_min;
- 		str >> rel_change_max;
- 
-@@ -401,16 +252,15 @@ void Attribute::init_event_prop(vector<AttrProperty> &prop_list)
-         str << abs_change_str << ends;
- 		str >> abs_change_min;
- 		str >> abs_change_max;
--        if (abs_change_min != INT_MAX) 
-+		if (fabs(abs_change_min) > 0 && abs_change_min != INT_MAX) 
- 		{
- 			ext->abs_change[0] = -fabs(abs_change_min);
- 			ext->abs_change[1] = fabs(abs_change_min);
-         }                                 
--        if (abs_change_max != INT_MAX) 
-+		if (abs_change_max > 0 && abs_change_max != INT_MAX) 
- 		{
--			ext->abs_change[0] = abs_change_min;
--			ext->abs_change[1] = abs_change_max;
--        }                                 
-+			ext->abs_change[1] = fabs(abs_change_max);
-+        }                                  
- 		cout1 << "Attribute::Attribute(): rel_change = " << ext->rel_change[0] << " " << ext->rel_change[1] << endl;
- 		str.seekp(0); 
- 		str.seekg(0);
-@@ -1558,7 +1408,7 @@ void Attribute::get_properties_3(Tango::AttributeConfig_3 &conf)
- 		}
- 		else
- 		{
--			str << fabs(ext->abs_change[0]) << "," << ext->abs_change[1];			
-+			str << fabs(ext->abs_change[0]) << "," << ext->abs_change[1];	
- 			MEM_STREAM_2_CORBA(conf.event_prop.ch_event.abs_change,str);
- 		}
- 	}
-diff --git a/lib/cpp/server/event.cpp b/lib/cpp/server/event.cpp
-index 8a22dae..93058a1 100644
---- a/lib/cpp/server/event.cpp
-+++ b/lib/cpp/server/event.cpp
-@@ -36,154 +36,6 @@ static const char *RcsId = "$Id: event.cpp 15556 2011-02-11 08:25:58Z taurel $";
- ///
- ///		$Revision: 15556 $
- ///
--///		$Log$
--///		Revision 1.70  2010/10/04 14:56:04  taurel
--///		- Fix a Solaris natif compiler warning
--///		
--///		Revision 1.69  2010/09/29 12:04:35  taurel
--///		- It's now possible to register several callbacks for the same event
--///		
--///		Revision 1.68  2010/09/09 13:45:22  taurel
--///		- Add year 2010 in Copyright notice
--///		
--///		Revision 1.67  2010/09/07 15:33:12  taurel
--///		- Add a print to be used in case of
--///		
--///		Revision 1.66  2010/08/25 11:39:47  taurel
--///		- Just some beautifulling!!
--///		
--///		Revision 1.65  2010/06/21 14:01:15  taurel
--///		- Yet another merge with the Release_7_1_1-bugfixes branch
--///		
--///		Revision 1.64  2010/06/21 12:38:23  taurel
--///		- Implement a much faster server shutdown sequence
--///		Revision 1.60.2.3  2010/06/13 11:39:30  taurel
--///		- Fix incoherency in error received by the user callback in case of
--///		CHANGE event. The "err" flag was not set in the first event sent to the
--///		user callback (during subscription).
--///		This is bug 3015443
--///		
--///		Revision 1.63  2010/05/26 09:15:35  taurel
--///		- Another commit after merge with the bug fixes branch
--///		
--///		Revision 1.62  2010/04/27 07:36:42  taurel
--///		- Merge with the bugfixes branch
--///		Revision 1.60.2.2  2010/05/18 08:27:22  taurel
--///		- Events from device in a DS started with a file as database are now
--///		back into operation
--///		
--///		Revision 1.60.2.1  2010/04/27 07:10:09  taurel
--///		- Fix bug in case of event sent by the notifd while another thread is
--///		executing the unregister_structured_push_supplier() call in the
--///		unsubscribe_event() API call. This generated a dead lock on the monitor
--///		used to protect event maps.
--///		
--///		Revision 1.60  2009/11/02 08:35:47  taurel
--///		- Fix warnings reported when compiling using the option -Wall
--///		
--///		Revision 1.59  2009/10/27 08:23:47  taurel
--///		- Fully Qualified attribute name passed to the event callback
--///		
--///		Revision 1.58  2009/10/23 14:36:27  taurel
--///		- Tango 7.1.1
--///		- Fix bugs 2880372 and 2881841
--///		- Now support event in case of Tango system with multi db server
--///		- The polling threads start with polling inactive
--///		
--///		Revision 1.57  2009/10/01 15:13:07  taurel
--///		- Fix a bug in case of unsubscribe on event from channel on which several
--///		events were registered.(Not proper clean up of the device_channel_map map)
--///		
--///		Revision 1.56  2009/09/30 06:43:18  taurel
--///		- Improve error detection in case of TANGO_HOST not set and not fully
--///		qualified device name
--///		
--///		Revision 1.55  2009/09/29 15:55:15  taurel
--///		- Fix bug in case of subscribe_event using fully qualified Tango device
--///		name while the TANGO_HOST env. variable is not set
--///		
--///		Revision 1.54  2009/08/27 07:23:45  taurel
--///		- Commit after another merge with Release_7_0_2-bugfixes branch
--///		
--///		Revision 1.53  2009/06/17 08:52:08  taurel
--///		- Commit after a merge with branch Release_7_0_2-bugfixes
--///		Revision 1.52.2.9  2009/08/20 07:10:49  taurel
--///		- It is now possible to unsubscribe in the event callback!
--///		
--///		Revision 1.52.2.8  2009/08/17 14:13:33  taurel
--///		- Fix SourceForge bug 2821898 for the EventData class.
--///		Thank's to Tiago's patch
--///		
--///		Revision 1.52.2.7  2009/07/16 06:34:49  taurel
--///		- Fix bug in AttrConfEventData copy ctor and assignement operator
--///		
--///		Revision 1.52.2.6  2009/07/15 08:14:34  taurel
--///		- Don't forget to set the lock exit installed flag when the EventConsumer object is created !!
--///		
--///		Revision 1.52.2.5  2009/06/25 11:57:55  taurel
--///		- Fix bug in case of multiple subscribe on the same event just before
--///		the exception is thrown. A bad lock management
--///		
--///		Revision 1.52.2.4  2009/06/22 14:48:52  taurel
--///		- Fix bug for state change coming from a device 4 server
--///		
--///		Revision 1.52.2.3  2009/06/17 07:35:44  taurel
--///		- Add support for event coming from server with the prefix to build
--///		the fqdn contains database host with its full qualified domain
--///		name
--///		
--///		Revision 1.52.2.2  2009/06/15 10:57:09  taurel
--///		- Fix a bug in the bug fix !
--///		
--///		Revision 1.52.2.1  2009/06/12 08:28:51  taurel
--///		- Fix bug when using events in multi Tango host environment.
--///		The TANGO_HOST is now transferred within the even tin the fixed
--///		header event_type field.
--///		The DS admin device EventSubscriptionChange command now returns with which Tango lib it is runnig.
--///		This allows the client to know if the tango host info will be transmitted within the event
--///		
--///		Revision 1.52  2009/03/30 15:03:44  taurel
--///		- Fix last bugs before Tango 7 ??
--///		
--///		Revision 1.51  2009/03/20 11:53:28  taurel
--///		- Fix some compiler warnings
--///		
--///		Revision 1.50  2009/03/18 12:18:43  taurel
--///		- Fix warnings reported when compiled with the option -Wall
--///		
--///		Revision 1.49  2009/03/13 09:33:29  taurel
--///		- Small changes to fix Windows VC8 warnings in Warning level 3
--///		
--///		Revision 1.48  2009/01/29 15:25:41  taurel
--///		- First implementation of the Data Ready event
--///		
--///		Revision 1.47  2009/01/21 12:49:03  taurel
--///		- Change CopyRights for 2009
--///		
--///		Revision 1.46  2008/12/17 09:50:59  taurel
--///		- First implementation of attributes sent on the wire using IDL Union
--///		instead of IDL Any
--///		
--///		Revision 1.45  2008/10/06 15:01:09  taurel
--///		- Changed the licensing info from GPL to LGPL
--///		
--///		Revision 1.44  2008/10/03 06:52:31  taurel
--///		- Add some licensing info in each files
--///		
--///		Revision 1.43  2008/10/01 12:02:01  jensmeyer
--///		Changed method name event_queue_is_empty() to is_event_queue_empty()
--///		
--///		Revision 1.42  2008/09/23 14:59:33  taurel
--///		- Commit after the end of DevEncoded data type implementation
--///		- The new test suite is also now running fine
--///		
--///		Revision 1.41  2008/09/15 13:19:39  jensmeyer
--///		Deleted some debugging printouts.
--///		
--///		Revision 1.40  2008/09/15 12:31:09  jensmeyer
--///		Added an eventqueue reading method to call the usual callback method
--///		when reading event data from the queue.
--///
- ///
- ////////////////////////////////////////////////////////////////////////////////
- 
-@@ -307,7 +159,7 @@ EventConsumer::EventConsumer(ApiUtil *ptr) : omni_thread((void *)ptr)
- 
- //
- // Build and store the fqdn prefix for devices in the TANGO_HOST
--// environment variable
-+// environment variable (in lower case letters)
- //
- 
- 	try
-@@ -325,6 +177,9 @@ EventConsumer::EventConsumer(ApiUtil *ptr) : omni_thread((void *)ptr)
- 				env_var_fqdn_prefix.push_back(prefix);
- 			}
- 		}
-+
-+		for (size_t loop = 0;loop < env_var_fqdn_prefix.size();++loop)
-+			transform(env_var_fqdn_prefix[loop].begin(),env_var_fqdn_prefix[loop].end(),env_var_fqdn_prefix[loop].begin(),::tolower);
- 	}
- 	catch (Tango::DevFailed)
- 	{
-@@ -772,6 +627,7 @@ void EventConsumer::connect_event_channel(string &channel_name,Database *db,bool
- 	}
- 	else
- 	{
-+
- 		new_event_channel_struct.eventChannel = eventChannel;
- 		new_event_channel_struct.structuredProxyPushSupplier = structuredProxyPushSupplier;
- 		new_event_channel_struct.last_heartbeat = time(NULL);
-@@ -1473,7 +1329,7 @@ void EventConsumer::push_structured_event(const CosNotification::StructuredEvent
- 		
- 		// only reading from the maps
- 		map_modification_lock.readerIn();
--		
-+
- 		std::map<std::string,EventChannelStruct>::iterator ipos;
- 		ipos = channel_map.find(fq_dev_name);
- 
-diff --git a/lib/cpp/server/eventsupplier.cpp b/lib/cpp/server/eventsupplier.cpp
-index 604791f..c5aedb2 100644
---- a/lib/cpp/server/eventsupplier.cpp
-+++ b/lib/cpp/server/eventsupplier.cpp
-@@ -35,215 +35,6 @@ static const char *RcsId = "$Id: eventsupplier.cpp 15556 2011-02-11 08:25:58Z ta
- // along with Tango.  If not, see <http://www.gnu.org/licenses/>.
- ///
- ///		$Revision: 15556 $
--///
--///		$Log$
--///		Revision 1.44  2011/01/24 12:33:27  taurel
--///		- Fix end of bug with periodic and archive event (periodic part)
--///		Also removed the DELTA on sec numbers for time got for out-of-sync error
--///		
--///		Revision 1.43  2011/01/18 14:49:44  taurel
--///		- Typo for windows
--///		
--///		Revision 1.42  2011/01/18 14:16:46  taurel
--///		- In case of archive or periodic event and error out_of_sync, get time
--///		in detect_and_push_archive_event (periodic as well) because the received
--///		pointer is null
--///		
--///		Revision 1.41  2011/01/10 13:55:07  taurel
--///		- For periodic and archive/periodic, take time got before the attribute
--///		is read to decide if it is time to store data. This time is much
--///		more stable than time got after the attribute is read. Reading attribute
--///		on some device takes a long and unstabe time.
--///		
--///		Revision 1.40  2011/01/10 13:09:02  taurel
--///		- No retry on command to get data for cache during DS startup
--///		- Only three reties during DbDevExport
--///		- Device are deleted by omniORB even if not exported into Tango database
--///		
--///		Revision 1.39  2010/12/08 10:13:08  taurel
--///		- Commit after a merge with the bugfixes branch
--///		
--///		Revision 1.38.2.1  2010/11/25 15:52:52  taurel
--///		- Fix bug 3118520 (DS freezes on Windows)
--///		
--///		Revision 1.38  2010/11/03 13:22:29  taurel
--///		- Add a connect timeout when the server tries to contact the notifd
--///		
--///		Revision 1.37  2010/09/09 13:46:00  taurel
--///		- Add year 2010 in Copyright notice
--///		
--///		Revision 1.36  2010/05/26 09:15:36  taurel
--///		- Another commit after merge with the bug fixes branch
--///		
--///		Revision 1.35.2.2  2010/05/21 09:43:39  taurel
--///		- Re-use the same event channel in case of server restart when a file
--///		is use as database
--///		
--///		Revision 1.35.2.1  2010/05/18 08:27:23  taurel
--///		- Events from device in a DS started with a file as database are now
--///		back into operation
--///		
--///		Revision 1.35  2009/10/27 08:25:02  taurel
--///		- No real changes. Only some code beautifulling
--///		
--///		Revision 1.34  2009/08/27 07:23:45  taurel
--///		- Commit after another merge with Release_7_0_2-bugfixes branch
--///		
--///		Revision 1.33  2009/06/17 08:52:08  taurel
--///		- Commit after a merge with branch Release_7_0_2-bugfixes
--///		Revision 1.32.2.2  2009/06/26 06:46:06  taurel
--///		- No change, simply commit to test the "commit" mailing list
--///		
--///		Revision 1.32.2.1  2009/06/12 08:28:51  taurel
--///		- Fix bug when using events in multi Tango host environment.
--///		The TANGO_HOST is now transferred within the even tin the fixed
--///		header event_type field.
--///		The DS admin device EventSubscriptionChange command now returns with which Tango lib it is runnig.
--///		This allows the client to know if the tango host info will be transmitted within the event
--///		
--///		Revision 1.32  2009/03/13 09:33:29  taurel
--///		- Small changes to fix Windows VC8 warnings in Warning level 3
--///		
--///		Revision 1.31  2009/01/29 16:23:49  taurel
--///		- Commit after merge with branch Release_6_1_1-bugfixes
--///		
--///		Revision 1.30  2009/01/29 15:25:41  taurel
--///		- First implementation of the Data Ready event
--///		
--///		Revision 1.29  2009/01/21 12:49:03  taurel
--///		- Change CopyRights for 2009
--///		
--///		Revision 1.28  2009/01/08 09:52:06  taurel
--///		- Fix bugs for server implementing only IDL3
--///		
--///		Revision 1.27  2009/01/06 09:28:50  taurel
--///		- Add compatibility between a server IDL V4 and clients IDL V3
--///		
--///		Revision 1.26  2008/12/17 09:50:59  taurel
--///		- First implementation of attributes sent on the wire using IDL Union
--///		instead of IDL Any
--///		
--///		Revision 1.25  2008/10/06 15:01:09  taurel
--///		- Changed the licensing info from GPL to LGPL
--///		
--///		Revision 1.24  2008/10/03 06:52:31  taurel
--///		- Add some licensing info in each files
--///		
--///		Revision 1.23  2008/09/23 14:59:35  taurel
--///		- Commit after the end of DevEncoded data type implementation
--///		- The new test suite is also now running fine
--///		
--///		Revision 1.22  2008/07/01 07:38:40  taurel
--///		- Some more code for a proper implementation of the DevEncoded data type with the new IDL release 4
--///		Revision 1.21.2.2  2009/01/29 15:17:01  taurel
--///		- Add some bug fixes for server used with the -f option (database as
--///		file)
--///		
--///		Revision 1.21.2.1  2008/07/17 12:25:50  taurel
--///		- Unexport event channel from db only during device server startup sequence
--///		- Add re-try in case of pb during event channel export to db
--///		- Clean-up old supplier proxy at DS startup (in case of previous core dump)
--///		
--///		Revision 1.21  2008/03/11 14:38:25  taurel
--///		- Apply patches from Frederic Picca about compilation with gcc 4.2
--///		
--///		Revision 1.20  2008/01/15 12:32:43  taurel
--///		- Simply remove some print
--///		
--///		Revision 1.19  2007/12/19 15:42:43  taurel
--///		- Add some cleanup when quitting applis or device server (notifd objects)
--///		
--///		Revision 1.18  2007/12/12 10:17:18  taurel
--///		- Db calls during DS startup has a separate timeout and some retries
--///		
--///		Revision 1.17  2007/11/08 12:03:44  taurel
--///		- Start implementing user interceptors
--///		- Fix bug in poll thread pproperty management when removing polling object
--///		- Set a database timeout to 6 sec
--///		
--///		Revision 1.16  2007/10/16 08:23:37  taurel
--///		- Add management of the TC connection establishment timeout for DB access
--///		- Add DB server cache in DS used during DS startup sequence
--///		- Comment out the sleep time during DS startup sequence
--///		
--///		Revision 1.15  2007/04/20 14:41:33  taurel
--///		- Ported to Windows 64 bits x64 architecture
--///		
--///		Revision 1.14  2007/04/16 14:57:42  taurel
--///		- Added 3 new attributes data types (DevULong, DevULong64 and DevState)
--///		- Ported to omniORB4.1
--///		- Increased the MAX_TRANSFER_SIZE to 256 MBytes
--///		- Added a new filterable field in the archive event
--///		
--///		Revision 1.13  2007/03/29 07:06:55  taurel
--///		- Change some data types for 64 bits compatibility
--///		
--///		Revision 1.12  2007/03/06 08:19:43  taurel
--///		- Added 64 bits data types for 64 bits computer...
--///		
--///		Revision 1.11  2007/03/02 09:47:18  jensmeyer
--///		Added quality change to archive event.
--///		Changed the forcing of events in the cases of exception or invalid data.
--///		Now an event is only send once with the same exception and only once
--///		as long as the data quality stays invalid.
--///		
--///		Revision 1.10  2007/02/16 10:40:57  taurel
--///		- Implementing a new types of event on the Attribute configuration
--///		
--///		Revision 1.9  2006/05/18 14:29:12  jensmeyer
--///		Changed the handling of the event period for periodic and archiving events.
--///		The event period is now stored as the configured value and no longer
--///		multilplied by the factor DELTA_PERIODIC.
--///		The calculation of the precision to fire periodic events has moved from
--///		the attribbute to the push methods in the event supplier.
--///		
--///		For event periods < 5000 ms a precision of 2% was kept, but for
--///		times < 5000 ms a fixed precision of 100 ms was added.
--///		This avoids periodic events with a long event period to be fired to early.
--///		
--///		Revision 1.8  2006/04/13 06:14:05  jensmeyer
--///		Added mutex variables to protect event related methods for accesses
--///		from different threads.
--///		
--///		Revision 1.7  2006/02/17 16:55:21  jensmeyer
--///		Corrections when porting to VC7 under windows
--///		
--///		Revision 1.6  2006/01/27 14:27:10  taurel
--///		- Fix a severe incompatibility problem introduced by all the modifs done for
--///		PY DS
--///		- Duplicate some EventSupplier class methods (instead of using template) in order to be able to generate Tango shared library on Suse 9.3
--///		
--///		Revision 1.5  2005/06/29 08:31:18  taurel
--///		- Last commit before release 5.2 ?
--///		
--///		Revision 1.4  2005/03/14 12:01:24  taurel
--///		- Fix bug in the event system for device server started with the -file option
--///		
--///		Revision 1.3  2005/03/14 09:49:29  taurel
--///		- Fix some bugs in filedatabase (Change in the data transferred between client and
--///		  server).
--///		- Fix bug in event re-connection
--///		- Add event support even for device server started with the -file command line option
--///		
--///		Revision 1.2  2005/01/13 08:29:06  taurel
--///		- Merge trunk with Release_5_0 from brach Release_5_branch
--///		
--///		Revision 1.1.2.2  2004/10/22 11:25:51  taurel
--///		Added warning alarm
--///		Change attribute config. It now includes alarm and event parameters
--///		Array attribute property now supported
--///		subscribe_event throws exception for change event if they are not correctly configured
--///		Change in the polling thread: The event heartbeat has its own work in the work list
--///		Also add some event_unregister
--///		Fix order in which classes are destructed
--///		Fix bug in asynchronous mode (PUSH_CALLBACK). The callback thread ate all the CPU
--///		Change in the CORBA info call for the device type
--///		
--///		Revision 1.1.2.1  2004/10/05 13:55:02  maxchiandone
--///		First upload for filedatabase.
--///		
--///		Revision 1.1  2004/07/07 07:59:20  taurel
--///		Added some files
- ///		
- ///
- ////////////////////////////////////////////////////////////////////////////////
-@@ -272,10 +63,10 @@ EventSupplier *EventSupplier::_instance = NULL;
- 
- 					   					   
- /************************************************************************/
--/*		       							*/		
--/* 			EventSupplier class 				*/
--/*			-------------------				*/
--/*		       							*/
-+/*		       															*/		
-+/* 			EventSupplier class 										*/
-+/*			-------------------											*/
-+/*		       															*/
- /************************************************************************/
- 
- 
-@@ -336,7 +127,8 @@ EventSupplier *EventSupplier::create(CORBA::ORB_var _orb,
- 		_event_supplier->fqdn_prefix = _event_supplier->fqdn_prefix + host_name + ':';
- 	else
- 		_event_supplier->fqdn_prefix = _event_supplier->fqdn_prefix + db->get_db_host() + ':' + db->get_db_port() + '/' ;
--	
-+	transform(_event_supplier->fqdn_prefix.begin(),_event_supplier->fqdn_prefix.end(),_event_supplier->fqdn_prefix.begin(),::tolower);	
-+
- 	return _event_supplier;
- }
- 
--- 
diff --git a/debian/patches/0007-upstream-fix-tango-db-start-during-init.patch b/debian/patches/0007-upstream-fix-tango-db-start-during-init.patch
deleted file mode 100644
index f8f2eac..0000000
--- a/debian/patches/0007-upstream-fix-tango-db-start-during-init.patch
+++ /dev/null
@@ -1,205 +0,0 @@
-From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric-Emmanuel=20PICCA?= <picca at debian.org>
-Date: Mon, 23 May 2011 15:11:08 +0200
-Subject: upstream fix tango-db start during init
-
-it seems thaht a bug in the tagno_admin forbit the database to restart during
-the init.d tango-db scripts. so import the upstream fix.
-This patch will be remove with the next upstream distribution.
----
- utils/tango_admin/anyoption.cpp   |   87 +++++++++++++++++++++++++++----------
- utils/tango_admin/anyoption.h     |    2 +-
- utils/tango_admin/tango_admin.cpp |   25 +++++++++-
- 3 files changed, 87 insertions(+), 27 deletions(-)
-
-diff --git a/utils/tango_admin/anyoption.cpp b/utils/tango_admin/anyoption.cpp
-index 74e554c..6920edd 100644
---- a/utils/tango_admin/anyoption.cpp
-+++ b/utils/tango_admin/anyoption.cpp
-@@ -1,4 +1,4 @@
--static const char *RcsId = "$Id: anyoption.cpp 15165 2010-10-14 13:06:29Z taurel $";
-+static const char *RcsId = "$Id: anyoption.cpp 16939 2011-05-23 07:08:32Z taurel $";
- 
- //+============================================================================
- //
-@@ -38,7 +38,7 @@ static const char *RcsId = "$Id: anyoption.cpp 15165 2010-10-14 13:06:29Z taurel
- // You should have received a copy of the GNU General Public License
- // along with Tango.  If not, see <http://www.gnu.org/licenses/>.
- //
--// $Revision: 15165 $
-+// $Revision: 16939 $
- //
- //-============================================================================
- 
-@@ -176,14 +176,32 @@ AnyOption::alloc()
- bool
- AnyOption::doubleOptStorage()
- {
--	options = (const char**)realloc( options,  
-+	const char **tmp_ptr;
-+	int *tmp_ptr_int;
-+	tmp_ptr = options;
-+	options = (const char**)realloc( tmp_ptr,  
- 			((2*max_options)+1) * sizeof( const char*) );
--	optiontype = (int*) realloc(  optiontype ,  
--			((2 * max_options)+1)* sizeof(int) );	
--	optionindex = (int*) realloc(  optionindex,  
--			((2 * max_options)+1) * sizeof(int) );	
--	if( options == NULL || optiontype == NULL || optionindex == NULL )
-+	if( options == NULL)
-+	{
-+		free(tmp_ptr);
-+		return false;
-+	}
-+	tmp_ptr_int = optiontype;
-+	optiontype = (int*) realloc(  tmp_ptr_int ,  
-+			((2 * max_options)+1)* sizeof(int) );
-+	if( optiontype == NULL)
-+	{
-+		free(tmp_ptr_int);
- 		return false;
-+	}
-+	tmp_ptr_int = optionindex;
-+	optionindex = (int*) realloc(  tmp_ptr_int,  
-+			((2 * max_options)+1) * sizeof(int) );
-+	if (optionindex == NULL)
-+	{
-+		free(tmp_ptr_int);
-+		return false;
-+	}
- 	/* init new storage */
- 	for( int i = max_options ; i < 2*max_options ; i++ ){
- 		options[i] = NULL;
-@@ -197,16 +215,32 @@ AnyOption::doubleOptStorage()
- bool
- AnyOption::doubleCharStorage()
- {
--	optionchars = (char*) realloc( optionchars,  
-+	char *tmp_ptr;
-+	int *tmp_ptr_int;
-+	tmp_ptr = optionchars;
-+	optionchars = (char*) realloc( tmp_ptr,  
- 			((2*max_char_options)+1)*sizeof(char) );
--	optchartype = (int*) realloc( optchartype,  
--			((2*max_char_options)+1)*sizeof(int) );	
--	optcharindex = (int*) realloc( optcharindex,  
--			((2*max_char_options)+1)*sizeof(int) );	
--	if( optionchars == NULL || 
--	    optchartype == NULL || 
--	    optcharindex == NULL )
-+	if( optionchars == NULL)
-+	{
-+		free(tmp_ptr);
-+		return false;
-+	}
-+	tmp_ptr_int = optchartype;
-+	optchartype = (int*) realloc( tmp_ptr_int,  
-+			((2*max_char_options)+1)*sizeof(int) );
-+	if (optchartype == NULL)
-+	{
-+		free(tmp_ptr_int);
- 		return false;
-+	}
-+	tmp_ptr_int = optcharindex;
-+	optcharindex = (int*) realloc( tmp_ptr_int,  
-+			((2*max_char_options)+1)*sizeof(int) );
-+	if (optcharindex == NULL)
-+	{
-+		free(tmp_ptr_int);
-+		return false;
-+	}
- 	/* init new storage */
- 	for( int i = max_char_options ; i < 2*max_char_options ; i++ ){
- 		optionchars[i] = '0';
-@@ -235,13 +269,20 @@ AnyOption::doubleUsageStorage()
- void
- AnyOption::cleanup()
- {
--	free (options);
--	free (optiontype);
--	free (optionindex);	
--	free (optionchars);
--	free (optchartype);
--	free (optcharindex);
--	free (usage);
-+	if (options != NULL)
-+		free (options);
-+	if (optiontype != NULL)
-+		free (optiontype);
-+	if (optionindex != NULL)
-+		free (optionindex);
-+	if (optionchars != NULL)
-+		free (optionchars);
-+	if (optchartype != NULL)
-+		free (optchartype);
-+	if (optcharindex != NULL)
-+		free (optcharindex);
-+	if (usage != NULL)
-+		free (usage);
- 	if( values != NULL )
- 		free (values);
- 	if( new_argv != NULL )
-diff --git a/utils/tango_admin/anyoption.h b/utils/tango_admin/anyoption.h
-index 5259259..2a5e0af 100644
---- a/utils/tango_admin/anyoption.h
-+++ b/utils/tango_admin/anyoption.h
-@@ -44,7 +44,7 @@
- #define UNKNOWN_TYPE 		5
- 
- #define DEFAULT_MAXOPTS 	10
--#define MAX_LONG_PREFIX_LENGTH 	2
-+#define MAX_LONG_PREFIX_LENGTH 	3
- 
- #define DEFAULT_MAXUSAGE	3
- #define DEFAULT_MAXHELP         10	
-diff --git a/utils/tango_admin/tango_admin.cpp b/utils/tango_admin/tango_admin.cpp
-index d1645b8..09f123d 100644
---- a/utils/tango_admin/tango_admin.cpp
-+++ b/utils/tango_admin/tango_admin.cpp
-@@ -1,4 +1,4 @@
--static const char *RcsId = "$Id: tango_admin.cpp 16195 2011-03-22 15:43:53Z taurel $";
-+static const char *RcsId = "$Id: tango_admin.cpp 16941 2011-05-23 07:27:48Z taurel $";
- 
- //+============================================================================
- //
-@@ -41,7 +41,7 @@ static const char *RcsId = "$Id: tango_admin.cpp 16195 2011-03-22 15:43:53Z taur
- // You should have received a copy of the GNU General Public License
- // along with Tango.  If not, see <http://www.gnu.org/licenses/>.
- //
--// $Revision: 16195 $
-+// $Revision: 16941 $
- //
- //-============================================================================
- 
-@@ -568,11 +568,30 @@ int ping_database(int nb_sec)
- 	else
- 		nb_loop = nb_sec << 1;
- 
-+
-+	struct timespec ts;
-+	ts.tv_sec = 0;
-+	ts.tv_nsec = 500000000;
-+
-+//
-+// First sleep for 1 sec before trying to access the db
-+// This was needed when ported to Natty (Ubuntu 11.04) in the
-+// tango-db startup script. Db process did not start if tango 
-+// admin starts pinging db device too early !!
-+//
-+
-+	if (nb_loop != 1)
-+	{
-+		ts.tv_sec = 1;
-+		ts.tv_nsec = 0;
-+
-+		nanosleep(&ts,NULL);
-+	}
-+
- //
- // re-try the call every 500 mS
- //
- 
--	struct timespec ts;
- 	ts.tv_sec = 0;
- 	ts.tv_nsec = 500000000;
- 
--- 
diff --git a/debian/patches/0008-feature-add-jpegmmx-option-to-configure-script.patch b/debian/patches/0008-feature-add-jpegmmx-option-to-configure-script.patch
deleted file mode 100644
index 509ef12..0000000
--- a/debian/patches/0008-feature-add-jpegmmx-option-to-configure-script.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at debian.org>
-Date: Sun, 31 Jul 2011 19:04:28 +0200
-Subject: feature add jpegmmx option to configure script
-
----
- configure.in                  |   47 ++++++++++------------------------------
- lib/cpp/log4tango/Makefile.am |    4 ++-
- 2 files changed, 15 insertions(+), 36 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index e3dd53a..cca35e0 100644
---- a/configure.in
-+++ b/configure.in
-@@ -323,46 +323,23 @@ dnl
- dnl Build the jpeg library compilation option
- dnl
- 
--JPEG_LIB_CXXFLAGS=-D_TANGO_LIB
--case $host_cpu in
--	*86 )
--	JPEG_LIB_CXXFLAGS="$JPEG_LIB_CXXFLAGS -DJPG_USE_ASM"
--	;;
--dnl	case $host_cpu in
--dnl		*64 )
--dnl		if test $enable_shared = no; then
--dnl			JPEG_LIB_CXXFLAGS="$JPEG_LIB_CXXFLAGS -D_64BITS"
--dnl		else
--dnl			JPEG_LIB_CXXFLAGS="-D_TANGO_LIB -D_64BITS"
--dnl		fi
--dnl		;;
--dnl	esac
--	* )
--	JPEG_LIB_CXXFLAGS="-D_TANGO_LIB -D_64BITS"
--    ;;
--esac
-+AC_ARG_ENABLE([jpegmmx],
-+	[AS_HELP_STRING([--disable-jpegmmx],
-+		[disable jpeg mmx optimization])],
-+	[],
-+	[enable_jpegmmx=yes])
- 
-+JPEG_LIB_CXXFLAGS="-D_TANGO_LIB"
- JPEG_MMX_LIB_CXXFLAGS="-D_TANGO_LIB"
-+
-+if test "x$enable_jpegmmx" != xno; then
- case $host_cpu in
--	*86 )
--	JPEG_MMX_LIB_CXXFLAGS="$JPEG_MMX_LIB_CXXFLAGS -mmmx -DJPG_USE_ASM"
--	;;
--dnl	case $host_cpu in
--dnl		*64 )
--dnl		if test $enable_shared = no; then
--dnl			JPEG_MMX_LIB_CXXFLAGS="$JPEG_MMX_LIB_CXXFLAGS -D_64BITS"
--dnl		else
--dnl			JPEG_MMX_LIB_CXXFLAGS="-D_TANGO_LIB -mmmx -D_64BITS"
--dnl		fi
--dnl		;;
--dnl	esac
--	powerpc )
--	JPEG_MMX_LIB_CXXFLAGS="-D_TANGO_LIB"
-+	i*86 )
-+		JPEG_LIB_CXXFLAGS+=" -DJPG_USE_ASM"
-+		JPEG_MMX_LIB_CXXFLAGS+=" -mmmx -DJPG_USE_ASM"
- 	;;
--	* )
--	JPEG_MMX_LIB_CXXFLAGS="-D_TANGO_LIB -D_64BITS"
--    ;;
- esac
-+fi
- 
- AC_SUBST(JPEG_LIB_CXXFLAGS)
- AC_SUBST(JPEG_MMX_LIB_CXXFLAGS)
-diff --git a/lib/cpp/log4tango/Makefile.am b/lib/cpp/log4tango/Makefile.am
-index e0231d5..3d0ea84 100644
---- a/lib/cpp/log4tango/Makefile.am
-+++ b/lib/cpp/log4tango/Makefile.am
-@@ -1,5 +1,7 @@
- SUBDIRS = config src include tests
- 
-+ACLOCAL_AMFLAGS = -I m4
-+
- if DOC
- SUBDIRS += doc
- endif
-@@ -20,7 +22,7 @@ EXTRA_DIST = log4tango.pc.in \
- 		m4/PETI_PEDANTIC_GCC.m4 \
- 		m4/AC_FUNC_SNPRINTF.m4 \
- 		m4/AC_C_INT64_T.m4
--		
-+
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = log4tango.pc		
- 
--- 
diff --git a/debian/patches/0009-upstream-fix-bug3339975.patch b/debian/patches/0009-upstream-fix-bug3339975.patch
deleted file mode 100644
index 60078b3..0000000
--- a/debian/patches/0009-upstream-fix-bug3339975.patch
+++ /dev/null
@@ -1,4214 +0,0 @@
-From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca at debian.org>
-Date: Fri, 21 Oct 2011 22:27:42 +0200
-Subject: upstream-fix-bug3339975
-
----
- lib/cpp/server/deviceclass.cpp |  348 ++++++++------
- lib/cpp/server/w_attribute.cpp | 1022 ++++++++++++++++++++++++----------------
- 2 files changed, 808 insertions(+), 562 deletions(-)
-
-diff --git a/lib/cpp/server/deviceclass.cpp b/lib/cpp/server/deviceclass.cpp
-index 9553d49..7ae5e24 100644
---- a/lib/cpp/server/deviceclass.cpp
-+++ b/lib/cpp/server/deviceclass.cpp
-@@ -1,4 +1,4 @@
--static const char *RcsId = "$Id: deviceclass.cpp 15556 2011-02-11 08:25:58Z taurel $\n$Name$";
-+static const char *RcsId = "$Id$\n$Name$";
- 
- //+============================================================================
- //
-@@ -24,16 +24,16 @@ static const char *RcsId = "$Id: deviceclass.cpp 15556 2011-02-11 08:25:58Z taur
- // it under the terms of the GNU Lesser General Public License as published by
- // the Free Software Foundation, either version 3 of the License, or
- // (at your option) any later version.
--// 
-+//
- // Tango is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- // GNU Lesser General Public License for more details.
--// 
-+//
- // You should have received a copy of the GNU Lesser General Public License
- // along with Tango.  If not, see <http://www.gnu.org/licenses/>.
- //
--// $Revision: 15556 $
-+// $Revision$
- //
- // $Log$
- // Revision 1.39  2011/01/10 14:39:27  taurel
-@@ -217,8 +217,8 @@ static void lower_cmd_name(string &cmd)
- //+----------------------------------------------------------------------------
- //
- // method :		DeviceClass::DeviceClass(string &s)
--// 
--// description :	DeviceClass constructor. Protected method which will 
-+//
-+// description :	DeviceClass constructor. Protected method which will
- //			be called automatically by the compiler.
- //
- //-----------------------------------------------------------------------------
-@@ -231,15 +231,15 @@ DeviceClass::DeviceClass(string &s):name(s)
- //
- 
- 	ext = new DeviceClassExt;
--	
-+
- //
- // Create the associated DbClass object
- //
- 
- 	db_class = new DbClass(name,Tango::Util::instance()->get_database());
--		
-+
- //
--// initialise command_list with State, Status and Init 
-+// initialise command_list with State, Status and Init
- //
- 
- 	try
-@@ -264,9 +264,9 @@ DeviceClass::DeviceClass(string &s):name(s)
- //
- // Retrieve basic class resource
- //
--	
-+
- 	get_class_system_resource();
--	
-+
- //
- // Create the multi class attribute object
- //
-@@ -278,13 +278,13 @@ DeviceClass::DeviceClass(string &s):name(s)
- //
- 
- 	type = DescNotSet;
--			
-+
- }
- 
- //+----------------------------------------------------------------------------
- //
- // method :		DeviceClass::get_class_system_resource(string &s)
--// 
-+//
- // description :	Method to retrieve some basic class resource(s)
- //			The resource to be retrived are :
- //				- The class doc URL
-@@ -303,7 +303,7 @@ void DeviceClass::get_class_system_resource()
- 	{
- 		Database *db = tg->get_database();
- 		DbData db_data;
--		
-+
- 		db_data.push_back(DbDatum("doc_url"));
- 		db_data.push_back(DbDatum("cvs_tag"));
- 		db_data.push_back(DbDatum("cvs_location"));
-@@ -322,22 +322,22 @@ void DeviceClass::get_class_system_resource()
- 					o.str(),
- 					(const char *)"DeviceClass::get_class_system_resource");
- 		}
--		
-+
- 		if (db_data[1].is_empty() == false)
- 			db_data[1] >> ext->cvs_tag;
- 		if (db_data[2].is_empty() == false)
- 			db_data[2] >> ext->cvs_location;
--		
-+
- //
- // Init allowed commands vector (in lowercase letters)
- //
--			
-+
- 		if (db_data[3].is_empty() == false)
- 		{
- 			db_data[3] >> allowed_cmds;
- 			for_each(allowed_cmds.begin(),allowed_cmds.end(),lower_cmd_name);
- 		}
--					
-+
- 		if (db_data[0].is_empty() == true)
- 		{
- 			cout4 << "doc_url property for class " << name << " is not defined in database" << endl;
-@@ -346,15 +346,15 @@ void DeviceClass::get_class_system_resource()
- 				db->get_class_property("Default",db_data,tg->get_db_cache());
- 			}
- 			catch (Tango::DevFailed &)
--			{			
-+			{
- 				TangoSys_OMemStream o;
- 				o << "Database error while trying to retrieve properties for class " << name.c_str() << ends;
--					
-+
- 				Except::throw_exception((const char *)"API_DatabaseAccess",
- 							o.str(),
- 							(const char *)"DeviceClass::get_class_system_resource");
--			}			
--			
-+			}
-+
- 			if (db_data[0].is_empty() == true)
- 			{
- 				doc_url = DefaultDocUrl;
-@@ -364,22 +364,22 @@ void DeviceClass::get_class_system_resource()
- 		}
- 		else
- 			db_data[0] >> doc_url;
--		
-+
- 	}
- 	else
- 	{
- 		doc_url = DefaultDocUrl;
--	}	
-+	}
- }
- 
- //+----------------------------------------------------------------------------
- //
- // method : 		DeviceClass::set_memorized_values()
--// 
-+//
- // description : 	Write the memorized attribute with the value
- //			stored in database
- //
--// in :			all : Flag set to true if memorized values must be 
-+// in :			all : Flag set to true if memorized values must be
- //			      applied to all class devices
- //			idx : Index of the device in the device_list vector
- //			      of the device for which memorized values must
-@@ -390,15 +390,15 @@ void DeviceClass::get_class_system_resource()
- void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- {
- 	cout4 << "Entering DeviceClass::set_memorized_values() method" << endl;
--	
-+
- 	short sh;
- 	Tango::DevVarShortArray sh_seq(1);
- 	sh_seq.length(1);
--						
-+
- 	Tango::DevLong lg;
- 	Tango::DevVarLongArray lg_seq(1);
- 	lg_seq.length(1);
--		
-+
- 	double db;
- 	Tango::DevVarDoubleArray db_seq(1);
- 	db_seq.length(1);
-@@ -410,11 +410,11 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 	float fl;
- 	Tango::DevVarFloatArray fl_seq(1);
- 	fl_seq.length(1);
--						
-+
- 	Tango::DevBoolean boo;
- 	Tango::DevVarBooleanArray boo_seq(1);
- 	boo_seq.length(1);
--		
-+
- 	Tango::DevUShort ush;
- 	Tango::DevVarUShortArray ush_seq(1);
- 	ush_seq.length(1);
-@@ -422,7 +422,19 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 	Tango::DevUChar uch;
- 	Tango::DevVarCharArray uch_seq(1);
- 	uch_seq.length(1);
--		
-+
-+	Tango::DevULong ulg;
-+	Tango::DevVarULongArray ulg_seq(1);
-+	ulg_seq.length(1);
-+
-+	Tango::DevLong64 lg64;
-+	Tango::DevVarLong64Array lg64_seq(1);
-+	lg64_seq.length(1);
-+
-+	Tango::DevULong64 ulg64;
-+	Tango::DevVarULong64Array ulg64_seq(1);
-+	ulg64_seq.length(1);
-+
- //
- // Set loop start and stop limits
- //
-@@ -438,7 +450,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 		start = idx;
- 		stop = idx + 1;
- 	}
--								
-+
- 	for (unsigned long i = start;i < stop;i++)
- 	{
- 
-@@ -449,29 +461,29 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 
- 		if (device_list[i]->get_dev_idl_version() < 3)
- 			continue;
--				
-+
- //
- // Get list of device writable attributes
- //
- 
- 		AttributeValueList att_val(10);
- 		vector<long> &att_list = device_list[i]->get_device_attr()->get_w_attr_list();
--		
-+
- 		long nb_wr = 0;
- 		for (unsigned long j = 0;j < att_list.size();j++)
- 		{
--						
-+
- 			WAttribute &att = device_list[i]->get_device_attr()->get_w_attr_by_ind(att_list[j]);
--			
-+
- 			if (att.is_memorized() == true)
- 			{
- 
- 				string &mem_value = att.get_mem_value();
--				if ((mem_value != MemNotUsed) || (from_init == true))
-+                if (mem_value != MemNotUsed)
- 				{
- 					nb_wr++;
- 					att_val.length(nb_wr);
--							
-+
- //
- // In order to not send
- // a new time the already memorized value into db, mark it as not memorized
-@@ -479,7 +491,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- //
- 
- 					att.set_memorized(false);
--					
-+
- //
- // The memorized value gotten from db is a string, we need to convert this string
- // to its real type before inserting it into an Any
-@@ -488,7 +500,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 					TangoSys_MemStream str;
- 					if (from_init == false)
- 						str << mem_value << ends;
--					
-+
- 					try
- 					{
- 						switch (att.get_data_type())
-@@ -502,7 +514,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 							}
- 							else
- 								att.get_write_value(sh);
--							
-+
- 							sh_seq[0] = sh;
- 							att_val[nb_wr - 1].value <<= sh_seq;
- 							break;
-@@ -516,7 +528,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 							}
- 							else
- 								att.get_write_value(lg);
--								
-+
- 							lg_seq[0] = lg;
- 							att_val[nb_wr - 1].value <<= lg_seq;
- 							break;
-@@ -530,7 +542,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 							}
- 							else
- 								att.get_write_value(db);
--							
-+
- 							db_seq[0] = db;
- 							att_val[nb_wr - 1].value <<= db_seq;
- 							break;
-@@ -539,7 +551,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 							if (from_init == false)
- 							{
- 								att.set_write_value(mem_value);
--							
-+
- 								str_seq[0] = CORBA::string_dup(mem_value.c_str());
- 							}
- 							else
-@@ -559,7 +571,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 							}
- 							else
- 								att.get_write_value(fl);
--								
-+
- 							fl_seq[0] = fl;
- 							att_val[nb_wr - 1].value <<= fl_seq;
- 							break;
-@@ -583,7 +595,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 							}
- 							else
- 								att.get_write_value(boo);
--							
-+
- 							boo_seq[0] = boo;
- 							att_val[nb_wr - 1].value <<= boo_seq;
- 							break;
-@@ -597,7 +609,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 							}
- 							else
- 								att.get_write_value(ush);
--								
-+
- 							ush_seq[0] = ush;
- 							att_val[nb_wr - 1].value <<= ush_seq;
- 							break;
-@@ -611,61 +623,103 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 							}
- 							else
- 								att.get_write_value(uch);
--								
-+
- 							uch_seq[0] = uch;
- 							att_val[nb_wr - 1].value <<= uch_seq;
- 							break;
-+
-+						case Tango::DEV_ULONG:
-+							if (from_init == false)
-+							{
-+								if (!(str >> ulg))
-+									throw_mem_value(device_list[i],att);
-+								att.set_write_value(ulg);
-+							}
-+							else
-+								att.get_write_value(ulg);
-+
-+							ulg_seq[0] = ulg;
-+							att_val[nb_wr - 1].value <<= ulg_seq;
-+							break;
-+
-+						case Tango::DEV_LONG64:
-+							if (from_init == false)
-+							{
-+								if (!(str >> lg64))
-+									throw_mem_value(device_list[i],att);
-+								att.set_write_value(lg64);
-+							}
-+							else
-+								att.get_write_value(lg64);
-+
-+							lg64_seq[0] = lg64;
-+							att_val[nb_wr - 1].value <<= lg64_seq;
-+							break;
-+
-+						case Tango::DEV_ULONG64:
-+							if (from_init == false)
-+							{
-+								if (!(str >> ulg64))
-+									throw_mem_value(device_list[i],att);
-+								att.set_write_value(ulg64);
-+							}
-+							else
-+								att.get_write_value(ulg64);
-+
-+							ulg64_seq[0] = ulg64;
-+							att_val[nb_wr - 1].value <<= ulg64_seq;
-+							break;
- 						}
- 
--//						
-+//
- // Check the initialisation flag for memorized attributes.
- // The the flag is false, do not add the element to the att_val
- // vector. This avoids a call to write the memorozied value to the attribute.
- //
--					
-+
- 					if ( att.is_memorized_init() == false )
--						{
-+                    {
- 						nb_wr--;
- 						att_val.length(nb_wr);
- 						// reset memorized flag
- 						att.set_memorized(true);
--						}
-+                    }
- 					else
--						{
-+                    {
- //
- // Init the AttributeValue structure
- //
--					
-+
- 						att_val[nb_wr - 1].name = CORBA::string_dup(att.get_name().c_str());
- 						att_val[nb_wr - 1].dim_x = 1;
--						att_val[nb_wr - 1].dim_y = 0;						
-+						att_val[nb_wr - 1].dim_y = 0;
- 						att_val[nb_wr - 1].quality = Tango::ATTR_VALID;
- 						}
- 					}
--						
-+
- 					catch (Tango::DevFailed &e)
- 					{
- 						cout3 << "Cannot configure setpoint value for memorized attribute " << att.get_name() << endl;
- 						Tango::Except::print_exception(e);
--						
-+
- 						nb_wr--;
- 						att_val.length(nb_wr);
- 						// reset memorized flag
- 						att.set_memorized(true);
--					}						
-+					}
- 				}
- 			}
- 		}
--			
--																	
-+
-+
- 		if (nb_wr != 0)
- 		{
--		
-+
- //
- // Write attribute values. Re-throw exception if any but reset memorized flags before the
- // re-throw.
- //
--			
-+
- 			try
- 			{
- 				cout4 << "Writing data for " << att_val.length() << " attribute(s) for device " << device_list[i]->get_name() << endl;
-@@ -686,7 +740,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 			catch (Tango::MultiDevFailed &e)
- 			{
- 				cout3 << "Cannot write setpoint(s) value for memorized attribute(s) " << device_list[i]->get_name() << endl;
--				
-+
- 				Tango::NamedDevFailedList e_list (e, device_list[i]->get_name(), (const char *)"DeviceClass::set_memorized_values()",
- 					       			(const char *)"API_AttributeFailed");
- 				Tango::Except::print_exception(e_list);
-@@ -700,7 +754,7 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 				//	       			(const char *)"DeviceClass::set_memorized_values()",
- 				//	       			(const char *)"API_AttributeFailed");
- 			}
--						
-+
- //
- // Reset memorized flags
- //
-@@ -714,13 +768,13 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- 	}
- 
- 	cout4 << "Leaving DeviceClass::set_memorized_values() method" << endl;
--	
-+
- }
- 
- //+----------------------------------------------------------------------------
- //
- // method : 		DeviceClass::throw_mem_value()
--// 
-+//
- // description : 	Write the memorized attribute with the value
- //			stored in database
- //
-@@ -729,13 +783,13 @@ void DeviceClass::set_memorized_values(bool all,long idx,bool from_init)
- void DeviceClass::throw_mem_value(DeviceImpl *dev,Attribute &att)
- {
- 	TangoSys_OMemStream o;
--	
-+
- 	o << "Memorized value for attribute ";
- 	o << att.get_name();
- 	o << " (device ";
- 	o << dev->get_name();
- 	o << ") is in an incorrect format !" << ends;
--	
-+
- 	Except::throw_exception((const char *)"API_AttrWrongMemValue",
- 				o.str(),
- 				(const char *)"DeviceClass::set_memorized_values");
-@@ -744,7 +798,7 @@ void DeviceClass::throw_mem_value(DeviceImpl *dev,Attribute &att)
- //+----------------------------------------------------------------------------
- //
- // method : 		DeviceClass::~DeviceClass(string &s)
--// 
-+//
- // description :	DeviceClass destructor.
- //
- //-----------------------------------------------------------------------------
-@@ -758,7 +812,7 @@ DeviceClass::~DeviceClass()
- //
- 
- 	delete db_class;
--		
-+
- //
- // Destroy the device list
- //
-@@ -771,8 +825,8 @@ DeviceClass::~DeviceClass()
- 
- 		unsigned long nb_dev = device_list.size();
- 		for (i = 0;i < nb_dev;i++)
--		{	
--				
-+		{
-+
- //
- // Clear vectors used to memorize info used to clean db
- // in case of devices with dyn attr removed during device
-@@ -787,21 +841,21 @@ DeviceClass::~DeviceClass()
- //
- // Delete device
- //
--					
-+
- 			delete_dev(0,tg,r_poa);
--					
-+
- //
- // Clean-up db (dyn attribute)
- //
--					
-+
- 
- 			if (tg->get_polled_dyn_attr_names().size() != 0)
--				tg->clean_attr_polled_prop();			
-+				tg->clean_attr_polled_prop();
- 			if (tg->get_all_dyn_attr_names().size() != 0)
- 				tg->clean_dyn_attr_prop();
- 
- 			vector<DeviceImpl *>::iterator it = device_list.begin();
--			device_list.erase(it);		
-+			device_list.erase(it);
- 		}
- 		device_list.clear();
- 		CORBA::release(r_poa);
-@@ -820,27 +874,27 @@ DeviceClass::~DeviceClass()
- //
- 
- 	delete class_attr;
--		
-+
- //
- // Unregister the class from signal handler
- //
- 
- 	DServerSignal::instance()->unregister_class_signal(this);
--	
-+
- //
- // Delete the class extension object
- //
- 
- 	delete ext;
--	
--	cout4 << "Leaving DeviceClass destructor for class " << name << endl;	
-+
-+	cout4 << "Leaving DeviceClass destructor for class " << name << endl;
- }
- 
- 
- //+----------------------------------------------------------------------------
- //
- // method : 		DeviceClass::delete_dev()
--// 
-+//
- // description :	delete a device from the class device list
- //
- //-----------------------------------------------------------------------------
-@@ -859,7 +913,7 @@ void DeviceClass::delete_dev(long idx,Tango::Util *tg,PortableServer::POA_ptr r_
- 	{
- 		device_list[idx]->stop_polling(false);
- 	}
--	
-+
- //
- // Deactivate the CORBA object
- //
-@@ -869,7 +923,7 @@ void DeviceClass::delete_dev(long idx,Tango::Util *tg,PortableServer::POA_ptr r_
- 
- 	if (exported_device == true)
- 		r_poa->deactivate_object(device_list[idx]->get_obj_id().in());
--			
-+
- //
- // Remove the servant.
- // For C++ device, this will be automatically done by the POA when the last executing call
-@@ -882,14 +936,14 @@ void DeviceClass::delete_dev(long idx,Tango::Util *tg,PortableServer::POA_ptr r_
- 		dev_3->delete_dev();
- 	}
- 
--	cout4 << "Leaving DeviceClass delete_dev" << endl;	
-+	cout4 << "Leaving DeviceClass delete_dev" << endl;
- }
- 
- 
- //+-------------------------------------------------------------------------
- //
- // method :		DeviceClass::register_signal
--// 
-+//
- // description :	Method to register a class on a signal. When the
- //			signal is sent to the process, the signal_handler
- //			method of this class will be executed
-@@ -905,7 +959,7 @@ void DeviceClass::register_signal(long signo)
- 	cout4 << "DeviceClass::register_signal() arrived for signal " << signo << endl;
- 
- 	DServerSignal::instance()->register_class_signal(signo,this);
--		
-+
- 	cout4 << "Leaving DeviceClass::register_signal method()" << endl;
- }
- #else
-@@ -914,7 +968,7 @@ void DeviceClass::register_signal(long signo,bool handler)
- 	cout4 << "DeviceClass::register_signal() arrived for signal " << signo << endl;
- 
- 	DServerSignal::instance()->register_class_signal(signo,handler,this);
--		
-+
- 	cout4 << "Leaving DeviceClass::register_signal method()" << endl;
- }
- #endif
-@@ -922,7 +976,7 @@ void DeviceClass::register_signal(long signo,bool handler)
- //+-------------------------------------------------------------------------
- //
- // method :		DeviceClass::unregister_signal
--// 
-+//
- // description :	Method to unregister a class on a signal.
- //
- // in : 		signo : The signal number
-@@ -935,14 +989,14 @@ void DeviceClass::unregister_signal(long signo)
- 	cout4 << "DeviceClass::unregister_signal() arrived for signal " << signo << endl;
- 
- 	DServerSignal::instance()->unregister_class_signal(signo,this);
--		
-+
- 	cout4 << "Leaving DeviceClass::unregister_signal method()" << endl;
- }
- 
- //+-------------------------------------------------------------------------
- //
- // method :		DeviceClass::signal_handler
--// 
-+//
- // description :	This is the signal handler for the class. This method
- //			is defined as virtual and therefore, can be redefined
- //			by DS programmers in their own classes derived from
-@@ -955,7 +1009,7 @@ void DeviceClass::unregister_signal(long signo)
- void DeviceClass::signal_handler(long signo)
- {
- 	cout4 << "DeviceClass::signal_handler() arrived for signal " << signo << endl;
--	
-+
- 	cout4 << "Leaving DeviceClass::signal_handler method()" << endl;
- }
- 
-@@ -963,8 +1017,8 @@ void DeviceClass::signal_handler(long signo)
- //+-------------------------------------------------------------------------
- //
- // method :		DeviceClass::export_device()
--// 
--// description :	This method exports a device to the outside world. 
-+//
-+// description :	This method exports a device to the outside world.
- //			This is done by sending its CORBA network parameter
- //			(mainly the IOR) to the Tango database
- //
-@@ -982,11 +1036,11 @@ void DeviceClass::export_device(DeviceImpl *dev,const char *corba_obj_name)
- 	cout4 << "DeviceClass::export_device() arrived" << endl;
- 
- 	Device_var d;
--		
-+
- 	if ((Tango::Util::_UseDb == true) && (Tango::Util::_FileDb == false))
- 	{
--			
--// 
-+
-+//
- // Activate the CORBA object incarnated by the dev C++ object
- // Also call _remove_ref to give POA the full ownership of servant
- //
-@@ -1020,11 +1074,11 @@ void DeviceClass::export_device(DeviceImpl *dev,const char *corba_obj_name)
- 	}
- 	else
- 	{
--	
-+
- //
- // For server started without db usage (Mostly the database server). In this case,
- // it is necessary to create our own CORBA object id and to bind it into the
--// OOC Boot Manager for access through a stringified object reference 
-+// OOC Boot Manager for access through a stringified object reference
- // constructed using the corbaloc style
- // The API will try to connect to device using lower case letters.
- // Register device in POA with lower case letters
-@@ -1050,13 +1104,13 @@ void DeviceClass::export_device(DeviceImpl *dev,const char *corba_obj_name)
- 						o.str(),
- 						(const char *)"DeviceClass::export_device");
- 		}
--		
-+
- 		d = dev->_this();
--		dev->set_obj_id(id);		
-+		dev->set_obj_id(id);
- 		dev->set_d_var(Tango::Device::_duplicate(d));
--		dev->_remove_ref();	
-+		dev->_remove_ref();
- 	}
--			
-+
- //
- // Prepare sent parameters and allocate mem for them
- //
-@@ -1064,13 +1118,13 @@ void DeviceClass::export_device(DeviceImpl *dev,const char *corba_obj_name)
- 	if ((Tango::Util::_UseDb == true) && (Tango::Util::_FileDb == false))
- 	{
- 		Tango::Util *tg = Tango::Util::instance();
--		CORBA::ORB_ptr orb_ptr = tg->get_orb(); 
--		
-+		CORBA::ORB_ptr orb_ptr = tg->get_orb();
-+
- 		char *s = orb_ptr->object_to_string(d);
- 		string ior_string(s);
- 
- 		Tango::DbDevExportInfo exp;
--			
-+
- 		exp.name = dev->get_name();
- 		exp.ior = ior_string;
- 		exp.host = tg->get_host_name();
-@@ -1082,7 +1136,7 @@ void DeviceClass::export_device(DeviceImpl *dev,const char *corba_obj_name)
- // We are still in the server starting phase. Therefore, the db timeout is still high (13 sec the 07/01/2011)
- // with 3 retries in case of timeout
- //
--		
-+
- 		try
- 		{
- 			tg->get_database()->export_device(exp);
-@@ -1094,17 +1148,17 @@ void DeviceClass::export_device(DeviceImpl *dev,const char *corba_obj_name)
- 			CORBA::string_free(s);
- 			throw;
- 		}
--		
-+
- 		CORBA::release(orb_ptr);
- 		CORBA::string_free(s);
- 	}
--	
-+
- //
- // Set the DeviceImpl exported flag to true
- //
- 
- 	dev->set_exported_flag(true);
--			
-+
- 	cout4 << "Leaving DeviceClass::export_device method()" << endl;
- }
- 
-@@ -1112,7 +1166,7 @@ void DeviceClass::export_device(DeviceImpl *dev,const char *corba_obj_name)
- //+----------------------------------------------------------------------------
- //
- // method :		DeviceClass::command_handler(string &s)
--// 
-+//
- // description :	Command handler which is called by Device
- //			when a command is received. It will check
- //			to see if the command is implemented. If
-@@ -1125,16 +1179,16 @@ void DeviceClass::export_device(DeviceImpl *dev,const char *corba_obj_name)
- //-----------------------------------------------------------------------------
- 
- CORBA::Any *DeviceClass::command_handler(DeviceImpl *device,string &command,const CORBA::Any &in_any)
--{	
-+{
- 	CORBA::Any *ret = NULL;
- 	vector<Command *>::iterator i_cmd;
--	
-+
- 	string command_lower(command);
- 
- 	cout4 << "Entering DeviceClass::command_handler() method" << endl;
- 
- 	transform(command_lower.begin(),command_lower.end(),command_lower.begin(),::tolower);
--	
-+
- 	for (i_cmd = command_list.begin();i_cmd < command_list.end();++i_cmd)
- 	{
- 		if ((*i_cmd)->get_lower_name() == command_lower)
-@@ -1170,20 +1224,20 @@ CORBA::Any *DeviceClass::command_handler(DeviceImpl *device,string &command,cons
- 
- 	if (i_cmd == command_list.end())
- 	{
--	
-+
- 		cout3 << "DeviceClass::command_handler(): command " << command << " not found" << endl;
- 
- 
- 		Command *def_cmd = get_default_command();
- 		if (def_cmd != NULL)
- 		{
--		
-+
- //
- // Set name in default command object
- //
- 
- 			def_cmd->set_name(command);
--					
-+
- //
- // Call the always executed method
- //
-@@ -1202,7 +1256,7 @@ CORBA::Any *DeviceClass::command_handler(DeviceImpl *device,string &command,cons
- 						o.str(),
- 						(const char *)"DeviceClass::command_handler");
- 			}
--	
-+
- //
- // Execute command
- //
-@@ -1212,9 +1266,9 @@ CORBA::Any *DeviceClass::command_handler(DeviceImpl *device,string &command,cons
- 		}
- 		else
- 		{
--		
--					
--//		
-+
-+
-+//
- // Throw an exception to client
- //
- 
-@@ -1226,8 +1280,8 @@ CORBA::Any *DeviceClass::command_handler(DeviceImpl *device,string &command,cons
- 					      (const char *)"DeviceClass::command_handler");
- 		}
- 	}
--	
--	cout4 << "Leaving DeviceClass::command_handler() method" << endl;	
-+
-+	cout4 << "Leaving DeviceClass::command_handler() method" << endl;
- 	return ret;
- }
- 
-@@ -1235,7 +1289,7 @@ CORBA::Any *DeviceClass::command_handler(DeviceImpl *device,string &command,cons
- //+----------------------------------------------------------------------------
- //
- // method :		DeviceClass::add_wiz_dev_prop()
--// 
-+//
- // description :	Method to add a device property definition for the
- //			device  wizard
- //
-@@ -1254,7 +1308,7 @@ void DeviceClass::add_wiz_dev_prop(string &p_name,string &desc,string &def)
- 
- 	string name_low = p_name;
- 	transform(name_low.begin(),name_low.end(),name_low.begin(),::tolower);
--	
-+
- //
- // Check that this property is not already in the vector
- //
-@@ -1267,7 +1321,7 @@ void DeviceClass::add_wiz_dev_prop(string &p_name,string &desc,string &def)
- 		if (tmp_name == name_low)
- 			break;
- 	}
--	
-+
- 	if (ite != wiz_dev_prop.end())
- 	{
- 		TangoSys_OMemStream o;
-@@ -1277,7 +1331,7 @@ void DeviceClass::add_wiz_dev_prop(string &p_name,string &desc,string &def)
- 					o.str(),
- 					(const char *)"DeviceClass::add_wiz_dev_prop");
- 	}
--	
-+
- //
- // Insert data in vector
- //
-@@ -1299,7 +1353,7 @@ void DeviceClass::add_wiz_dev_prop(string &p_name,string &desc)
- //+----------------------------------------------------------------------------
- //
- // method :		DeviceClass::add_wiz_class_prop()
--// 
-+//
- // description :	Method to add a class property definition for the
- //			device  wizard
- //
-@@ -1317,7 +1371,7 @@ void DeviceClass::add_wiz_class_prop(string &p_name,string &desc,string &def)
- 
- 	string name_low = p_name;
- 	transform(name_low.begin(),name_low.end(),name_low.begin(),::tolower);
--	
-+
- //
- // Check that this property is not already in the vector
- //
-@@ -1340,7 +1394,7 @@ void DeviceClass::add_wiz_class_prop(string &p_name,string &desc,string &def)
- 					o.str(),
- 					(const char *)"DeviceClass::add_wiz_dev_prop");
- 	}
--	
-+
- //
- // Insert data in vector
- //
-@@ -1360,7 +1414,7 @@ void DeviceClass::add_wiz_class_prop(string &p_name,string &desc)
- //+----------------------------------------------------------------------------
- //
- // method :		DeviceClass::device_destroyer
--// 
-+//
- // description :	Method to remove and delete a device from the running devices
- //					belonging to the Tango class
- //
-@@ -1370,27 +1424,27 @@ void DeviceClass::add_wiz_class_prop(string &p_name,string &desc)
- 
- void DeviceClass::device_destroyer(const string &dev_name)
- {
--	
-+
- //
- // Check that the class know this device
- //
--  
--  	unsigned long k;				
-+
-+  	unsigned long k;
-   	for (k = 0;k < device_list.size();k++)
-   	{
-   		if (device_list[k]->get_name() == dev_name)
-   			break;
-   	}
--  
-+
-   	if (k == device_list.size())
-   	{
- 		TangoSys_OMemStream o;
- 		o << "Device " << dev_name << " not in Tango class device list!" << ends;
--		
-+
-   		Tango::Except::throw_exception((const char *)"API_CantDestroyDevice",o.str(),
-   					       (const char *)"DeviceClass::device_destroyer");
-   	}
--	
-+
- //
- // Check if the device is polled
- // If yes, ask polling thread to stop polling it
-@@ -1400,20 +1454,20 @@ void DeviceClass::device_destroyer(const string &dev_name)
- 	{
- 		device_list[k]->stop_polling();
- 	}
--	
--			
-+
-+
- //
- // Delete the device
- //
-- 
-+
- 	Tango::Util *tg = Tango::Util::instance();
--	 			
-+
- 	PortableServer::POA_ptr r_poa = tg->get_poa();
- 	delete_dev(k,tg,r_poa);
- 	vector<DeviceImpl *>::iterator it = device_list.begin();
- 	it += k;
- 	device_list.erase(it);
--	CORBA::release(r_poa);  	  				
-+	CORBA::release(r_poa);
- }
- 
- void DeviceClass::device_destroyer(const char *dev_name)
-@@ -1425,8 +1479,8 @@ void DeviceClass::device_destroyer(const char *dev_name)
- //+----------------------------------------------------------------------------
- //
- // method :		DeviceClass::is_command_allowed
--// 
--// description :	Method to check if a command is allowed even if the device 
-+//
-+// description :	Method to check if a command is allowed even if the device
- //					is locked by another client. It follows the definition
- //					of the Tango control access system to define what is an
- //					allowed command
-@@ -1438,14 +1492,14 @@ void DeviceClass::device_destroyer(const char *dev_name)
- bool DeviceClass::is_command_allowed(const char *cmd)
- {
- 	bool ret = true;
--	
-+
- 	string tmp_cmd(cmd);
- 	transform(tmp_cmd.begin(),tmp_cmd.end(),tmp_cmd.begin(),::tolower);
- 
- 	vector<string>::iterator pos = find(allowed_cmds.begin(),allowed_cmds.end(),tmp_cmd);
- 	if (pos == allowed_cmds.end())
- 		ret = false;
--	
-+
- 	return ret;
- }
- 
-diff --git a/lib/cpp/server/w_attribute.cpp b/lib/cpp/server/w_attribute.cpp
-index 534d335..61b123a 100644
---- a/lib/cpp/server/w_attribute.cpp
-+++ b/lib/cpp/server/w_attribute.cpp
-@@ -1,4 +1,4 @@
--static const char *RcsId = "$Id: w_attribute.cpp 15556 2011-02-11 08:25:58Z taurel $\n$Name$";
-+static const char *RcsId = "$Id$\n$Name$";
- 
- //+============================================================================
- //
-@@ -25,16 +25,16 @@ static const char *RcsId = "$Id: w_attribute.cpp 15556 2011-02-11 08:25:58Z taur
- // it under the terms of the GNU Lesser General Public License as published by
- // the Free Software Foundation, either version 3 of the License, or
- // (at your option) any later version.
--// 
-+//
- // Tango is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- // GNU Lesser General Public License for more details.
--// 
-+//
- // You should have received a copy of the GNU Lesser General Public License
- // along with Tango.  If not, see <http://www.gnu.org/licenses/>.
- //
--// $Revision: 15556 $
-+// $Revision$
- //
- // $Log$
- // Revision 1.36  2010/10/05 08:19:24  taurel
-@@ -208,8 +208,8 @@ namespace Tango
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::WAttribute
--// 
--// description : 	constructor for the WAttribute class from the 
-+//
-+// description : 	constructor for the WAttribute class from the
- //			attribute property vector, its type and the device
- //			name
- //
-@@ -231,11 +231,11 @@ WAttribute::WAttribute(vector<AttrProperty> &prop_list,
- 
- 	w_ext = new WAttributeExt();
- 
--	
-+
- //
- // Init some data
- //
--	
-+
- 	short_val = old_short_val = 0;
- 	long_val = old_long_val = 0;
- 	double_val = old_double_val = 0.0;
-@@ -253,7 +253,7 @@ WAttribute::WAttribute(vector<AttrProperty> &prop_list,
- 	encoded_val.encoded_format = CORBA::string_dup("Not initialised");
- 	old_encoded_val.encoded_data.length(0);
- 	old_encoded_val.encoded_format = CORBA::string_dup("Not initialised");
--	
-+
- 	short_array_val.length(1);
- 	short_array_val[0] = 0;
- 	long_array_val.length(1);
-@@ -278,8 +278,8 @@ WAttribute::WAttribute(vector<AttrProperty> &prop_list,
- 	w_ext->ulong64_array_val[0] = 0;
- 	w_ext->state_array_val.length(1);
- 	w_ext->state_array_val[0] = Tango::UNKNOWN;
--	
--				
-+
-+
- 	short_ptr = &short_val;
- 	w_dim_x = 1;
- 	w_dim_y = 0;
-@@ -288,10 +288,10 @@ WAttribute::WAttribute(vector<AttrProperty> &prop_list,
- //
- // Init memorized field and eventually get the memorized value
- //
--	
-+
- 	set_memorized(tmp_attr.get_memorized());
- 	set_memorized_init(tmp_attr.get_memorized_init());
--	
-+
- 	if (is_memorized() == true)
- 	{
- 		try
-@@ -308,8 +308,8 @@ WAttribute::WAttribute(vector<AttrProperty> &prop_list,
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::~WAttribute
--// 
--// description : 	destructor for the WAttribute class 
-+//
-+// description : 	destructor for the WAttribute class
- //
- //--------------------------------------------------------------------------
- 
-@@ -326,7 +326,7 @@ WAttribute::~WAttribute()
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::set_rvalue
--// 
-+//
- // description : 	This method is used when a Writable attribute is
- //			set to set the value in the Attribute class. This
- //			is necessary for the read_attribute CORBA operation
-@@ -347,63 +347,77 @@ void WAttribute::set_rvalue()
- 		else
- 			set_value(const_cast<DevShort *>(short_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--		
-+
- 	case Tango::DEV_LONG:
- 		if (data_format == Tango::SCALAR)
- 			set_value(&long_val,1,0,false);
- 		else
- 			set_value(const_cast<DevLong *>(long_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--		
-+
- 	case Tango::DEV_LONG64:
- 		if (data_format == Tango::SCALAR)
- 			set_value(&w_ext->long64_val,1,0,false);
- 		else
- 			set_value(const_cast<DevLong64 *>(w_ext->long64_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--				
-+
- 	case Tango::DEV_DOUBLE:
- 		if (data_format == Tango::SCALAR)
- 			set_value(&double_val,1,0,false);
- 		else
- 			set_value(const_cast<DevDouble *>(double_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--		
-+
- 	case Tango::DEV_STRING:
- 		if (data_format == Tango::SCALAR)
- 			set_value(&str_val,1,0,false);
- 		else
- 			set_value(const_cast<DevString *>(str_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--		
-+
- 	case Tango::DEV_FLOAT:
- 		if (data_format == Tango::SCALAR)
- 			set_value(&float_val,1,0,false);
- 		else
- 			set_value(const_cast<DevFloat *>(float_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--		
-+
- 	case Tango::DEV_BOOLEAN:
- 		if (data_format == Tango::SCALAR)
- 			set_value(&boolean_val,1,0,false);
- 		else
- 			set_value(const_cast<DevBoolean *>(boolean_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--				
-+
- 	case Tango::DEV_USHORT:
- 		if (data_format == Tango::SCALAR)
- 			set_value(&ushort_val,1,0,false);
- 		else
- 			set_value(const_cast<DevUShort *>(ushort_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--		
-+
- 	case Tango::DEV_UCHAR:
- 		if (data_format == Tango::SCALAR)
- 			set_value(&uchar_val,1,0,false);
- 		else
- 			set_value(const_cast<DevUChar *>(uchar_array_val.get_buffer()),w_dim_x,w_dim_y,false);
- 		break;
--		
-+
-+	case Tango::DEV_ULONG:
-+		if (data_format == Tango::SCALAR)
-+			set_value(&w_ext->ulong_val,1,0,false);
-+		else
-+			set_value(const_cast<DevULong *>(w_ext->ulong_array_val.get_buffer()),w_dim_x,w_dim_y,false);
-+		break;
-+
-+	case Tango::DEV_ULONG64:
-+		if (data_format == Tango::SCALAR)
-+			set_value(&w_ext->ulong64_val,1,0,false);
-+		else
-+			set_value(const_cast<DevULong64 *>(w_ext->ulong64_array_val.get_buffer()),w_dim_x,w_dim_y,false);
-+		break;
-+
- 	case Tango::DEV_ENCODED:
- 		set_value(&encoded_val,1,0,false);
- 		break;
-@@ -413,7 +427,7 @@ void WAttribute::set_rvalue()
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::check_written_value
--// 
-+//
- // description : 	Check the value sent by the caller and copy incoming data
- //					for SCALAR attribute only
- //
-@@ -425,11 +439,11 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- {
- 	CORBA::ULong nb_data;
- 	unsigned long i;
--	
-+
- 	switch (data_type)
- 	{
- 	case Tango::DEV_SHORT :
--	
-+
- //
- // Check data type inside the any and data number
- //
-@@ -438,7 +452,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		if ((any >>= sh_ptr) == false)
- 		{
- 			TangoSys_OMemStream o;
--	
-+
- 			o << "Incompatible attribute type, expected type is : Tango::DevVarShortArray (even for single value)" << ends;
- 			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
- 					      o.str(),
-@@ -460,11 +474,11 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
- 		}
--		
--		
-+
-+
- //
- // Check the incoming value against min or max_value if needed
- //
-@@ -476,7 +490,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*sh_ptr)[i] < min_value.sh)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is below the minimum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -492,7 +506,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*sh_ptr)[i] > max_value.sh)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is above the maximum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -505,7 +519,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		short_ptr = sh_ptr->get_buffer();
- 		if (data_format == Tango::SCALAR)
- 		{
--			old_short_val = short_val;		
-+			old_short_val = short_val;
- 			short_val = (*sh_ptr)[0];
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -515,11 +529,11 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			w_dim_x = x;
- 			w_dim_y = y;
- 		}
--		
-+
- 		break;
--		
-+
- 	case Tango::DEV_LONG :
--	
-+
- //
- // Check data type inside the any
- //
-@@ -550,10 +564,10 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
- 		}
--		
-+
- //
- // Check the incoming value
- //
-@@ -565,7 +579,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*lg_ptr)[i] < min_value.lg)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is below the minimum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -581,7 +595,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*lg_ptr)[i] > max_value.lg)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is above the maximum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -594,7 +608,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		long_ptr = lg_ptr->get_buffer();
- 		if (data_format == Tango::SCALAR)
- 		{
--			old_long_val = long_val;		
-+			old_long_val = long_val;
- 			long_val = (*lg_ptr)[0];
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -606,10 +620,10 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		}
- 
- 		break;
--		
--		
-+
-+
- 	case Tango::DEV_LONG64 :
--	
-+
- //
- // Check data type inside the any
- //
-@@ -640,10 +654,10 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
- 		}
--		
-+
- //
- // Check the incoming value
- //
-@@ -655,7 +669,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*lg64_ptr)[i] < min_value.lg64)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is below the minimum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -671,7 +685,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*lg64_ptr)[i] > max_value.lg64)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is above the maximum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -684,7 +698,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		w_ext->long64_ptr = lg64_ptr->get_buffer();
- 		if (data_format == Tango::SCALAR)
- 		{
--			w_ext->old_long64_val = w_ext->long64_val;		
-+			w_ext->old_long64_val = w_ext->long64_val;
- 			w_ext->long64_val = (*lg64_ptr)[0];
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -696,9 +710,9 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		}
- 
- 		break;
--		
-+
- 	case Tango::DEV_DOUBLE :
--	
-+
- //
- // Check data type inside the any
- //
-@@ -707,7 +721,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		if ((any >>= db_ptr) == false)
- 		{
- 			TangoSys_OMemStream o;
--	
-+
- 			o << "Incompatible attribute type, expected type is : Tango::DevVarDoubleArray (even for single value)" << ends;
- 			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
- 					      o.str(),
-@@ -729,10 +743,10 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
- 		}
--				
-+
- //
- // Check the incoming value
- // First check for NaN, INF
-@@ -764,7 +778,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*db_ptr)[i] < min_value.db)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is below the minimum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -778,7 +792,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*db_ptr)[i] > max_value.db)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is above the maximum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -786,12 +800,12 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 						      (const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		}		
-+		}
- 
- 		double_ptr = db_ptr->get_buffer();
- 		if (data_format == Tango::SCALAR)
- 		{
--			old_double_val = double_val;		
-+			old_double_val = double_val;
- 			double_val = (*db_ptr)[0];
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -802,7 +816,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			w_dim_y = y;
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_STRING :
- 
- //
-@@ -813,7 +827,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		if ((any >>= string_ptr) == false)
- 		{
- 			TangoSys_OMemStream o;
--	
-+
- 			o << "Incompatible attribute type, expected type is : Tango::DevVarStringArray (even for single value)" << ends;
- 			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
- 					      o.str(),
-@@ -835,7 +849,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
- 		}
- 
-@@ -846,7 +860,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			CORBA::string_free(old_str_val);
- 			old_str_val = CORBA::string_dup(str_val);
- 			CORBA::string_free(str_val);
--			
-+
- 			str_val = CORBA::string_dup((*string_ptr)[0]);
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -855,11 +869,11 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		{
- 			w_dim_x = x;
- 			w_dim_y = y;
--		}			
-+		}
- 		break;
--		
-+
- 	case Tango::DEV_FLOAT :
--	
-+
- //
- // Check data type inside the any
- //
-@@ -868,7 +882,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		if ((any >>= fl_ptr) == false)
- 		{
- 			TangoSys_OMemStream o;
--	
-+
- 			o << "Incompatible attribute type, expected type is : Tango::DevVarFloatArray (even for single value)" << ends;
- 			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
- 					      o.str(),
-@@ -890,10 +904,10 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
- 		}
--				
-+
- //
- // Check the incoming value
- // First check for NaN, INF
-@@ -925,7 +939,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*fl_ptr)[i] < min_value.fl)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is below the minimum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -939,7 +953,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*fl_ptr)[i] > max_value.fl)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is above the maximum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -947,12 +961,12 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 						      (const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		}		
-+		}
- 
- 		float_ptr = fl_ptr->get_buffer();
- 		if (data_format == Tango::SCALAR)
- 		{
--			old_float_val = float_val;		
-+			old_float_val = float_val;
- 			float_val = (*fl_ptr)[0];
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -963,9 +977,9 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			w_dim_y = y;
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_USHORT :
--	
-+
- //
- // Check data type inside the any
- //
-@@ -974,7 +988,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		if ((any >>= ush_ptr) == false)
- 		{
- 			TangoSys_OMemStream o;
--	
-+
- 			o << "Incompatible attribute type, expected type is : Tango::DevVarUShortArray (even for single value)" << ends;
- 			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
- 					      o.str(),
-@@ -996,10 +1010,10 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
- 		}
--				
-+
- //
- // Check the incoming value
- //
-@@ -1011,7 +1025,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*ush_ptr)[i] < min_value.ush)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is below the minimum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -1027,7 +1041,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*ush_ptr)[i] > max_value.ush)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is above the maximum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -1035,12 +1049,12 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 						      (const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		}		
-+		}
- 
- 		ushort_ptr = ush_ptr->get_buffer();
- 		if (data_format == Tango::SCALAR)
- 		{
--			old_ushort_val = ushort_val;		
-+			old_ushort_val = ushort_val;
- 			ushort_val = (*ush_ptr)[0];
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -1051,9 +1065,9 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			w_dim_y = y;
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_UCHAR :
--	
-+
- //
- // Check data type inside the any
- //
-@@ -1062,7 +1076,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		if ((any >>= uch_ptr) == false)
- 		{
- 			TangoSys_OMemStream o;
--	
-+
- 			o << "Incompatible attribute type, expected type is : Tango::DevVarCharArray (even for single value)" << ends;
- 			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
- 					      o.str(),
-@@ -1084,10 +1098,10 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
- 		}
--				
-+
- //
- // Check the incoming value
- //
-@@ -1099,7 +1113,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*uch_ptr)[i] < min_value.uch)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is below the minimum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -1115,7 +1129,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 				if ((*uch_ptr)[i] > max_value.uch)
- 				{
- 					TangoSys_OMemStream o;
--	
-+
- 					o << "Set value for attribute " << name;
- 					o << " is above the maximum authorized (at least element " << i << ")" << ends;
- 					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-@@ -1123,12 +1137,12 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 						      (const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		}		
-+		}
- 
- 		uchar_ptr = uch_ptr->get_buffer();
- 		if (data_format == Tango::SCALAR)
- 		{
--			old_uchar_val = uchar_val;		
-+			old_uchar_val = uchar_val;
- 			uchar_val = (*uch_ptr)[0];
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -1139,9 +1153,187 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			w_dim_y = y;
- 		}
- 		break;
--		
-+
-+	case Tango::DEV_ULONG :
-+
-+//
-+// Check data type inside the any
-+//
-+
-+		const Tango::DevVarULongArray *ulo_ptr;
-+		if ((any >>= ulo_ptr) == false)
-+		{
-+			TangoSys_OMemStream o;
-+
-+			o << "Incompatible attribute type, expected type is : Tango::DevVarULongArray (even for single value)" << ends;
-+			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
-+					      o.str(),
-+					      (const char *)"WAttribute::check_written_value()");
-+		}
-+		nb_data = ulo_ptr->length();
-+		if (y == 0)
-+		{
-+			if (nb_data != x)
-+			{
-+				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
-+					        (const char *)"Incorrect data number",
-+					        (const char *)"WAttribute::check_written_value()");
-+			}
-+		}
-+		else
-+		{
-+			if (nb_data != (x * y))
-+			{
-+				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
-+					        (const char *)"Incorrect data number",
-+					        (const char *)"WAttribute::check_written_value()");
-+			}
-+		}
-+
-+//
-+// Check the incoming value
-+//
-+
-+		if (check_min_value == true)
-+		{
-+			for (i = 0;i < nb_data;i++)
-+			{
-+				if ((*ulo_ptr)[i] < min_value.ulg)
-+				{
-+					TangoSys_OMemStream o;
-+
-+					o << "Set value for attribute " << name;
-+					o << " is below the minimum authorized (at least element " << i << ")" << ends;
-+					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-+						      o.str(),
-+						      (const char *)"WAttribute::check_written_value()");
-+				}
-+			}
-+		}
-+		if (check_max_value == true)
-+		{
-+			for (i = 0;i < nb_data;i++)
-+			{
-+				if ((*ulo_ptr)[i] > max_value.ulg)
-+				{
-+					TangoSys_OMemStream o;
-+
-+					o << "Set value for attribute " << name;
-+					o << " is above the maximum authorized (at least element " << i << ")" << ends;
-+					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-+						      o.str(),
-+						      (const char *)"WAttribute::check_written_value()");
-+				}
-+			}
-+		}
-+
-+		w_ext->ulong_ptr = ulo_ptr->get_buffer();
-+		if (data_format == Tango::SCALAR)
-+		{
-+			w_ext->old_ulong_val = w_ext->ulong_val;
-+			w_ext->ulong_val = (*ulo_ptr)[0];
-+			w_dim_x = 1;
-+			w_dim_y = 0;
-+		}
-+		else
-+		{
-+			w_dim_x = x;
-+			w_dim_y = y;
-+		}
-+		break;
-+
-+	case Tango::DEV_ULONG64 :
-+
-+//
-+// Check data type inside the any
-+//
-+
-+		const Tango::DevVarULong64Array *ulg64_ptr;
-+		if ((any >>= ulg64_ptr) == false)
-+		{
-+			TangoSys_OMemStream o;
-+
-+			o << "Incompatible attribute type, expected type is : Tango::DevVarULong64Array (even for single value)" << ends;
-+			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
-+					      o.str(),
-+					      (const char *)"WAttribute::check_written_value()");
-+		}
-+		nb_data = ulg64_ptr->length();
-+		if (y == 0)
-+		{
-+			if (nb_data != x)
-+			{
-+				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
-+					        (const char *)"Incorrect data number",
-+					        (const char *)"WAttribute::check_written_value()");
-+			}
-+		}
-+		else
-+		{
-+			if (nb_data != (x * y))
-+			{
-+				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
-+					        (const char *)"Incorrect data number",
-+					        (const char *)"WAttribute::check_written_value()");
-+			}
-+		}
-+
-+//
-+// Check the incoming value
-+//
-+
-+		if (check_min_value == true)
-+		{
-+			for (i = 0;i < nb_data;i++)
-+			{
-+				if ((*ulg64_ptr)[i] < min_value.ulg64)
-+				{
-+					TangoSys_OMemStream o;
-+
-+					o << "Set value for attribute " << name;
-+					o << " is below the minimum authorized (at least element " << i << ")" << ends;
-+					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-+						      o.str(),
-+						      (const char *)"WAttribute::check_written_value()");
-+				}
-+			}
-+		}
-+		if (check_max_value == true)
-+		{
-+			for (i = 0;i < nb_data;i++)
-+			{
-+				if ((*ulg64_ptr)[i] > max_value.ulg64)
-+				{
-+					TangoSys_OMemStream o;
-+
-+					o << "Set value for attribute " << name;
-+					o << " is above the maximum authorized (at least element " << i << ")" << ends;
-+					Except::throw_exception((const char *)"API_WAttrOutsideLimit",
-+						      o.str(),
-+						      (const char *)"WAttribute::check_written_value()");
-+				}
-+			}
-+		}
-+
-+		w_ext->ulong64_ptr = ulg64_ptr->get_buffer();
-+		if (data_format == Tango::SCALAR)
-+		{
-+			w_ext->old_ulong64_val = w_ext->ulong64_val;
-+			w_ext->ulong64_val = (*ulg64_ptr)[0];
-+			w_dim_x = 1;
-+			w_dim_y = 0;
-+		}
-+		else
-+		{
-+			w_dim_x = x;
-+			w_dim_y = y;
-+		}
-+
-+		break;
-+
-+
- 	case Tango::DEV_BOOLEAN :
--	
-+
- //
- // Check data type inside the any
- //
-@@ -1150,7 +1342,7 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 		if ((any >>= boo_ptr) == false)
- 		{
- 			TangoSys_OMemStream o;
--	
-+
- 			o << "Incompatible attribute type, expected type is : Tango::DevVarBooleanArray (even for single value)" << ends;
- 			Except::throw_exception((const char *)"API_IncompatibleAttrDataType",
- 					      o.str(),
-@@ -1172,14 +1364,14 @@ void WAttribute::check_written_value(const CORBA::Any &any,unsigned long x,unsig
- 			{
- 				Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        (const char *)"Incorrect data number",
--					        (const char *)"WAttribute::check_written_value()");			
-+					        (const char *)"WAttribute::check_written_value()");
- 			}
--		}	
-+		}
- 
- 		boolean_ptr = boo_ptr->get_buffer();
- 		if (data_format == Tango::SCALAR)
- 		{
--			old_boolean_val = boolean_val;		
-+			old_boolean_val = boolean_val;
- 			boolean_val = (*boo_ptr)[0];
- 			w_dim_x = 1;
- 			w_dim_y = 0;
-@@ -1202,7 +1394,7 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 	{
- 	case Tango::DEV_SHORT :
- 		{
--	
-+
- //
- // Check data type inside the union and data number
- //
-@@ -1234,11 +1426,11 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		
--		
-+
-+
- //
- // Check the incoming value against min or max_value if needed
- //
-@@ -1279,7 +1471,7 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			short_ptr = sh_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				old_short_val = short_val;		
-+				old_short_val = short_val;
- 				short_val = sh_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -1293,7 +1485,7 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 		break;
- 
- 	case Tango::DEV_LONG :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -1324,10 +1516,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		
-+
- //
- // Check the incoming value
- //
-@@ -1368,7 +1560,7 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			long_ptr = lg_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				old_long_val = long_val;		
-+				old_long_val = long_val;
- 				long_val = lg_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -1380,10 +1572,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
--		
-+
-+
- 	case Tango::DEV_LONG64 :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -1414,10 +1606,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		
-+
- //
- // Check the incoming value
- //
-@@ -1458,7 +1650,7 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			w_ext->long64_ptr = lg64_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				w_ext->old_long64_val = w_ext->long64_val;		
-+				w_ext->old_long64_val = w_ext->long64_val;
- 				w_ext->long64_val = lg64_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -1470,9 +1662,9 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_DOUBLE :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -1503,10 +1695,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--				
-+
- //
- // Check the incoming value
- // First check for NaN, INF
-@@ -1560,12 +1752,12 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}		
-+			}
- 
- 			double_ptr = db_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				old_double_val = double_val;		
-+				old_double_val = double_val;
- 				double_val = db_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -1577,7 +1769,7 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_STRING :
- 		{
- //
-@@ -1610,7 +1802,7 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
- 
-@@ -1631,11 +1823,11 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				w_dim_x = x;
- 				w_dim_y = y;
- 			}
--		}		
-+		}
- 		break;
--		
-+
- 	case Tango::DEV_FLOAT :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -1666,10 +1858,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--				
-+
- //
- // Check the incoming value
- // First check for NaN, INF
-@@ -1723,12 +1915,12 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}		
-+			}
- 
- 			float_ptr = fl_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				old_float_val = float_val;		
-+				old_float_val = float_val;
- 				float_val = fl_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -1740,9 +1932,9 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_USHORT :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -1773,10 +1965,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--				
-+
- //
- // Check the incoming value
- //
-@@ -1812,12 +2004,12 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}		
-+			}
- 
- 			ushort_ptr = ush_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				old_ushort_val = ushort_val;		
-+				old_ushort_val = ushort_val;
- 				ushort_val = ush_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -1829,9 +2021,9 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_UCHAR :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -1862,10 +2054,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--				
-+
- //
- // Check the incoming value
- //
-@@ -1901,12 +2093,12 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}		
-+			}
- 
- 			uchar_ptr = uch_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				old_uchar_val = uchar_val;		
-+				old_uchar_val = uchar_val;
- 				uchar_val = uch_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -1918,9 +2110,9 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_ULONG :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -1951,10 +2143,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--				
-+
- //
- // Check the incoming value
- //
-@@ -1990,12 +2182,12 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}		
-+			}
- 
- 			w_ext->ulong_ptr = ulo_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				w_ext->old_ulong_val = w_ext->ulong_val;		
-+				w_ext->old_ulong_val = w_ext->ulong_val;
- 				w_ext->ulong_val = ulo_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -2007,9 +2199,9 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_ULONG64 :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -2040,10 +2232,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--				
-+
- //
- // Check the incoming value
- //
-@@ -2079,12 +2271,12 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}		
-+			}
- 
- 			w_ext->ulong64_ptr = ulo64_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				w_ext->old_ulong64_val = w_ext->ulong64_val;		
-+				w_ext->old_ulong64_val = w_ext->ulong64_val;
- 				w_ext->ulong64_val = ulo64_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -2096,9 +2288,9 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_STATE :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -2129,10 +2321,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--				
-+
- //
- // Check the incoming value
- //
-@@ -2168,12 +2360,12 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 						    	  (const char *)"WAttribute::check_written_value()");
- 					}
- 				}
--			}		
-+			}
- 
- 			w_ext->state_ptr = sta_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				w_ext->old_dev_state_val = w_ext->dev_state_val;		
-+				w_ext->old_dev_state_val = w_ext->dev_state_val;
- 				w_ext->dev_state_val = sta_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -2185,9 +2377,9 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_BOOLEAN :
--		{	
-+		{
- //
- // Check data type inside the union
- //
-@@ -2218,14 +2410,14 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        	(const char *)"Incorrect data number",
--					        	(const char *)"WAttribute::check_written_value()");			
-+					        	(const char *)"WAttribute::check_written_value()");
- 				}
--			}	
-+			}
- 
- 			boolean_ptr = boo_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				old_boolean_val = boolean_val;		
-+				old_boolean_val = boolean_val;
- 				boolean_val = boo_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -2237,9 +2429,9 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			}
- 		}
- 		break;
--		
-+
- 	case Tango::DEV_ENCODED :
--		{	
-+		{
- 			if (att_union._d() != ATT_ENCODED)
- 			{
- 				TangoSys_OMemStream o;
-@@ -2267,10 +2459,10 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 				{
- 					Except::throw_exception((const char *)"API_AttrIncorrectDataNumber",
- 					        		(const char *)"Incorrect data number",
--					        		(const char *)"WAttribute::check_written_value()");			
-+					        		(const char *)"WAttribute::check_written_value()");
- 				}
- 			}
--		
-+
- //
- // Check the incoming value against min or max_value if needed
- //
-@@ -2320,7 +2512,7 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 			encoded_ptr = enc_seq.get_buffer();
- 			if (data_format == Tango::SCALAR)
- 			{
--				old_encoded_val = encoded_val;		
-+				old_encoded_val = encoded_val;
- 				encoded_val = enc_seq[0];
- 				w_dim_x = 1;
- 				w_dim_y = 0;
-@@ -2333,13 +2525,13 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- 		}
- 		break;
- 	}
--		
-+
- }
- 
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::get_write_value_length
--// 
-+//
- // description : 	Returm to the caller the length of the new value to
- //			be written into the attribute
- //
-@@ -2348,14 +2540,14 @@ void WAttribute::check_written_value(const Tango::AttrValUnion &att_union,unsign
- long WAttribute::get_write_value_length()
- {
- 	long ret_val;
--	
-+
- 	if (data_format == Tango::SCALAR)
- 		ret_val = 1;
- 	else if (data_format == Tango::SPECTRUM)
- 		ret_val = w_dim_x;
- 	else
- 		ret_val = w_dim_x * w_dim_y;
--	
-+
- 	return ret_val;
- }
- 
-@@ -2363,9 +2555,9 @@ long WAttribute::get_write_value_length()
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::set_write_value() methods
--// 
-+//
- // description : 	Set the attribute internal value.
--//			There are different methods according to the 
-+//			There are different methods according to the
- //			attribute data type and the attribute type (scalar,
- //       spectrum or image)
- //
-@@ -2384,13 +2576,13 @@ void WAttribute::set_write_value(Tango::DevShort val)
- 
- 	check_written_value(tmp_any,1,0);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- void WAttribute::set_write_value(Tango::DevShort *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2436,7 +2628,7 @@ void WAttribute::set_write_value(Tango::DevLong val)
- void WAttribute::set_write_value(Tango::DevLong *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2454,7 +2646,7 @@ void WAttribute::set_write_value(Tango::DevLong *val, long x, long y)
- void WAttribute::set_write_value(vector<Tango::DevLong> &val, long x, long y)
- {
- 	Tango::DevVarLongArray tmp_seq(val.size(),val.size(),&val[0],false);
--		
-+
- 	CORBA::Any 	tmp_any;
- 	tmp_any <<= tmp_seq;
- 
-@@ -2471,8 +2663,8 @@ void WAttribute::set_write_value(Tango::DevLong64 val)
- 	tmp_seq.length(1);
- 	tmp_seq[0] = val;
- 
--	CORBA::Any tmp_any;		
--	tmp_any <<= tmp_seq;	
-+	CORBA::Any tmp_any;
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any,1,0);
- 	copy_data(tmp_any);
- 	set_user_set_write_value(true);
-@@ -2481,7 +2673,7 @@ void WAttribute::set_write_value(Tango::DevLong64 val)
- void WAttribute::set_write_value(Tango::DevLong64 *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2490,7 +2682,7 @@ void WAttribute::set_write_value(Tango::DevLong64 *val, long x, long y)
- 	Tango::DevVarLong64Array tmp_seq(nb_data, nb_data, val, false);
- 
- 	CORBA::Any 	tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
- 	set_user_set_write_value(true);
-@@ -2499,8 +2691,8 @@ void WAttribute::set_write_value(Tango::DevLong64 *val, long x, long y)
- void WAttribute::set_write_value(vector<Tango::DevLong64> &val, long x, long y)
- {
- 	Tango::DevVarLong64Array tmp_seq(val.size(),val.size(),&val[0],false);
--		
--	CORBA::Any 	tmp_any;		
-+
-+	CORBA::Any 	tmp_any;
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
-@@ -2525,7 +2717,7 @@ void WAttribute::set_write_value(Tango::DevDouble val)
- void WAttribute::set_write_value(Tango::DevDouble *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2544,11 +2736,11 @@ void WAttribute::set_write_value(vector<Tango::DevDouble> &val, long x, long y)
- {
- 	CORBA::Any 	tmp_any;
- 	Tango::DevVarDoubleArray tmp_seq(val.size(),val.size(),&val[0],false);
--		
-+
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- // DevString:
-@@ -2582,7 +2774,7 @@ void WAttribute::set_write_value(string &val)
- void WAttribute::set_write_value(Tango::DevString *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2591,22 +2783,22 @@ void WAttribute::set_write_value(Tango::DevString *val, long x, long y)
- 	Tango::DevVarStringArray tmp_seq(nb_data,nb_data,val,false);
- 
- 	CORBA::Any tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- void WAttribute::set_write_value(vector<string> &val, long x, long y)
- {
- 	Tango::DevVarStringArray tmp_seq;
- 	tmp_seq << val;
--		
-+
- 	CORBA::Any tmp_any;
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- // DevFloat:
-@@ -2627,7 +2819,7 @@ void WAttribute::set_write_value(Tango::DevFloat val)
- void WAttribute::set_write_value(Tango::DevFloat *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2638,18 +2830,18 @@ void WAttribute::set_write_value(Tango::DevFloat *val, long x, long y)
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- void WAttribute::set_write_value(vector<Tango::DevFloat> &val, long x, long y)
- {
- 	Tango::DevVarFloatArray tmp_seq(val.size(),val.size(),&val[0],false);
--		
-+
- 	CORBA::Any tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);		
-+	set_user_set_write_value(true);
- }
- 
- // DevBoolean:
-@@ -2670,7 +2862,7 @@ void WAttribute::set_write_value(Tango::DevBoolean val)
- void WAttribute::set_write_value(Tango::DevBoolean *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2679,22 +2871,22 @@ void WAttribute::set_write_value(Tango::DevBoolean *val, long x, long y)
- 	Tango::DevVarBooleanArray tmp_seq(nb_data,nb_data,val,false);
- 
- 	CORBA::Any tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- void WAttribute::set_write_value(vector<Tango::DevBoolean> &val, long x, long y)
- {
- 	Tango::DevVarBooleanArray tmp_seq;
- 	tmp_seq << val;
--		
-+
- 	CORBA::Any tmp_any;
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- // DevUShort:
-@@ -2706,16 +2898,16 @@ void WAttribute::set_write_value(Tango::DevUShort val)
- 	tmp_seq[0] = val;
- 
- 	CORBA::Any tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any,1,0);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- void WAttribute::set_write_value(Tango::DevUShort *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2734,7 +2926,7 @@ void WAttribute::set_write_value(vector<Tango::DevUShort> &val, long x, long y)
- {
- 	Tango::DevVarUShortArray tmp_seq(val.size(),val.size(),&val[0],false);
- 
--	CORBA::Any tmp_any;		
-+	CORBA::Any tmp_any;
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
-@@ -2759,7 +2951,7 @@ void WAttribute::set_write_value(Tango::DevUChar val)
- void WAttribute::set_write_value(Tango::DevUChar *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2777,12 +2969,12 @@ void WAttribute::set_write_value(Tango::DevUChar *val, long x, long y)
- void WAttribute::set_write_value(vector<Tango::DevUChar> &val, long x, long y)
- {
- 	Tango::DevVarUCharArray tmp_seq(val.size(),val.size(),&val[0],false);
--		
-+
- 	CORBA::Any tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- // DevULong:
-@@ -2803,7 +2995,7 @@ void WAttribute::set_write_value(Tango::DevULong val)
- void WAttribute::set_write_value(Tango::DevULong *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2812,7 +3004,7 @@ void WAttribute::set_write_value(Tango::DevULong *val, long x, long y)
- 	Tango::DevVarULongArray tmp_seq(nb_data,nb_data,val,false);
- 
- 	CORBA::Any tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
- 	set_user_set_write_value(true);
-@@ -2821,7 +3013,7 @@ void WAttribute::set_write_value(Tango::DevULong *val, long x, long y)
- void WAttribute::set_write_value(vector<Tango::DevULong> &val, long x, long y)
- {
- 	Tango::DevVarULongArray tmp_seq(val.size(),val.size(),&val[0],false);
--		
-+
- 	CORBA::Any tmp_any;
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
-@@ -2838,7 +3030,7 @@ void WAttribute::set_write_value(Tango::DevULong64 val)
- 	tmp_seq[0] = val;
- 
- 	CORBA::Any tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any,1,0);
- 	copy_data(tmp_any);
- 	set_user_set_write_value(true);
-@@ -2847,7 +3039,7 @@ void WAttribute::set_write_value(Tango::DevULong64 val)
- void WAttribute::set_write_value(Tango::DevULong64 *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2859,13 +3051,13 @@ void WAttribute::set_write_value(Tango::DevULong64 *val, long x, long y)
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- void WAttribute::set_write_value(vector<Tango::DevULong64> &val, long x, long y)
- {
- 	Tango::DevVarULong64Array tmp_seq(val.size(),val.size(),&val[0],false);
--		
-+
- 	CORBA::Any tmp_any;
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
-@@ -2882,7 +3074,7 @@ void WAttribute::set_write_value(Tango::DevState val)
- 	tmp_seq[0] = val;
- 
- 	CORBA::Any tmp_any;
--	tmp_any <<= tmp_seq;	
-+	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any,1,0);
- 	copy_data(tmp_any);
- 	set_user_set_write_value(true);
-@@ -2891,7 +3083,7 @@ void WAttribute::set_write_value(Tango::DevState val)
- void WAttribute::set_write_value(Tango::DevState *val, long x, long y)
- {
- 	long nb_data;
--	
-+
- 	if (y == 0)
- 		nb_data = x;
- 	else
-@@ -2903,14 +3095,14 @@ void WAttribute::set_write_value(Tango::DevState *val, long x, long y)
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
--	set_user_set_write_value(true);	
-+	set_user_set_write_value(true);
- }
- 
- void WAttribute::set_write_value(vector<Tango::DevState> &val, long x, long y)
- {
- 	Tango::DevVarStateArray tmp_seq(val.size(),val.size(),&val[0],false);
- 
--	CORBA::Any tmp_any;		
-+	CORBA::Any tmp_any;
- 	tmp_any <<= tmp_seq;
- 	check_written_value(tmp_any, x, y);
- 	copy_data(tmp_any);
-@@ -2934,7 +3126,7 @@ void WAttribute::set_write_value(Tango::DevEncoded *, TANGO_UNUSED(long x),TANGO
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::rollback
--// 
-+//
- // description : 	Reset the internal data to its value before the
- //			set_write_value method was applied (Useful in case of
- //			error in the set_write_value method)
-@@ -2948,48 +3140,48 @@ void WAttribute::rollback()
- 	case Tango::DEV_SHORT :
- 		short_val = old_short_val;
- 		break;
--		
-+
- 	case Tango::DEV_LONG :
- 		long_val = old_long_val;
- 		break;
--		
-+
- 	case Tango::DEV_LONG64 :
- 		w_ext->long64_val = w_ext->old_long64_val;
- 		break;
--		
-+
- 	case Tango::DEV_DOUBLE :
- 		double_val = old_double_val;
- 		break;
--		
-+
- 	case Tango::DEV_STRING :
- 		CORBA::string_free(str_val);
- 		str_val = CORBA::string_dup(old_str_val);
- 		break;
--		
-+
- 	case Tango::DEV_FLOAT :
- 		float_val = old_float_val;
- 		break;
--		
-+
- 	case Tango::DEV_BOOLEAN :
- 		boolean_val = old_boolean_val;
- 		break;
--		
-+
- 	case Tango::DEV_USHORT :
- 		double_val = old_double_val;
- 		break;
--		
-+
- 	case Tango::DEV_UCHAR :
- 		CORBA::string_free(str_val);
- 		break;
--		
-+
- 	case Tango::DEV_ULONG :
- 		w_ext->ulong_val = w_ext->old_ulong_val;
- 		break;
--		
-+
- 	case Tango::DEV_ULONG64 :
- 		w_ext->ulong64_val = w_ext->old_ulong64_val;
- 		break;
--		
-+
- 	case Tango::DEV_STATE :
- 		w_ext->dev_state_val = w_ext->old_dev_state_val;
- 		break;
-@@ -2999,7 +3191,7 @@ void WAttribute::rollback()
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::copy_data
--// 
-+//
- // description : 	Copy data into the attribute object in order to return
- //			them in case of a read on this attribute
- //
-@@ -3008,141 +3200,141 @@ void WAttribute::rollback()
- //--------------------------------------------------------------------------
- 
- void WAttribute::copy_data(const CORBA::Any &any)
--{	
-+{
- 	switch (data_type)
- 	{
- 	case Tango::DEV_SHORT :
- 		const Tango::DevVarShortArray *sh_ptr;
--		any >>= sh_ptr;	
--		short_array_val = *sh_ptr;	
-+		any >>= sh_ptr;
-+		short_array_val = *sh_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_LONG :
- 		const Tango::DevVarLongArray *lo_ptr;
- 		any >>= lo_ptr;
--		long_array_val = *lo_ptr;	
-+		long_array_val = *lo_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_LONG64 :
- 		const Tango::DevVarLong64Array *lo64_ptr;
- 		any >>= lo64_ptr;
--		w_ext->long64_array_val = *lo64_ptr;	
-+		w_ext->long64_array_val = *lo64_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_DOUBLE :
- 		const Tango::DevVarDoubleArray *db_ptr;
- 		any >>= db_ptr;
--		double_array_val = *db_ptr;	
-+		double_array_val = *db_ptr;
- 		break;
- 
- 	case Tango::DEV_STRING :
- 		const Tango::DevVarStringArray *tmp_str_ptr;
- 		any >>= tmp_str_ptr;
--		str_array_val = *tmp_str_ptr;	
-+		str_array_val = *tmp_str_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_FLOAT :
- 		const Tango::DevVarFloatArray *fl_ptr;
- 		any >>= fl_ptr;
--		float_array_val = *fl_ptr;	
-+		float_array_val = *fl_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_BOOLEAN :
- 		const Tango::DevVarBooleanArray *boo_ptr;
- 		any >>= boo_ptr;
--		boolean_array_val = *boo_ptr;	
-+		boolean_array_val = *boo_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_USHORT :
- 		const Tango::DevVarUShortArray *ush_ptr;
- 		any >>= ush_ptr;
--		ushort_array_val = *ush_ptr;	
-+		ushort_array_val = *ush_ptr;
- 		break;
- 
- 	case Tango::DEV_UCHAR :
- 		const Tango::DevVarCharArray *uch_ptr;
- 		any >>= uch_ptr;
--		uchar_array_val = *uch_ptr;	
-+		uchar_array_val = *uch_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_ULONG :
- 		const Tango::DevVarULongArray *ulo_ptr;
- 		any >>= ulo_ptr;
--		w_ext->ulong_array_val = *ulo_ptr;	
-+		w_ext->ulong_array_val = *ulo_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_ULONG64 :
- 		const Tango::DevVarULong64Array *ulo64_ptr;
- 		any >>= ulo64_ptr;
--		w_ext->ulong64_array_val = *ulo64_ptr;	
-+		w_ext->ulong64_array_val = *ulo64_ptr;
- 		break;
--		
-+
- 	case Tango::DEV_STATE :
- 		const Tango::DevVarStateArray *sta_ptr;
- 		any >>= sta_ptr;
--		w_ext->state_array_val = *sta_ptr;	
--		break;			
-+		w_ext->state_array_val = *sta_ptr;
-+		break;
- 	}
- }
- 
- 
- void WAttribute::copy_data(const Tango::AttrValUnion &the_union)
--{	
-+{
- 	switch (data_type)
- 	{
- 	case Tango::DEV_SHORT :
--		short_array_val = the_union.short_att_value();	
-+		short_array_val = the_union.short_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_LONG :
--		long_array_val = the_union.long_att_value();	
-+		long_array_val = the_union.long_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_LONG64 :
--		w_ext->long64_array_val = the_union.long64_att_value();	
-+		w_ext->long64_array_val = the_union.long64_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_DOUBLE :
--		double_array_val = the_union.double_att_value();	
-+		double_array_val = the_union.double_att_value();
- 		break;
- 
- 	case Tango::DEV_STRING :
--		str_array_val = the_union.string_att_value();	
-+		str_array_val = the_union.string_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_FLOAT :
--		float_array_val = the_union.float_att_value();	
-+		float_array_val = the_union.float_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_BOOLEAN :
--		boolean_array_val = the_union.bool_att_value();	
-+		boolean_array_val = the_union.bool_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_USHORT :
--		ushort_array_val = the_union.ushort_att_value();	
-+		ushort_array_val = the_union.ushort_att_value();
- 		break;
- 
- 	case Tango::DEV_UCHAR :
--		uchar_array_val = the_union.uchar_att_value();	
-+		uchar_array_val = the_union.uchar_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_ULONG :
--		w_ext->ulong_array_val = the_union.ulong_att_value();	
-+		w_ext->ulong_array_val = the_union.ulong_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_ULONG64 :
--		w_ext->ulong64_array_val = the_union.ulong64_att_value();	
-+		w_ext->ulong64_array_val = the_union.ulong64_att_value();
- 		break;
--		
-+
- 	case Tango::DEV_STATE :
--		w_ext->state_array_val = the_union.state_att_value();	
--		break;			
-+		w_ext->state_array_val = the_union.state_att_value();
-+		break;
- 	}
- }
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::set_written_date
--// 
-+//
- // description : 	Memorized when the attribute is written
- //
- //--------------------------------------------------------------------------
-@@ -3155,7 +3347,7 @@ void WAttribute::set_written_date()
- 
- 	write_date.tv_sec = (CORBA::Long)t.time;
- 	write_date.tv_usec = (CORBA::Long)(t.millitm * 1000);
--#else	
-+#else
- 	struct timezone tz;
- 	struct timeval tv;
- 	gettimeofday(&tv,&tz);
-@@ -3168,9 +3360,9 @@ void WAttribute::set_written_date()
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::check_rds_alarm
--// 
-+//
- // description : 	Check if the attribute is in read different from set
--//			alarm. 
-+//			alarm.
- //
- // This method returns true if the attribute has a read too different than the
- // the last set value. Otherwise, returns false.
-@@ -3187,7 +3379,7 @@ bool WAttribute::check_rds_alarm()
- 
- 	if (write_date.tv_sec == 0)
- 		return false;
--			
-+
- //
- // First, check if it is necessary to check attribute value
- // Give some time to the device to change its output
-@@ -3200,14 +3392,14 @@ bool WAttribute::check_rds_alarm()
- 
- 	tv.tv_sec = (CORBA::Long)t.time;
- 	tv.tv_usec = (CORBA::Long)(t.millitm * 1000);
--#else	
-+#else
- 	struct timezone tz;
- 	gettimeofday(&tv,&tz);
- #endif
- 
- 	long time_diff;
- 	COMPUTE_TIME_DIFF(time_diff,write_date,tv);
--	
-+
- 	if (time_diff >= delta_t)
- 	{
- 
-@@ -3216,7 +3408,7 @@ bool WAttribute::check_rds_alarm()
- //
- 
- 		long nb_written,nb_read,nb_data,i;
--		
-+
- 		switch (data_type)
- 		{
- 		case Tango::DEV_SHORT:
-@@ -3235,7 +3427,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_LONG:
- 			nb_written = long_array_val.length();
- 			nb_read = (data_format == Tango::SCALAR) ? 1 : value.lg_seq->length();
-@@ -3252,7 +3444,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_LONG64:
- 			nb_written = w_ext->long64_array_val.length();
- 			nb_read = (data_format == Tango::SCALAR) ? 1 : value.lg64_seq->length();
-@@ -3260,13 +3452,13 @@ bool WAttribute::check_rds_alarm()
- 			for (i = 0;i < nb_data;i++)
- 			{
- 				DevLong64 delta = (data_format == Tango::SCALAR) ? w_ext->long64_array_val[0] - get_tmp_scalar_long64()[0] : w_ext->long64_array_val[i] - (*value.lg64_seq)[i];
--				
-+
- 				DevLong64 abs_delta;
- 				if (delta < 0)
- 					abs_delta = -delta;
- 				else
- 					abs_delta = delta;
--					
-+
- 				if (abs_delta >= delta_val.lg64)
- 				{
- 					quality = Tango::ATTR_ALARM;
-@@ -3276,7 +3468,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_DOUBLE:
- 			nb_written = double_array_val.length();
- 			nb_read = (data_format == Tango::SCALAR) ? 1 : value.db_seq->length();
-@@ -3298,7 +3490,7 @@ bool WAttribute::check_rds_alarm()
- 						// send an alarm if only read or set value are NAN
- 						if ( !(_isnan(double_array_val[0]) && _isnan(tmp_db[0])) )
- 						{
--#endif						
-+#endif
- 							quality = Tango::ATTR_ALARM;
- 							alarm.set(rds);
- 							ret = true;
-@@ -3328,8 +3520,8 @@ bool WAttribute::check_rds_alarm()
- 						}
- 					}
- 				}
--				
--				
-+
-+
- 				double delta = (data_format == Tango::SCALAR) ? double_array_val[0] - tmp_db[0] : double_array_val[i] - (*value.db_seq)[i];
- 				if (fabs(delta) >= delta_val.db)
- 				{
-@@ -3340,7 +3532,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_FLOAT:
- 			nb_written = float_array_val.length();
- 			nb_read = (data_format == Tango::SCALAR) ? 1 : value.fl_seq->length();
-@@ -3392,7 +3584,7 @@ bool WAttribute::check_rds_alarm()
- 						}
- 					}
- 				}
--				
-+
- 				float delta = (data_format == Tango::SCALAR) ? float_array_val[0] - tmp_fl[0] : float_array_val[i] - (*value.fl_seq)[i];
- #if ((defined __SUNPRO_CC) || (defined _TG_WINDOWS_) || (defined GCC_SOLARIS))
- 				double delta_d = (double)delta;
-@@ -3408,7 +3600,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_USHORT:
- 			nb_written = ushort_array_val.length();
- 			nb_read = (data_format == Tango::SCALAR) ? 1 : value.ush_seq->length();
-@@ -3425,7 +3617,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_UCHAR:
- 			nb_written = uchar_array_val.length();
- 			nb_read = (data_format == Tango::SCALAR) ? 1 : value.cha_seq->length();
-@@ -3442,7 +3634,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_ULONG:
- 			nb_written = w_ext->ulong_array_val.length();
- 			nb_read = (data_format == Tango::SCALAR) ? 1 : value.ulg_seq->length();
-@@ -3459,7 +3651,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_ULONG64:
- 			nb_written = w_ext->ulong64_array_val.length();
- 			nb_read = (data_format == Tango::SCALAR) ? 1 : value.ulg64_seq->length();
-@@ -3467,13 +3659,13 @@ bool WAttribute::check_rds_alarm()
- 			for (i = 0;i < nb_data;i++)
- 			{
- 				DevLong64 delta = (data_format == Tango::SCALAR) ? w_ext->ulong64_array_val[0] - get_tmp_scalar_ulong64()[0] : w_ext->ulong64_array_val[i] - (*value.ulg64_seq)[i];
--				
-+
- 				DevULong64 abs_delta;
- 				if (delta < 0)
- 					abs_delta = -delta;
- 				else
- 					abs_delta = delta;
--					
-+
- 				if (abs_delta >= delta_val.ulg64)
- 				{
- 					quality = Tango::ATTR_ALARM;
-@@ -3483,7 +3675,7 @@ bool WAttribute::check_rds_alarm()
- 				}
- 			}
- 			break;
--			
-+
- 		case Tango::DEV_ENCODED:
- 			nb_written = ::strlen(encoded_val.encoded_format.in());
- 			nb_read = ::strlen((*value.enc_seq)[0].encoded_format.in());
-@@ -3501,7 +3693,7 @@ bool WAttribute::check_rds_alarm()
- 				ret = true;
- 				break;
- 			}
--			
-+
- 			nb_written = encoded_val.encoded_data.length();
- 			nb_read = (*value.enc_seq)[0].encoded_data.length();
- 			nb_data = (nb_written > nb_read) ? nb_read : nb_written;
-@@ -3519,16 +3711,16 @@ bool WAttribute::check_rds_alarm()
- 			break;
- 		}
- 	}
--	
-+
- 	return ret;
- }
- 
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::get_min_value
--// 
-+//
- // description : 	Get the attribute min_value ar throws an exception if
--//			the attribute does not have a minimum value set 
-+//			the attribute does not have a minimum value set
- //
- //--------------------------------------------------------------------------
- 
-@@ -3540,7 +3732,7 @@ void WAttribute::get_min_value(Tango::DevShort &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevShort",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3558,7 +3750,7 @@ void WAttribute::get_min_value(Tango::DevLong &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevLong",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3576,7 +3768,7 @@ void WAttribute::get_min_value(Tango::DevLong64 &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevLong64",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3594,7 +3786,7 @@ void WAttribute::get_min_value(Tango::DevDouble &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevDouble",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3612,7 +3804,7 @@ void WAttribute::get_min_value(Tango::DevFloat &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevFloat",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3630,7 +3822,7 @@ void WAttribute::get_min_value(Tango::DevUShort &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUShort",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3648,7 +3840,7 @@ void WAttribute::get_min_value(Tango::DevUChar &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUChar",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3666,7 +3858,7 @@ void WAttribute::get_min_value(Tango::DevULong &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevULong",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3684,7 +3876,7 @@ void WAttribute::get_min_value(Tango::DevULong64 &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUChar",
- 				      (const char *)"WAttribute::get_min_value()");
- 	}
--	
-+
- 	if (check_min_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3697,9 +3889,9 @@ void WAttribute::get_min_value(Tango::DevULong64 &val)
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::get_max_value
--// 
-+//
- // description : 	Get the attribute max_value ar throws an exception if
--//			the attribute does not have a maximum value set 
-+//			the attribute does not have a maximum value set
- //
- //--------------------------------------------------------------------------
- 
-@@ -3711,7 +3903,7 @@ void WAttribute::get_max_value(Tango::DevShort &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevShort",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3729,7 +3921,7 @@ void WAttribute::get_max_value(Tango::DevLong &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevLong",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3747,7 +3939,7 @@ void WAttribute::get_max_value(Tango::DevLong64 &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevLong64",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3765,7 +3957,7 @@ void WAttribute::get_max_value(Tango::DevDouble &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevDouble",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3783,7 +3975,7 @@ void WAttribute::get_max_value(Tango::DevFloat &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevFloat",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3801,7 +3993,7 @@ void WAttribute::get_max_value(Tango::DevUShort &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUShort",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3819,7 +4011,7 @@ void WAttribute::get_max_value(Tango::DevUChar &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUChar",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3837,7 +4029,7 @@ void WAttribute::get_max_value(Tango::DevULong &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevULong",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3855,7 +4047,7 @@ void WAttribute::get_max_value(Tango::DevULong64 &val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevULong64",
- 				      (const char *)"WAttribute::get_max_value()");
- 	}
--	
-+
- 	if (check_max_value == false)
- 	{
- 		Except::throw_exception((const char *)"API_AttrNotAllowed",
-@@ -3867,7 +4059,7 @@ void WAttribute::get_max_value(Tango::DevULong64 &val)
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::set_max_value
--// 
-+//
- // description : 	Set the attribute max_value
- //
- //--------------------------------------------------------------------------
-@@ -3887,14 +4079,14 @@ void WAttribute::set_max_value(Tango::DevDouble &new_val)
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	double old_max = max_value.db;
- 	max_value.db = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -3919,7 +4111,7 @@ void WAttribute::set_max_value(Tango::DevDouble &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -3935,21 +4127,21 @@ void WAttribute::set_max_value(Tango::DevShort &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevShort",
- 				      (const char *)"WAttribute::set_max_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	short old_max = max_value.sh;
- 	max_value.sh = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -3966,7 +4158,7 @@ void WAttribute::set_max_value(Tango::DevShort &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -3974,7 +4166,7 @@ void WAttribute::set_max_value(Tango::DevShort &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -3990,21 +4182,21 @@ void WAttribute::set_max_value(Tango::DevLong &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevLong",
- 				      (const char *)"WAttribute::set_max_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	long old_max = max_value.lg;
- 	max_value.lg = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4021,7 +4213,7 @@ void WAttribute::set_max_value(Tango::DevLong &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4029,7 +4221,7 @@ void WAttribute::set_max_value(Tango::DevLong &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4045,21 +4237,21 @@ void WAttribute::set_max_value(Tango::DevLong64 &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevLong64",
- 				      (const char *)"WAttribute::set_max_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	DevLong64 old_max = max_value.lg64;
- 	max_value.lg64 = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4076,7 +4268,7 @@ void WAttribute::set_max_value(Tango::DevLong64 &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4084,7 +4276,7 @@ void WAttribute::set_max_value(Tango::DevLong64 &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4101,21 +4293,21 @@ void WAttribute::set_max_value(Tango::DevFloat &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevFloat",
- 				      (const char *)"WAttribute::set_max_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	float old_max = max_value.fl;
- 	max_value.fl = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4132,7 +4324,7 @@ void WAttribute::set_max_value(Tango::DevFloat &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4140,7 +4332,7 @@ void WAttribute::set_max_value(Tango::DevFloat &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4156,21 +4348,21 @@ void WAttribute::set_max_value(Tango::DevUShort &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUShort",
- 				      (const char *)"WAttribute::set_max_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	unsigned short old_max = max_value.ush;
- 	max_value.ush = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4187,7 +4379,7 @@ void WAttribute::set_max_value(Tango::DevUShort &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4195,7 +4387,7 @@ void WAttribute::set_max_value(Tango::DevUShort &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4212,21 +4404,21 @@ void WAttribute::set_max_value(Tango::DevUChar &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUChar",
- 				      (const char *)"WAttribute::set_max_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	unsigned char old_max = max_value.uch;
- 	max_value.uch = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4251,7 +4443,7 @@ void WAttribute::set_max_value(Tango::DevUChar &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4267,21 +4459,21 @@ void WAttribute::set_max_value(Tango::DevULong &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevULong",
- 				      (const char *)"WAttribute::set_max_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	DevULong old_max = max_value.ulg;
- 	max_value.ulg = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4306,7 +4498,7 @@ void WAttribute::set_max_value(Tango::DevULong &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4322,21 +4514,21 @@ void WAttribute::set_max_value(Tango::DevULong64 &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevULong64",
- 				      (const char *)"WAttribute::set_max_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	DevULong64 old_max = max_value.ulg64;
- 	max_value.ulg64 = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4353,7 +4545,7 @@ void WAttribute::set_max_value(Tango::DevULong64 &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4361,7 +4553,7 @@ void WAttribute::set_max_value(Tango::DevULong64 &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	max_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4372,8 +4564,8 @@ void WAttribute::set_max_value(Tango::DevULong64 &new_val)
- //+-------------------------------------------------------------------------
- //
- // method : 		WAttribute::set_min_value
--// 
--// description : 	Set the attribute min_value 
-+//
-+// description : 	Set the attribute min_value
- //
- //--------------------------------------------------------------------------
- 
-@@ -4392,14 +4584,14 @@ void WAttribute::set_min_value(Tango::DevDouble &new_val)
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	double old_min = min_value.db;
- 	min_value.db = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4424,7 +4616,7 @@ void WAttribute::set_min_value(Tango::DevDouble &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	min_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4440,21 +4632,21 @@ void WAttribute::set_min_value(Tango::DevShort &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevShort",
- 				      (const char *)"WAttribute::set_min_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	short old_min = min_value.sh;
- 	min_value.sh = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4471,7 +4663,7 @@ void WAttribute::set_min_value(Tango::DevShort &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4479,7 +4671,7 @@ void WAttribute::set_min_value(Tango::DevShort &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	min_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4495,21 +4687,21 @@ void WAttribute::set_min_value(Tango::DevLong &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevLong",
- 				      (const char *)"WAttribute::set_min_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	DevLong old_min = min_value.lg;
- 	min_value.lg = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4526,7 +4718,7 @@ void WAttribute::set_min_value(Tango::DevLong &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4534,7 +4726,7 @@ void WAttribute::set_min_value(Tango::DevLong &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	min_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4550,21 +4742,21 @@ void WAttribute::set_min_value(Tango::DevLong64 &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevLong64",
- 				      (const char *)"WAttribute::set_min_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	DevLong64 old_min = min_value.lg64;
- 	min_value.lg64 = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4581,7 +4773,7 @@ void WAttribute::set_min_value(Tango::DevLong64 &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4589,7 +4781,7 @@ void WAttribute::set_min_value(Tango::DevLong64 &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	min_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4605,21 +4797,21 @@ void WAttribute::set_min_value(Tango::DevFloat &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevFloat",
- 				      (const char *)"WAttribute::set_min_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	float old_min = min_value.fl;
- 	min_value.fl = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4636,7 +4828,7 @@ void WAttribute::set_min_value(Tango::DevFloat &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4644,7 +4836,7 @@ void WAttribute::set_min_value(Tango::DevFloat &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	min_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4660,21 +4852,21 @@ void WAttribute::set_min_value(Tango::DevUShort &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUShort",
- 				      (const char *)"WAttribute::set_min_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	unsigned short old_min = min_value.ush;
- 	min_value.ush = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4691,7 +4883,7 @@ void WAttribute::set_min_value(Tango::DevUShort &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4699,7 +4891,7 @@ void WAttribute::set_min_value(Tango::DevUShort &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	min_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4716,21 +4908,21 @@ void WAttribute::set_min_value(Tango::DevUChar &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevUChar",
- 				      (const char *)"WAttribute::set_min_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	unsigned char old_min = min_value.uch;
- 	min_value.uch = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4771,21 +4963,21 @@ void WAttribute::set_min_value(Tango::DevULong &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevULong",
- 				      (const char *)"WAttribute::set_min_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	DevULong old_min = min_value.ulg;
- 	min_value.ulg = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4802,7 +4994,7 @@ void WAttribute::set_min_value(Tango::DevULong &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4810,7 +5002,7 @@ void WAttribute::set_min_value(Tango::DevULong &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	min_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
-@@ -4826,21 +5018,21 @@ void WAttribute::set_min_value(Tango::DevULong64 &new_val)
- 				      (const char *)"Incompatible attribute type, expected type is : Tango::DevULong64",
- 				      (const char *)"WAttribute::set_min_value()");
- 	}
--	
-+
- //
- // Get the monitor protecting device att config
- //
- 
- 	TangoMonitor &mon1 = get_att_device()->get_att_conf_monitor();
- 	AutoTangoMonitor sync1(&mon1);
--						
-+
- //
- // Store the new value locally
- //
- 
- 	DevULong64 old_min = min_value.ulg64;
- 	min_value.ulg64 = new_val;
--	
-+
- //
- // Then, update database
- //
-@@ -4857,7 +5049,7 @@ void WAttribute::set_min_value(Tango::DevULong64 &new_val)
- 			throw;
- 		}
- 	}
--	
-+
- //
- // Store new value as a string
- //
-@@ -4865,7 +5057,7 @@ void WAttribute::set_min_value(Tango::DevULong64 &new_val)
- 	TangoSys_MemStream str;
- 	str << new_val;
- 	min_value_str = str.str();
--	
-+
- //
- // Push a att conf event
- //
--- 
diff --git a/debian/patches/series b/debian/patches/series
index 0090d73..61680c6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,9 +1,4 @@
 0001-debian-fix_database_scripts.patch
 0002-debian-my.cnf.in.patch
 0003-debian-notify_daemon.patch
-0004-upstream-fix-bug3285674.patch
-0005-upstream-fix-bug3213730.patch
-0006-feature-forwarded-upstream-pkg-config-small-fixes.patch
-0007-upstream-fix-tango-db-start-during-init.patch
-0008-feature-add-jpegmmx-option-to-configure-script.patch
-0009-upstream-fix-bug3339975.patch
+0004-feature-forwarded-upstream-pkg-config-small-fixes.patch

-- 
TANGO distributed control system.



More information about the debian-science-commits mailing list