[Unison-hackers] [unison-svn] r329 - in trunk: icons src src/lwt src/win32rc

vouillon@seas.upenn.edu vouillon at seas.upenn.edu
Wed May 6 12:52:53 EDT 2009


Author: vouillon
Date: 2009-05-06 12:52:46 -0400 (Wed, 06 May 2009)
New Revision: 329

Added:
   trunk/icons/U.16x16x16m.png
   trunk/icons/U.24x24x16m.png
   trunk/icons/U.256x256x16m.png
   trunk/icons/U.32x32x16m.png
   trunk/icons/U.48x48x16m.png
Modified:
   trunk/icons/U.ico
   trunk/src/.depend
   trunk/src/Makefile.OCaml
   trunk/src/RECENTNEWS
   trunk/src/case.ml
   trunk/src/case.mli
   trunk/src/lwt/depend
   trunk/src/mkProjectInfo.ml
   trunk/src/name.ml
   trunk/src/name.mli
   trunk/src/uigtk2.ml
   trunk/src/update.ml
   trunk/src/win32rc/U.ico
   trunk/src/win32rc/unison.rc
   trunk/src/win32rc/unison.res
   trunk/src/win32rc/unison.res.lib
Log:
* Improved error messages when rejecting non-unicode encoded file names
* uigtk2: fixed the code for transcoding from Windows Codepage 1252 to
  UTF-8 (for some reason, I mistakenly took a table corresponding to
  Codepage 1250 instead)
* Windows: added icons with transparency


Added: trunk/icons/U.16x16x16m.png
===================================================================
(Binary files differ)


Property changes on: trunk/icons/U.16x16x16m.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/icons/U.24x24x16m.png
===================================================================
(Binary files differ)


Property changes on: trunk/icons/U.24x24x16m.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/icons/U.256x256x16m.png
===================================================================
(Binary files differ)


Property changes on: trunk/icons/U.256x256x16m.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/icons/U.32x32x16m.png
===================================================================
(Binary files differ)


Property changes on: trunk/icons/U.32x32x16m.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/icons/U.48x48x16m.png
===================================================================
(Binary files differ)


Property changes on: trunk/icons/U.48x48x16m.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/icons/U.ico
===================================================================
(Binary files differ)

Modified: trunk/src/.depend
===================================================================
--- trunk/src/.depend	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/.depend	2009-05-06 16:52:46 UTC (rev 329)
@@ -45,8 +45,8 @@
     abort.cmi 
 abort.cmx: uutil.cmx ubase/util.cmx ubase/trace.cmx ubase/safelist.cmx \
     abort.cmi 
-case.cmo: ubase/util.cmi unicode.cmi ubase/rx.cmi ubase/prefs.cmi case.cmi 
-case.cmx: ubase/util.cmx unicode.cmx ubase/rx.cmx ubase/prefs.cmx case.cmi 
+case.cmo: ubase/util.cmi unicode.cmi ubase/prefs.cmi case.cmi 
+case.cmx: ubase/util.cmx unicode.cmx ubase/prefs.cmx case.cmi 
 checksum.cmo: checksum.cmi 
 checksum.cmx: checksum.cmi 
 clroot.cmo: ubase/util.cmi ubase/rx.cmi ubase/prefs.cmi clroot.cmi 
@@ -111,8 +111,8 @@
     ubase/safelist.cmx remote.cmx ubase/prefs.cmx os.cmx fspath.cmx 
 mkProjectInfo.cmo: 
 mkProjectInfo.cmx: 
-name.cmo: ubase/util.cmi case.cmi name.cmi 
-name.cmx: ubase/util.cmx case.cmx name.cmi 
+name.cmo: ubase/util.cmi ubase/rx.cmi case.cmi name.cmi 
+name.cmx: ubase/util.cmx ubase/rx.cmx case.cmx name.cmi 
 os.cmo: uutil.cmi ubase/util.cmi ubase/safelist.cmi props.cmi ubase/prefs.cmi \
     path.cmi osx.cmi name.cmi fspath.cmi fingerprint.cmi fileinfo.cmi os.cmi 
 os.cmx: uutil.cmx ubase/util.cmx ubase/safelist.cmx props.cmx ubase/prefs.cmx \

Modified: trunk/src/Makefile.OCaml
===================================================================
--- trunk/src/Makefile.OCaml	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/Makefile.OCaml	2009-05-06 16:52:46 UTC (rev 329)
@@ -105,14 +105,15 @@
 else
   # Unix system, or Cygwin with GNU C compiler
   OBJ_EXT=.o
-  CWD=$(shell pwd)
   ifeq ($(OSARCH),win32gnuc)
+    CWD=.
     EXEC_EXT=.exe
     CLIBS+=-cclib win32rc/unison.res.lib
     STATIC=false                      # Cygwin is not MinGW :-(
     buildexecutable::
 	@echo Building for Windows with Cygwin GNU C
   else
+    CWD=$(shell pwd)
     EXEC_EXT=
     # openpty is in the libutil library
     ifneq ($(OSARCH),solaris)
@@ -343,6 +344,9 @@
 
 endif
 
+win32rc/unison.res: win32rc/unison.rc win32rc/U.ico
+	windres win32rc/unison.rc win32rc/unison.res
+
 win32rc/unison.res.lib: win32rc/unison.res
 	windres win32rc/unison.res win32rc/unison.res.lib
 

Modified: trunk/src/RECENTNEWS
===================================================================
--- trunk/src/RECENTNEWS	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/RECENTNEWS	2009-05-06 16:52:46 UTC (rev 329)
@@ -1,5 +1,14 @@
 CHANGES FROM VERSION 2.33.2
 
+* Improved error messages when rejecting non-unicode encoded file names
+* uigtk2: fixed the code for transcoding from Windows Codepage 1252 to
+  UTF-8 (for some reason, I mistakenly took a table corresponding to
+  Codepage 1250 instead)
+* Windows: added icons with transparency
+
+-------------------------------
+CHANGES FROM VERSION 2.33.2
+
 * Incorporate Makefile improvements from Martin von Gagern
 
 -------------------------------

Modified: trunk/src/case.ml
===================================================================
--- trunk/src/case.ml	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/case.ml	2009-05-06 16:52:46 UTC (rev 329)
@@ -104,24 +104,6 @@
 
 (****)
 
-(* Windows file naming conventions are descripted here:
-   <http://msdn.microsoft.com/en-us/library/aa365247(printer).aspx> *)
-let badWindowsFilenameRx =
-  Rx.case_insensitive
-    (Rx.rx
-       "(.*[\000-\031<>:\"/\\|?*].*)|\
-        ((con|prn|aux|nul|com[1-9]|lpt[1-9])(\\.[^.]*)?)|\
-        (.*[. ])")
-
-let isBadWindowsFilename s =
-  (* FIX: should also check for a max filename length, not sure how much *)
-  Rx.match_string badWindowsFilenameRx s
-let badFilename someHostIsRunningWindows s =
-  (* Don't check unless we are syncing with Windows *)
-  someHostIsRunningWindows && isBadWindowsFilename s
-
-(****)
-
 type mode = Sensitive | Insensitive | UnicodeInsensitive
 
 (*
@@ -140,7 +122,7 @@
   method normalizePattern s = s
   method caseInsensitiveMatch = false
   method normalizeMatchedString s = s
-  method badFilename w s = badFilename w s
+  method badEncoding s = false
 end
 
 let insensitiveOps = object
@@ -150,7 +132,7 @@
   method normalizePattern s = s
   method caseInsensitiveMatch = true
   method normalizeMatchedString s = s
-  method badFilename w s = badFilename w s
+  method badEncoding s = false
 end
 
 let unicodeInsensitiveOps = object
@@ -160,7 +142,7 @@
   method normalizePattern p = Unicode.normalize p
   method caseInsensitiveMatch = false
   method normalizeMatchedString s = Unicode.normalize s
-  method badFilename w s = not (Unicode.check_utf_8 s) || badFilename w s
+  method badEncoding s = not (Unicode.check_utf_8 s)
 end
 
 (* Note: the dispatch must be fast *)

Modified: trunk/src/case.mli
===================================================================
--- trunk/src/case.mli	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/case.mli	2009-05-06 16:52:46 UTC (rev 329)
@@ -10,6 +10,6 @@
     normalizePattern : string -> string;
     caseInsensitiveMatch : bool;
     normalizeMatchedString : string -> string;
-    badFilename : bool -> string -> bool >
+    badEncoding : string -> bool >
 
 val init : bool -> unit

Modified: trunk/src/lwt/depend
===================================================================
--- trunk/src/lwt/depend	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/lwt/depend	2009-05-06 16:52:46 UTC (rev 329)
@@ -6,5 +6,7 @@
 lwt_util.cmx: lwt.cmx lwt_util.cmi 
 pqueue.cmo: pqueue.cmi 
 pqueue.cmx: pqueue.cmi 
+lwt.cmi: 
 lwt_unix.cmi: lwt.cmi 
 lwt_util.cmi: lwt.cmi 
+pqueue.cmi: 

Modified: trunk/src/mkProjectInfo.ml
===================================================================
--- trunk/src/mkProjectInfo.ml	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/mkProjectInfo.ml	2009-05-06 16:52:46 UTC (rev 329)
@@ -145,3 +145,4 @@
 
 
 
+

Modified: trunk/src/name.ml
===================================================================
--- trunk/src/name.ml	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/name.ml	2009-05-06 16:52:46 UTC (rev 329)
@@ -39,5 +39,18 @@
 
 let hash n = (Case.ops())#hash n
 
-let bad someHostIsRunningWindows n =
-  (Case.ops())#badFilename someHostIsRunningWindows n
+(****)
+
+let badEncoding s = (Case.ops())#badEncoding s
+
+(* Windows file naming conventions are descripted here:
+   <http://msdn.microsoft.com/en-us/library/aa365247(printer).aspx> *)
+let badWindowsFilenameRx =
+  Rx.case_insensitive
+    (Rx.rx
+       "(.*[\000-\031<>:\"/\\|?*].*)|\
+        ((con|prn|aux|nul|com[1-9]|lpt[1-9])(\\.[^.]*)?)|\
+        (.*[. ])")
+
+(* FIX: should also check for a max filename length, not sure how much *)
+let badFile s = Rx.match_string badWindowsFilenameRx s

Modified: trunk/src/name.mli
===================================================================
--- trunk/src/name.mli	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/name.mli	2009-05-06 16:52:46 UTC (rev 329)
@@ -10,4 +10,5 @@
 val eq : t -> t -> bool
 val hash : t -> int
 
-val bad : bool -> t -> bool
+val badEncoding : t -> bool
+val badFile : t -> bool

Modified: trunk/src/uigtk2.ml
===================================================================
--- trunk/src/uigtk2.ml	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/uigtk2.ml	2009-05-06 16:52:46 UTC (rev 329)
@@ -170,25 +170,38 @@
    non-ASCII characters. *)
 
 let code =
-  [| 0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18;
-     19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34;
-     35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50;
-     51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66;
-     67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82;
-     83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98;
-     99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111;
-     112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124;
-     125; 126; 127; 8364; 129; 8218; 131; 8222; 8230; 8224; 8225; 136;
-     8240; 352; 8249; 346; 356; 381; 377; 144; 8216; 8217; 8220; 8221;
-     8226; 8211; 8212; 152; 8482; 353; 8250; 347; 357; 382; 378; 160;
-     711; 728; 321; 164; 260; 166; 167; 168; 169; 350; 171; 172; 173;
-     174; 379; 176; 177; 731; 322; 180; 181; 182; 183; 184; 261; 351;
-     187; 376; 733; 317; 380; 340; 193; 194; 258; 196; 313; 262; 199;
-     268; 201; 280; 203; 282; 205; 206; 270; 272; 323; 327; 211; 212;
-     336; 214; 215; 344; 366; 218; 368; 220; 221; 354; 223; 341; 225;
-     226; 259; 228; 314; 263; 231; 269; 233; 281; 235; 283; 237; 238;
-     271; 273; 324; 328; 243; 244; 337; 246; 247; 345; 367; 250; 369;
-     252; 253; 355; 729 |]
+  [| 0x0000; 0x0001; 0x0002; 0x0003; 0x0004; 0x0005; 0x0006; 0x0007;
+     0x0008; 0x0009; 0x000A; 0x000B; 0x000C; 0x000D; 0x000E; 0x000F;
+     0x0010; 0x0011; 0x0012; 0x0013; 0x0014; 0x0015; 0x0016; 0x0017;
+     0x0018; 0x0019; 0x001A; 0x001B; 0x001C; 0x001D; 0x001E; 0x001F;
+     0x0020; 0x0021; 0x0022; 0x0023; 0x0024; 0x0025; 0x0026; 0x0027;
+     0x0028; 0x0029; 0x002A; 0x002B; 0x002C; 0x002D; 0x002E; 0x002F;
+     0x0030; 0x0031; 0x0032; 0x0033; 0x0034; 0x0035; 0x0036; 0x0037;
+     0x0038; 0x0039; 0x003A; 0x003B; 0x003C; 0x003D; 0x003E; 0x003F;
+     0x0040; 0x0041; 0x0042; 0x0043; 0x0044; 0x0045; 0x0046; 0x0047;
+     0x0048; 0x0049; 0x004A; 0x004B; 0x004C; 0x004D; 0x004E; 0x004F;
+     0x0050; 0x0051; 0x0052; 0x0053; 0x0054; 0x0055; 0x0056; 0x0057;
+     0x0058; 0x0059; 0x005A; 0x005B; 0x005C; 0x005D; 0x005E; 0x005F;
+     0x0060; 0x0061; 0x0062; 0x0063; 0x0064; 0x0065; 0x0066; 0x0067;
+     0x0068; 0x0069; 0x006A; 0x006B; 0x006C; 0x006D; 0x006E; 0x006F;
+     0x0070; 0x0071; 0x0072; 0x0073; 0x0074; 0x0075; 0x0076; 0x0077;
+     0x0078; 0x0079; 0x007A; 0x007B; 0x007C; 0x007D; 0x007E; 0x007F;
+     0x20AC; 0x1234; 0x201A; 0x0192; 0x201E; 0x2026; 0x2020; 0x2021;
+     0x02C6; 0x2030; 0x0160; 0x2039; 0x0152; 0x1234; 0x017D; 0x1234;
+     0x1234; 0x2018; 0x2019; 0x201C; 0x201D; 0x2022; 0x2013; 0x2014;
+     0x02DC; 0x2122; 0x0161; 0x203A; 0x0153; 0x1234; 0x017E; 0x0178;
+     0x00A0; 0x00A1; 0x00A2; 0x00A3; 0x00A4; 0x00A5; 0x00A6; 0x00A7;
+     0x00A8; 0x00A9; 0x00AA; 0x00AB; 0x00AC; 0x00AD; 0x00AE; 0x00AF;
+     0x00B0; 0x00B1; 0x00B2; 0x00B3; 0x00B4; 0x00B5; 0x00B6; 0x00B7;
+     0x00B8; 0x00B9; 0x00BA; 0x00BB; 0x00BC; 0x00BD; 0x00BE; 0x00BF;
+     0x00C0; 0x00C1; 0x00C2; 0x00C3; 0x00C4; 0x00C5; 0x00C6; 0x00C7;
+     0x00C8; 0x00C9; 0x00CA; 0x00CB; 0x00CC; 0x00CD; 0x00CE; 0x00CF;
+     0x00D0; 0x00D1; 0x00D2; 0x00D3; 0x00D4; 0x00D5; 0x00D6; 0x00D7;
+     0x00D8; 0x00D9; 0x00DA; 0x00DB; 0x00DC; 0x00DD; 0x00DE; 0x00DF;
+     0x00E0; 0x00E1; 0x00E2; 0x00E3; 0x00E4; 0x00E5; 0x00E6; 0x00E7;
+     0x00E8; 0x00E9; 0x00EA; 0x00EB; 0x00EC; 0x00ED; 0x00EE; 0x00EF;
+     0x00F0; 0x00F1; 0x00F2; 0x00F3; 0x00F4; 0x00F5; 0x00F6; 0x00F7;
+     0x00F8; 0x00F9; 0x00FA; 0x00FB; 0x00FC; 0x00FD; 0x00FE; 0x00FF |]
 
 let rec transcodeRec buf s i l =
   if i < l then begin

Modified: trunk/src/update.ml
===================================================================
--- trunk/src/update.ml	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/update.ml	2009-05-06 16:52:46 UTC (rev 329)
@@ -1188,7 +1188,17 @@
 
    Note that case conflicts and illegal filenames can only occur under Unix,
    when syncing with a Windows file system. *)
-let badFilename s = Name.bad (Prefs.read Globals.someHostIsRunningWindows) s
+let checkFilename s =
+  if Name.badEncoding s then
+    `BadEnc
+  else if
+    (* Don't check unless we are syncing with Windows *)
+    Prefs.read Globals.someHostIsRunningWindows &&
+    Name.badFile s
+  then
+    `BadName
+  else
+    `Ok
 
 let getChildren fspath path =
   let children =
@@ -1204,10 +1214,8 @@
   let childStatus nm count =
     if count > 1 then
       `Dup
-    else if badFilename nm then
-      `Bad
     else
-      `Ok
+      checkFilename nm
   in
   let rec findDuplicates' res nm count l =
     match l with
@@ -1282,8 +1290,15 @@
           in
           updates := (nm, uiChild) :: !updates;
           archive
-      | `Bad ->
+      | `BadEnc ->
           let uiChild =
+            Error ("The file name is not encoded in Unicode ("
+                   ^ Path.toString path' ^ ")")
+          in
+          updates := (nm, uiChild) :: !updates;
+          archive
+      | `BadName ->
+          let uiChild =
             Error ("The name of this Unix file is not allowed in Windows ("
                    ^ Path.toString path' ^ ")")
           in
@@ -1449,12 +1464,16 @@
         try
           Safelist.find (fun (name', _) -> Name.eq name name') children
         with Not_found ->
-          (name, if badFilename name then `Bad else `Ok)
+          (name, checkFilename name)
       in
       match status with
-        `Bad ->
+       | `BadEnc ->
           raise (Util.Transient
                    ("The path " ^ Path.toString fullpath ^
+                    " is not encoded in Unicode"))
+       | `BadName ->
+          raise (Util.Transient
+                   ("The path " ^ Path.toString fullpath ^
                     " is not allowed in Windows"))
       | `Dup ->
           raise (Util.Transient

Modified: trunk/src/win32rc/U.ico
===================================================================
(Binary files differ)

Modified: trunk/src/win32rc/unison.rc
===================================================================
--- trunk/src/win32rc/unison.rc	2009-05-05 17:06:29 UTC (rev 328)
+++ trunk/src/win32rc/unison.rc	2009-05-06 16:52:46 UTC (rev 329)
@@ -1,80 +1,3 @@
 #include <winver.h>
 
 UNISON_ICON		ICON			"U.ico"
-X_cursor                CURSOR  DISCARDABLE     "cursor00.cur"
-arrow                   CURSOR  DISCARDABLE     "cursor02.cur"
-based_arrow_down        CURSOR  DISCARDABLE     "cursor04.cur"
-based_arrow_up          CURSOR  DISCARDABLE     "cursor06.cur"
-boat                    CURSOR  DISCARDABLE     "cursor08.cur"
-bogosity                CURSOR  DISCARDABLE     "cursor0a.cur"
-bottom_left_corner      CURSOR  DISCARDABLE     "cursor0c.cur"
-bottom_right_corner     CURSOR  DISCARDABLE     "cursor0e.cur"
-bottom_side             CURSOR  DISCARDABLE     "cursor10.cur"
-bottom_tee              CURSOR  DISCARDABLE     "cursor12.cur"
-box_spiral              CURSOR  DISCARDABLE     "cursor14.cur"
-center_ptr              CURSOR  DISCARDABLE     "cursor16.cur"
-circle                  CURSOR  DISCARDABLE     "cursor18.cur"
-clock                   CURSOR  DISCARDABLE     "cursor1a.cur"
-coffee_mug              CURSOR  DISCARDABLE     "cursor1c.cur"
-cross                   CURSOR  DISCARDABLE     "cursor1e.cur"
-cross_reverse           CURSOR  DISCARDABLE     "cursor20.cur"
-crosshair               CURSOR  DISCARDABLE     "cursor22.cur"
-diamond_cross           CURSOR  DISCARDABLE     "cursor24.cur"
-dot                     CURSOR  DISCARDABLE     "cursor26.cur"
-dotbox                  CURSOR  DISCARDABLE     "cursor28.cur"
-double_arrow            CURSOR  DISCARDABLE     "cursor2a.cur"
-draft_large             CURSOR  DISCARDABLE     "cursor2c.cur"
-draft_small             CURSOR  DISCARDABLE     "cursor2e.cur"
-draped_box              CURSOR  DISCARDABLE     "cursor30.cur"
-exchange                CURSOR  DISCARDABLE     "cursor32.cur"
-fleur                   CURSOR  DISCARDABLE     "cursor34.cur"
-gobbler                 CURSOR  DISCARDABLE     "cursor36.cur"
-gumby                   CURSOR  DISCARDABLE     "cursor38.cur"
-hand1                   CURSOR  DISCARDABLE     "cursor3a.cur"
-hand2                   CURSOR  DISCARDABLE     "cursor3c.cur"
-heart                   CURSOR  DISCARDABLE     "cursor3e.cur"
-icon                    CURSOR  DISCARDABLE     "cursor40.cur"
-iron_cross              CURSOR  DISCARDABLE     "cursor42.cur"
-left_ptr                CURSOR  DISCARDABLE     "cursor44.cur"
-left_side               CURSOR  DISCARDABLE     "cursor46.cur"
-left_tee                CURSOR  DISCARDABLE     "cursor48.cur"
-leftbutton              CURSOR  DISCARDABLE     "cursor4a.cur"
-ll_angle                CURSOR  DISCARDABLE     "cursor4c.cur"
-lr_angle                CURSOR  DISCARDABLE     "cursor4e.cur"
-man                     CURSOR  DISCARDABLE     "cursor50.cur"
-middlebutton            CURSOR  DISCARDABLE     "cursor52.cur"
-mouse                   CURSOR  DISCARDABLE     "cursor54.cur"
-pencil                  CURSOR  DISCARDABLE     "cursor56.cur"
-pirate                  CURSOR  DISCARDABLE     "cursor58.cur"
-plus                    CURSOR  DISCARDABLE     "cursor5a.cur"
-question_arrow          CURSOR  DISCARDABLE     "cursor5c.cur"
-right_ptr               CURSOR  DISCARDABLE     "cursor5e.cur"
-right_side              CURSOR  DISCARDABLE     "cursor60.cur"
-right_tee               CURSOR  DISCARDABLE     "cursor62.cur"
-rightbutton             CURSOR  DISCARDABLE     "cursor64.cur"
-rtl_logo                CURSOR  DISCARDABLE     "cursor66.cur"
-sailboat                CURSOR  DISCARDABLE     "cursor68.cur"
-sb_down_arrow           CURSOR  DISCARDABLE     "cursor6a.cur"
-sb_h_double_arrow       CURSOR  DISCARDABLE     "cursor6c.cur"
-sb_left_arrow           CURSOR  DISCARDABLE     "cursor6e.cur"
-sb_right_arrow          CURSOR  DISCARDABLE     "cursor70.cur"
-sb_up_arrow             CURSOR  DISCARDABLE     "cursor72.cur"
-sb_v_double_arrow       CURSOR  DISCARDABLE     "cursor74.cur"
-shuttle                 CURSOR  DISCARDABLE     "cursor76.cur"
-sizing                  CURSOR  DISCARDABLE     "cursor78.cur"
-spider                  CURSOR  DISCARDABLE     "cursor7a.cur"
-spraycan                CURSOR  DISCARDABLE     "cursor7c.cur"
-star                    CURSOR  DISCARDABLE     "cursor7e.cur"
-target                  CURSOR  DISCARDABLE     "cursor80.cur"
-tcross                  CURSOR  DISCARDABLE     "cursor82.cur"
-top_left_arrow          CURSOR  DISCARDABLE     "cursor84.cur"
-top_left_corner         CURSOR  DISCARDABLE     "cursor86.cur"
-top_right_corner        CURSOR  DISCARDABLE     "cursor88.cur"
-top_side                CURSOR  DISCARDABLE     "cursor8a.cur"
-top_tee                 CURSOR  DISCARDABLE     "cursor8c.cur"
-trek                    CURSOR  DISCARDABLE     "cursor8e.cur"
-ul_angle                CURSOR  DISCARDABLE     "cursor90.cur"
-umbrella                CURSOR  DISCARDABLE     "cursor92.cur"
-ur_angle                CURSOR  DISCARDABLE     "cursor94.cur"
-xterm                   CURSOR  DISCARDABLE     "cursor98.cur"
-watch                   CURSOR  DISCARDABLE     "cursor96.cur"

Modified: trunk/src/win32rc/unison.res
===================================================================
(Binary files differ)

Modified: trunk/src/win32rc/unison.res.lib
===================================================================
(Binary files differ)



More information about the Unison-hackers mailing list