Changeset 38752
- Timestamp:
- Sep 17, 2015, 8:26:20 PM (11 years ago)
- Location:
- branches/eam_branches/ipp-20150625/Ohana/src/libdvo
- Files:
-
- 2 edited
-
include/dvo.h (modified) (1 diff)
-
src/dvo_catalog.c (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/include/dvo.h
r38667 r38752 970 970 void dvo_catalog_test (Catalog *catalog, int halt); 971 971 972 int dvo_catalog_backup (Catalog *catalog, int primary);973 int dvo_catalog_unlink_backup (Catalog *catalog, int primary);972 int dvo_catalog_backup (Catalog *catalog, char *suffix, int primary); 973 int dvo_catalog_unlink_backup (Catalog *catalog, char *suffix, int primary); 974 974 975 975 /* catmode-specific APIs */ -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/src/dvo_catalog.c
r38643 r38752 1045 1045 1046 1046 // make a backup of this catalog (including the measure, secfilt, and missing tables as needed) 1047 int dvo_catalog_backup (Catalog *catalog, int primary) {1047 int dvo_catalog_backup (Catalog *catalog, char *suffix, int primary) { 1048 1048 1049 1049 // skip empty cpt files … … 1053 1053 1054 1054 char tmpfilename[DVO_MAX_PATH]; 1055 int status = snprintf (tmpfilename, DVO_MAX_PATH, "%s ~", catalog->filename);1055 int status = snprintf (tmpfilename, DVO_MAX_PATH, "%s%s", catalog->filename, suffix); 1056 1056 if (status >= DVO_MAX_PATH) { 1057 1057 fprintf (stderr, "path name too long: %s\n", catalog->filename); … … 1068 1068 } 1069 1069 1070 // play it safe: do not overwrite an existing backup file 1071 struct stat fileStats; 1072 status = stat (tmpfilename, &fileStats); 1073 if (!status) { 1074 fprintf (stderr, "ERROR: backup file %s already exists, exiting\n", tmpfilename); 1075 return FALSE; 1076 } 1077 1078 // some error accessing the file. there is only one acceptable error: file not found 1079 if (status && (errno != ENOENT)) { 1080 perror ("problem with output target"); 1081 return FALSE; 1082 } 1083 1070 1084 status = rename (catalog->filename, tmpfilename); 1071 1085 if (status) { … … 1086 1100 if (catalog[0].catmode == DVO_MODE_SPLIT) { 1087 1101 if (catalog[0].measure_catalog != NULL) { 1088 if (!dvo_catalog_backup (catalog[0].measure_catalog, FALSE)) {1102 if (!dvo_catalog_backup (catalog[0].measure_catalog, suffix, FALSE)) { 1089 1103 return FALSE; 1090 1104 } 1091 1105 } 1092 1106 if (catalog[0].missing_catalog != NULL) { 1093 if (!dvo_catalog_backup (catalog[0].missing_catalog, FALSE)) {1107 if (!dvo_catalog_backup (catalog[0].missing_catalog, suffix, FALSE)) { 1094 1108 return FALSE; 1095 1109 } 1096 1110 } 1097 1111 if (catalog[0].secfilt_catalog != NULL) { 1098 if (!dvo_catalog_backup (catalog[0].secfilt_catalog, FALSE)) {1112 if (!dvo_catalog_backup (catalog[0].secfilt_catalog, suffix, FALSE)) { 1099 1113 return FALSE; 1100 1114 } … … 1105 1119 status = dvo_catalog_lock (catalog[0].lensing_catalog, lockmode); 1106 1120 } else { 1107 if (!dvo_catalog_backup (catalog[0].lensing_catalog, FALSE)) {1121 if (!dvo_catalog_backup (catalog[0].lensing_catalog, suffix, FALSE)) { 1108 1122 return FALSE; 1109 1123 } … … 1115 1129 status = dvo_catalog_lock (catalog[0].lensobj_catalog, lockmode); 1116 1130 } else { 1117 if (!dvo_catalog_backup (catalog[0].lensobj_catalog, FALSE)) {1131 if (!dvo_catalog_backup (catalog[0].lensobj_catalog, suffix, FALSE)) { 1118 1132 return FALSE; 1119 1133 } … … 1125 1139 status = dvo_catalog_lock (catalog[0].starpar_catalog, lockmode); 1126 1140 } else { 1127 if (!dvo_catalog_backup (catalog[0].starpar_catalog, FALSE)) {1141 if (!dvo_catalog_backup (catalog[0].starpar_catalog, suffix, FALSE)) { 1128 1142 return FALSE; 1129 1143 } … … 1135 1149 status = dvo_catalog_lock (catalog[0].galphot_catalog, lockmode); 1136 1150 } else { 1137 if (!dvo_catalog_backup (catalog[0].galphot_catalog, FALSE)) {1151 if (!dvo_catalog_backup (catalog[0].galphot_catalog, suffix, FALSE)) { 1138 1152 return FALSE; 1139 1153 } … … 1145 1159 1146 1160 // make a backup of this catalog (including the measure, secfilt, and missing tables as needed) 1147 int dvo_catalog_unlink_backup (Catalog *catalog, int primary) {1161 int dvo_catalog_unlink_backup (Catalog *catalog, char *suffix, int primary) { 1148 1162 1149 1163 if (primary && !catalog->Naverage_disk) { … … 1153 1167 1154 1168 char tmpfilename[DVO_MAX_PATH]; 1155 int status = snprintf (tmpfilename, DVO_MAX_PATH, "%s ~", catalog->filename);1169 int status = snprintf (tmpfilename, DVO_MAX_PATH, "%s%s", catalog->filename, suffix); 1156 1170 if (status >= DVO_MAX_PATH) { 1157 1171 fprintf (stderr, "path name too long: %s\n", catalog->filename); … … 1169 1183 if (catalog[0].catmode == DVO_MODE_SPLIT) { 1170 1184 if (catalog[0].measure_catalog != NULL) { 1171 if (!dvo_catalog_unlink_backup (catalog[0].measure_catalog, FALSE)) {1185 if (!dvo_catalog_unlink_backup (catalog[0].measure_catalog, suffix, FALSE)) { 1172 1186 outStatus = FALSE; 1173 1187 } 1174 1188 } 1175 1189 if (catalog[0].missing_catalog != NULL) { 1176 if (!dvo_catalog_unlink_backup (catalog[0].missing_catalog, FALSE)) {1190 if (!dvo_catalog_unlink_backup (catalog[0].missing_catalog, suffix, FALSE)) { 1177 1191 outStatus = FALSE; 1178 1192 } 1179 1193 } 1180 1194 if (catalog[0].secfilt_catalog != NULL) { 1181 if (!dvo_catalog_unlink_backup (catalog[0].secfilt_catalog, FALSE)) {1195 if (!dvo_catalog_unlink_backup (catalog[0].secfilt_catalog, suffix, FALSE)) { 1182 1196 outStatus = FALSE; 1183 1197 } 1184 1198 } 1185 1199 if ((catalog[0].lensing_catalog != NULL) && (catalog[0].Nlensing_disk > 0)) { 1186 if (!dvo_catalog_unlink_backup (catalog[0].lensing_catalog, FALSE)) {1200 if (!dvo_catalog_unlink_backup (catalog[0].lensing_catalog, suffix, FALSE)) { 1187 1201 outStatus = FALSE; 1188 1202 } 1189 1203 } 1190 1204 if ((catalog[0].lensobj_catalog != NULL) && (catalog[0].Nlensobj_disk > 0)) { 1191 if (!dvo_catalog_unlink_backup (catalog[0].lensobj_catalog, FALSE)) {1205 if (!dvo_catalog_unlink_backup (catalog[0].lensobj_catalog, suffix, FALSE)) { 1192 1206 outStatus = FALSE; 1193 1207 } 1194 1208 } 1195 1209 if ((catalog[0].starpar_catalog != NULL) && (catalog[0].Nstarpar_disk > 0)) { 1196 if (!dvo_catalog_unlink_backup (catalog[0].starpar_catalog, FALSE)) {1210 if (!dvo_catalog_unlink_backup (catalog[0].starpar_catalog, suffix, FALSE)) { 1197 1211 outStatus = FALSE; 1198 1212 } 1199 1213 } 1200 1214 if ((catalog[0].galphot_catalog != NULL) && (catalog[0].Ngalphot_disk > 0)) { 1201 if (!dvo_catalog_unlink_backup (catalog[0].galphot_catalog, FALSE)) {1215 if (!dvo_catalog_unlink_backup (catalog[0].galphot_catalog, suffix, FALSE)) { 1202 1216 outStatus = FALSE; 1203 1217 }
Note:
See TracChangeset
for help on using the changeset viewer.
