rpms/scim-pinyin/devel scim-pinyin-0.5.91-save-in-temp.patch, NONE, 1.1 scim-pinyin.spec, 1.41, 1.42

Huang Peng (phuang) fedora-extras-commits at redhat.com
Fri Nov 9 09:36:13 UTC 2007


Author: phuang

Update of /cvs/pkgs/rpms/scim-pinyin/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv10709

Modified Files:
	scim-pinyin.spec 
Added Files:
	scim-pinyin-0.5.91-save-in-temp.patch 
Log Message:
Save user data in temp files, and then overwrite old files to fix bug 237439.


scim-pinyin-0.5.91-save-in-temp.patch:

--- NEW FILE scim-pinyin-0.5.91-save-in-temp.patch ---
diff -up scim-pinyin-0.5.91/src/scim_pinyin_imengine.cpp.orig scim-pinyin-0.5.91/src/scim_pinyin_imengine.cpp
--- scim-pinyin-0.5.91/src/scim_pinyin_imengine.cpp.orig	2007-11-09 16:51:49.000000000 +0800
+++ scim-pinyin-0.5.91/src/scim_pinyin_imengine.cpp	2007-11-09 16:52:06.000000000 +0800
@@ -656,6 +656,11 @@ PinyinFactory::refresh ()
 void
 PinyinFactory::save_user_library ()
 {
+    String tmp_user_pinyin_table = m_user_pinyin_table + ".tmp";
+    String tmp_user_phrase_lib = m_user_phrase_lib + ".tmp";
+    String tmp_user_pinyin_phrase_lib = m_user_pinyin_phrase_lib + ".tmp";
+    String tmp_user_pinyin_phrase_index = m_user_pinyin_phrase_index + ".tmp";
+
     // First make the user data directory.
     if (access (m_user_data_directory.c_str (), R_OK | W_OK) != 0) {
         mkdir (m_user_data_directory.c_str (), S_IRUSR | S_IWUSR | S_IXUSR);
@@ -670,11 +675,23 @@ PinyinFactory::save_user_library ()
         lib->optimize_phrase_frequencies ();
     }
 
-    m_pinyin_global.save_pinyin_table (m_user_pinyin_table.c_str (), m_user_data_binary);
-    m_pinyin_global.save_user_phrase_lib (m_user_phrase_lib.c_str (),
-                                          m_user_pinyin_phrase_lib.c_str (),
-                                          m_user_pinyin_phrase_index.c_str (),
+    // save user data in tmp files
+    m_pinyin_global.save_pinyin_table (tmp_user_pinyin_table.c_str (), m_user_data_binary);
+    m_pinyin_global.save_user_phrase_lib (tmp_user_phrase_lib.c_str (),
+                                          tmp_user_pinyin_phrase_lib.c_str (),
+                                          tmp_user_pinyin_phrase_index.c_str (),
                                           m_user_data_binary);
+
+   // unlink old user data files, and rename tmp files.
+   unlink (m_user_pinyin_table.c_str ());
+   rename (tmp_user_pinyin_table.c_str (), m_user_pinyin_table.c_str ());
+   
+   unlink (m_user_phrase_lib.c_str ());
+   unlink (m_user_pinyin_phrase_lib.c_str ());
+   unlink (m_user_pinyin_phrase_index.c_str ());
+   rename (tmp_user_phrase_lib.c_str (), m_user_phrase_lib.c_str ());
+   rename (tmp_user_pinyin_phrase_lib.c_str (), m_user_pinyin_phrase_lib.c_str ());
+   rename (tmp_user_pinyin_phrase_index.c_str (), m_user_pinyin_phrase_index.c_str ());
 }
 
 void


Index: scim-pinyin.spec
===================================================================
RCS file: /cvs/pkgs/rpms/scim-pinyin/devel/scim-pinyin.spec,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- scim-pinyin.spec	27 Aug 2007 03:39:06 -0000	1.41
+++ scim-pinyin.spec	9 Nov 2007 09:35:36 -0000	1.42
@@ -1,6 +1,6 @@
 Name:       scim-pinyin
 Version:    0.5.91
-Release:    20%{?dist}
+Release:    21%{?dist}
 Summary:    Smart Pinyin IMEngine for Smart Common Input Method platform
 
 License:    GPLv2
@@ -16,6 +16,7 @@
 Patch3:         scim-pinyin-helper.patch
 Patch4:         scim-pinyin-0.5.91-13.bz200702.patch
 Patch5:         scim-pinyin-help-translate.patch
+Patch6:         scim-pinyin-0.5.91-save-in-temp.patch
 
 %description
 Simplified Chinese Smart Pinyin IMEngine for SCIM.
@@ -27,6 +28,7 @@
 %patch3 -p1 -b .3-helperi
 %patch4 -p1 -b .4-bz200702
 %patch5 -p1 -b .5-translate
+%patch6 -p1 -b .6-savetmp
 
 %build
 ./bootstrap
@@ -60,6 +62,9 @@
 
 
 %changelog
+* Mon Nov 9 2007 Huang Peng <phuang at redhat.com> - 0.5.91-21
+- Save user data in temp files, and then overwrite old files to fix bug 237439.
+
 * Mon Aug 27 2007 Huang Peng <phuang at redhat.com> - 0.5.91-20
 - Change rpm license field to GPLv2
 




More information about the fedora-extras-commits mailing list