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
|
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
|
+
+
+
+
+
-
+
-
+
+
-
-
|
** digits, '_' and '-'. Upper-case ASCII is converted to lower-case. All
** other bytes are mapped into a lower-case alphabetic.
**
** The value returned is obtained from mprintf() or fossil_strdup() and should
** be released by the caller using fossil_free().
*/
char *archive_base_name(int rid){
char *zPrefix;
char *zName;
zPrefix = db_get("short-project-name",0);
if( zPrefix==0 || zPrefix[0]==0 ){
zPrefix = db_get("project-name","unnamed");
}
zName = db_text(0,
"SELECT coalesce(config.value,'unnamed')||"
"SELECT %Q||"
" strftime('-%%Y%%m%%d%%H%%M%%S-',event.mtime)||"
" substr(blob.uuid,1,10)"
" FROM blob, event LEFT JOIN config"
" WHERE blob.rid=%d"
" AND event.objid=%d"
" AND config.name='project-name'",
rid, rid);
zPrefix, rid, rid);
fossil_free(zPrefix);
sanitize_name(zName);
return zName;
}
/*
** field lengths of 'ustar' name and prefix fields.
*/
#define USTAR_NAME_LEN 100
#define USTAR_PREFIX_LEN 155
|