]> arthur.barton.de Git - netatalk.git/blobdiff - include/atalk/adouble.h
New utility: ad
[netatalk.git] / include / atalk / adouble.h
index 3d880ed4bd6a9d80c8cda3991c51a5b0b614db37..fb10fbad30da81a30eacd153d468ad9e4eef897b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: adouble.h,v 1.36 2009-06-19 13:38:33 franklahm Exp $
+ * $Id: adouble.h,v 1.40 2009-09-01 14:28:07 franklahm Exp $
  * Copyright (c) 1990,1991 Regents of The University of Michigan.
  * All Rights Reserved.
  *
@@ -84,7 +84,9 @@
 
 #define AD_VERSION2    0x00020000
 #define AD_VERSION2_OSX        0x00020001
+/*
 #define AD_VERSION1_ADS        0x00010002
+*/
 #define AD_VERSION1_SFM        0x00010003
 #define AD_VERSION     AD_VERSION2
 
@@ -93,7 +95,7 @@
  */
 #define ADEID_DFORK            1
 #define ADEID_RFORK            2
-#define ADEID_NAME             3
+#define ADEID_NAME             3 /* Note: starting with Netatalk 2.1 we do NOT alway set the name */
 #define ADEID_COMMENT          4
 #define ADEID_ICONBW           5
 #define ADEID_ICONCOL          6
@@ -373,18 +375,19 @@ struct adouble_fops {
 #define FINDERINFO_FRCREATOFF  4
 #define FINDERINFO_FRFLAGOFF   8
 
-/* finderinfo flags */
-#define FINDERINFO_ISONDESK      (1)     /* "d" */
+/* FinderInfo Flags, char in `ad ls`, valid for files|dirs */
+#define FINDERINFO_ISONDESK      (1)     /* "d", fd */
 #define FINDERINFO_COLOR         (0x0e)
-#define FINDERINFO_ISHARED       (1<<6)  /* "m" */
-#define FINDERINFO_HASNOINITS    (1<<7)  /* "n" */
-#define FINDERINFO_HASBEENINITED (1<<8)  /* "i" */
-#define FINDERINFO_HASCUSTOMICON (1<<10) /* "c" */
-#define FINDERINFO_ISSTATIONNERY (1<<11) /* "t" */
-#define FINDERINFO_NAMELOCKED    (1<<12) /* "s" */
-#define FINDERINFO_HASBUNDLE     (1<<13) /* "b" */
-#define FINDERINFO_INVISIBLE     (1<<14) /* "v" */
-#define FINDERINFO_ISALIAS       (1<<15) /* "a" */
+#define FINDERINFO_HIDEEXT       (1<<4)  /* "e", fd */
+#define FINDERINFO_ISHARED       (1<<6)  /* "m", f  */
+#define FINDERINFO_HASNOINITS    (1<<7)  /* "n", f  */
+#define FINDERINFO_HASBEENINITED (1<<8)  /* "i", fd */
+#define FINDERINFO_HASCUSTOMICON (1<<10) /* "c", fd */
+#define FINDERINFO_ISSTATIONNERY (1<<11) /* "t", f  */
+#define FINDERINFO_NAMELOCKED    (1<<12) /* "s", fd */
+#define FINDERINFO_HASBUNDLE     (1<<13) /* "b", fd */
+#define FINDERINFO_INVISIBLE     (1<<14) /* "v", fd */
+#define FINDERINFO_ISALIAS       (1<<15) /* "a", fd */
 
 #define FINDERINFO_FRVIEWOFF  14 
 #define FINDERINFO_CUSTOMICON 0x4
@@ -396,23 +399,24 @@ struct adouble_fops {
    <https://sourceforge.net/tracker/?func=detail&aid=2802236&group_id=8642&atid=108642>
  */
 
-/* AFP attributes for files and dirs. (d) = only these are valid for directories */
-#define ATTRBIT_INVISIBLE (1<<0)  /* (d) */
-#define ATTRBIT_MULTIUSER (1<<1)
-#define ATTRBIT_SYSTEM    (1<<2)  /* "y" (d) */
-#define ATTRBIT_DOPEN     (1<<3)  /* data fork already open */
-#define ATTRBIT_ROPEN     (1<<4)  /* resource fork already open */
-#define ATTRBIT_NOWRITE   (1<<5)  /* "w" write inhibit(v2)/read-only(v1) bit ("") */
-#define ATTRBIT_BACKUP    (1<<6)  /* "b" (d) */
-#define ATTRBIT_NORENAME  (1<<7)  /* "r" (d) */
-#define ATTRBIT_NODELETE  (1<<8)  /* "d" (d) */
-#define ATTRBIT_NOCOPY    (1<<10) /* "c" */
-#define ATTRBIT_SETCLR    (1<<15) /* set/clear bits (d) */
-
-/* AFP attributes for dirs */
-#define ATTRBIT_EXPFLDR   (1<<1)  /* Folder is a sharepoint ("p") */
-#define ATTRBIT_MOUNTED   (1<<3)  /* Directory is mounted by a user ("") */
-#define ATTRBIT_SHARED    (1<<4)  /* shared area, called IsExpFolder in spec ("") */
+/* AFP attributes, char in `ad ls`, valid for files|dirs */
+#define ATTRBIT_INVISIBLE (1<<0)  /* opaque from FinderInfo */
+#define ATTRBIT_MULTIUSER (1<<1)  /* file: opaque, dir: see below */
+#define ATTRBIT_SYSTEM    (1<<2)  /* "y", fd */
+#define ATTRBIT_DOPEN     (1<<3)  /* data fork already open. Not stored, computed on the fly */
+#define ATTRBIT_ROPEN     (1<<4)  /* resource fork already open. Not stored, computed on the fly */
+#define ATTRBIT_NOWRITE   (1<<5)  /* "w", f, write inhibit(v2)/read-only(v1) bit */
+#define ATTRBIT_BACKUP    (1<<6)  /* "p", fd */
+#define ATTRBIT_NORENAME  (1<<7)  /* "r", fd */
+#define ATTRBIT_NODELETE  (1<<8)  /* "l", fd */
+#define ATTRBIT_NOCOPY    (1<<10) /* "o", f */
+#define ATTRBIT_SETCLR    (1<<15) /* set/clear bit (d) */
+
+/* AFP attributes for dirs. These should probably be computed on the fly.
+ * We don't do that, nor does e.g. OS S X 10.5 Server */
+#define ATTRBIT_EXPFLDR   (1<<1)  /* Folder is a sharepoint */
+#define ATTRBIT_MOUNTED   (1<<3)  /* Directory is mounted by a user */
+#define ATTRBIT_SHARED    (1<<4)  /* Shared area, called IsExpFolder in spec */
  
 /* private AFPFileInfo bits */
 #define AD_AFPFILEI_OWNER       (1 << 0) /* any owner */
@@ -440,6 +444,7 @@ struct adouble_fops {
 */
 extern int ad_rebuild_adouble_header __P((struct adouble *));
 extern int ad_rebuild_sfm_header __P((struct adouble *));
+extern int ad_copy_header __P((struct adouble *, struct adouble *));
 
 extern int ad_flush           __P((struct adouble *));
 extern int ad_close           __P((struct adouble *, int));
@@ -545,7 +550,7 @@ extern int ad_getdate __P((const struct adouble *, unsigned int, u_int32_t *));
 /* ad_attr.c */
 extern int ad_setattr __P((const struct adouble *, const u_int16_t));
 extern int ad_getattr __P((const struct adouble *, u_int16_t *));
-
+/* Note: starting with Netatalk 2.1 we do NOT alway set the name */
 extern int ad_setname __P((struct adouble *, const char *));
 #if AD_VERSION == AD_VERSION2
 extern int ad_setid __P((struct adouble *, const dev_t dev,const ino_t ino, const u_int32_t, const u_int32_t, const void *));