Changeset 27838 for branches/tap_branches/ippTools/src/dettool.c
- Timestamp:
- May 3, 2010, 8:41:49 AM (16 years ago)
- Location:
- branches/tap_branches
- Files:
-
- 3 edited
-
. (modified) (1 prop)
-
ippTools/src (modified) (1 prop)
-
ippTools/src/dettool.c (modified) (49 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/tap_branches
- Property svn:mergeinfo changed
-
branches/tap_branches/ippTools/src
- Property svn:ignore
-
old new 16 16 difftool 17 17 disttool 18 dqstatstool 18 19 faketool 19 20 flatcorr
-
- Property svn:ignore
-
branches/tap_branches/ippTools/src/dettool.c
r25324 r27838 94 94 MODECASE(DETTOOL_MODE_PENDINGCLEANUP_PROCESSEDEXP, pendingcleanup_processedexpMode); 95 95 MODECASE(DETTOOL_MODE_DONECLEANUP_PROCESSEDEXP, donecleanup_processedexpMode); 96 MODECASE(DETTOOL_MODE_UPDATESTATE_PROCESSED, updatestateprocessedMode); 96 97 // stacked 97 98 MODECASE(DETTOOL_MODE_TOSTACKED, tostackedMode); … … 142 143 MODECASE(DETTOOL_MODE_PENDINGCLEANUP_RESIDEXP, pendingcleanup_residexpMode); 143 144 MODECASE(DETTOOL_MODE_DONECLEANUP_RESIDEXP, donecleanup_residexpMode); 145 MODECASE(DETTOOL_MODE_UPDATESTATE_RESID, updatestateresidMode); 144 146 // detrunsummary 145 147 MODECASE(DETTOOL_MODE_TODETRUNSUMMARY, todetrunsummaryMode); … … 150 152 MODECASE(DETTOOL_MODE_UPDATEDETRUN, updatedetrunMode); 151 153 MODECASE(DETTOOL_MODE_RERUN, rerunMode); 152 MODECASE(DETTOOL_MODE_PENDINGCLEANUP_DETRUNSUMMARY, pendingcleanup_detrunsummaryMode);154 MODECASE(DETTOOL_MODE_PENDINGCLEANUP_DETRUNSUMMARY, pendingcleanup_detrunsummaryMode); 153 155 // register 154 156 MODECASE(DETTOOL_MODE_REGISTER_DETREND, register_detrendMode); … … 185 187 psString query = pxDataGet("dettool_pending.sql"); 186 188 if (!query) { 187 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");188 return false; 189 } 190 189 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 190 return false; 191 } 192 191 193 psMetadata *where = psMetadataAlloc(); 192 194 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); … … 258 260 psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter"); 259 261 return false; 260 } 262 } 261 263 if (strcmp(mode, "verify") && ((ref_det_id != 0) || (ref_iter != -1))) { 262 264 psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set"); 263 265 return false; 264 } 265 266 } 267 266 268 PXOPT_LOOKUP_STR(camera, config->args, "-inst", false, false); 267 269 PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false); … … 308 310 psMetadataItem *mItem = NULL; 309 311 while ((mItem = psListGetAndIncrement(iter))) { 310 psS64 exp_id = mItem->data.S64;312 psS64 exp_id = mItem->data.S64; 311 313 if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", PS_META_DUPLICATE_OK, "==", exp_id)) { 312 314 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id"); … … 317 319 } 318 320 psFree(iter); 319 } 321 } 320 322 if (item->type == PS_DATA_S64) { 321 psS64 exp_id = item->data.S64;322 if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", PS_META_DUPLICATE_OK, "==", exp_id)) {323 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");324 psFree(where);325 return false;326 }327 } 323 psS64 exp_id = item->data.S64; 324 if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", PS_META_DUPLICATE_OK, "==", exp_id)) { 325 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id"); 326 psFree(where); 327 return false; 328 } 329 } 328 330 329 331 if (psListLength(where->list) < 1) { … … 505 507 psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter"); 506 508 return false; 507 } 509 } 508 510 if (strcmp(mode, "verify") && ((ref_det_id != 0) || (ref_iter != -1))) { 509 511 psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set"); 510 512 return false; 511 } 513 } 512 514 513 515 PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false); … … 550 552 PXOPT_COPY_F32(config->args, where, "-select_airmass_max", "airmass", "<="); 551 553 PXOPT_COPY_F32(config->args, where, "-select_sat_pixel_frac_max", "sat_pixel_frac", "<="); 554 PXOPT_COPY_F32(config->args, where, "-select_sat_pixel_frac_min", "sat_pixel_frac", ">="); 552 555 PXOPT_COPY_F32(config->args, where, "-select_exp_time_min", "exp_time", ">="); 553 556 PXOPT_COPY_F32(config->args, where, "-select_exp_time_max", "exp_time", "<="); … … 673 676 label, 674 677 ref_det_id, 675 ref_iter678 ref_iter 676 679 ); 677 680 psS64 det_id = psDBLastInsertID(config->dbh); … … 742 745 { 743 746 PS_ASSERT_PTR_NON_NULL(config, false); 744 747 745 748 // XXX this mode is not well-tested: probably need to specify iteration here 746 749 PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required … … 759 762 psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter"); 760 763 return false; 761 } 764 } 762 765 if (strcmp(mode, "verify") && ((ref_det_id != 0) || (ref_iter != -1))) { 763 766 psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set"); 764 767 return false; 765 } 768 } 766 769 767 770 // the new detRun may have different values for these limits: … … 817 820 818 821 if (iteration < 0) { 819 iteration = detRun->iteration;822 iteration = detRun->iteration; 820 823 } 821 824 … … 977 980 psString query = pxDataGet("dettool_definebydetrun.sql"); 978 981 if (!query) { 979 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");982 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 980 983 return false; 981 984 } … … 989 992 990 993 if (only_accepted) { 991 psStringAppend(&query, " AND accept = 1");994 psStringAppend(&query, " AND accept = 1"); 992 995 } 993 996 … … 1068 1071 psString query = pxDataGet("dettool_runs.sql"); 1069 1072 if (!query) { 1070 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1073 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1071 1074 return false; 1072 1075 } … … 1138 1141 psString query = pxDataGet("dettool_childlessrun.sql"); 1139 1142 if (!query) { 1140 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1143 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1141 1144 psFree(where); 1142 1145 return false; … … 1212 1215 psString query = pxDataGet("dettool_input.sql"); 1213 1216 if (!query) { 1214 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1217 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1215 1218 psFree(where); 1216 1219 return false; … … 1264 1267 psString query = pxDataGet("dettool_raw.sql"); 1265 1268 if (!query) { 1266 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1269 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1267 1270 return false; 1268 1271 } … … 1338 1341 } 1339 1342 1340 // used by updatedetrunMode 1343 // used by updatedetrunMode 1341 1344 bool startNewIteration(pxConfig *config, psS64 det_id) 1342 1345 { … … 1345 1348 psString query = pxDataGet("dettool_start_new_iteration.sql"); 1346 1349 if (!query) { 1347 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1350 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1348 1351 return false; 1349 1352 } … … 1564 1567 } 1565 1568 detInputExpRow *newInputExp = detInputExpRowAlloc( 1566 det_id,1569 det_id, 1567 1570 newIteration, 1568 1571 inputExp->exp_id, … … 1662 1665 solang_max, 1663 1666 label, 1664 ref_det_id,1665 ref_iter1667 ref_det_id, 1668 ref_iter 1666 1669 )) { 1667 1670 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1713 1716 { 1714 1717 PS_ASSERT_PTR_NON_NULL(config, false); 1715 1718 1716 1719 PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required 1717 1720 PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); // required … … 1728 1731 1729 1732 if (!detRegisteredImfileInsert(config->dbh, 1730 det_id,1731 0, // the iteration is fixed at 01732 class_id,1733 uri,1734 bg,1735 bg_stdev,1736 bg_mean_stdev,1737 user_1,1738 user_2,1739 user_3,1740 user_4,1741 user_5,1742 path_base,1743 "full", 1744 0 // fault code1745 )) {1733 det_id, 1734 0, // the iteration is fixed at 0 1735 class_id, 1736 uri, 1737 bg, 1738 bg_stdev, 1739 bg_mean_stdev, 1740 user_1, 1741 user_2, 1742 user_3, 1743 user_4, 1744 user_5, 1745 path_base, 1746 "full", 1747 0 // fault code 1748 )) { 1746 1749 psError(PS_ERR_UNKNOWN, false, "database error"); 1747 1750 return false; … … 1858 1861 1859 1862 1860 bool setProcessedImfileDataState(pxConfig *config, ps S64 det_id, psS64 exp_id, const char *class_id, const char *data_state)1863 bool setProcessedImfileDataState(pxConfig *config, psMetadata *where, const char *data_state) 1861 1864 { 1862 1865 PS_ASSERT_PTR_NON_NULL(config, false); 1866 PS_ASSERT_PTR_NON_NULL(where, false); 1863 1867 PS_ASSERT_PTR_NON_NULL(data_state, false); 1864 PS_ASSERT_PTR_NON_NULL(class_id, false);1865 1868 1866 1869 if (!isValidDataState (data_state)) return false; 1867 1868 char *query = "UPDATE detProcessedImfile SET data_state = '%s'" 1869 " WHERE det_id = %" PRId64 1870 " AND exp_id = %" PRId64 1871 " AND class_id = '%s'"; 1872 if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, exp_id, class_id)) { 1873 psError(PS_ERR_UNKNOWN, false, 1874 "failed to change state for det_id %" PRId64 ", exp_id %" PRId64 ", class_id %s", 1875 det_id, exp_id, class_id); 1876 return false; 1877 } 1878 1879 return true; 1880 } 1881 1882 bool setProcessedExpDataState(pxConfig *config, psS64 det_id, psS64 exp_id, const char *data_state) 1870 1871 psString query = psStringCopy("UPDATE detProcessedImfile SET data_state = '%s'"); 1872 if (where && psListLength(where->list) > 0) { 1873 psString whereClause = psDBGenerateWhereSQL(where,NULL); 1874 psStringAppend(&query," %s",whereClause); 1875 psFree(whereClause); 1876 } else { 1877 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 1878 return(false); 1879 } 1880 1881 if (!p_psDBRunQueryF(config->dbh, query, data_state)) { 1882 psFree(query); 1883 psError(PS_ERR_UNKNOWN, false, "database error"); 1884 return(false); 1885 } 1886 psFree(query); 1887 return(true); 1888 } 1889 1890 bool setProcessedExpDataState(pxConfig *config, psMetadata *where, const char *data_state) 1883 1891 { 1884 1892 PS_ASSERT_PTR_NON_NULL(config, false); 1893 PS_ASSERT_PTR_NON_NULL(where, false); 1885 1894 PS_ASSERT_PTR_NON_NULL(data_state, false); 1886 1895 1887 1896 if (!isValidDataState (data_state)) return false; 1888 1897 1889 char *query = "UPDATE detProcessedExp SET data_state = '%s'" 1890 " WHERE det_id = %" PRId64 1891 " AND exp_id = %" PRId64; 1892 if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, exp_id)) { 1893 psError(PS_ERR_UNKNOWN, false, 1894 "failed to change state for det_id %" PRId64 ", exp_id %" PRId64, 1895 det_id, exp_id); 1896 return false; 1897 } 1898 1899 return true; 1900 } 1901 1902 1898 psString query = psStringCopy("UPDATE detProcessedExp SET data_state = '%s'"); 1899 if (where && psListLength(where->list) > 0) { 1900 psString whereClause = psDBGenerateWhereSQL(where,NULL); 1901 psStringAppend(&query," %s",whereClause); 1902 psFree(whereClause); 1903 } else { 1904 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 1905 return(false); 1906 } 1907 1908 if (!p_psDBRunQueryF(config->dbh, query, data_state)) { 1909 psFree(query); 1910 psError(PS_ERR_UNKNOWN, false, "database error"); 1911 return(false); 1912 } 1913 psFree(query); 1914 return(true); 1915 } 1916 1917 bool setResidImfileDataState(pxConfig *config, psMetadata *where, const char *data_state) 1918 { 1919 PS_ASSERT_PTR_NON_NULL(config, false); 1920 PS_ASSERT_PTR_NON_NULL(where,false); 1921 PS_ASSERT_PTR_NON_NULL(data_state, false); 1922 1923 if (!isValidDataState (data_state)) return false; 1924 1925 psString query = psStringCopy("UPDATE detResidImfile SET data_state = '%s'"); 1926 if (where && psListLength(where->list) > 0) { 1927 psString whereClause = psDBGenerateWhereSQL(where,NULL); 1928 psStringAppend(&query," %s",whereClause); 1929 psFree(whereClause); 1930 } else { 1931 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 1932 return(false); 1933 } 1934 1935 if (!p_psDBRunQueryF(config->dbh, query, data_state)) { 1936 psFree(query); 1937 psError(PS_ERR_UNKNOWN, false, "database error"); 1938 return(false); 1939 } 1940 psFree(query); 1941 return(true); 1942 } 1943 // This function apparently not used anymore. 1944 bool setResidExpDataState(pxConfig *config, psMetadata *where, const char *data_state) 1945 { 1946 PS_ASSERT_PTR_NON_NULL(config, false); 1947 PS_ASSERT_PTR_NON_NULL(where,false); 1948 PS_ASSERT_PTR_NON_NULL(data_state, false); 1949 1950 if (!isValidDataState (data_state)) return false; 1951 1952 psString query = psStringCopy("UPDATE detResidExp SET data_state = '%s'"); 1953 if (where && psListLength(where->list) > 0) { 1954 psString whereClause = psDBGenerateWhereSQL(where,NULL); 1955 psStringAppend(&query," %s",whereClause); 1956 psFree(whereClause); 1957 } else { 1958 psError(PS_ERR_UNKNOWN, true, "search parameters are required"); 1959 return(false); 1960 } 1961 1962 if (!p_psDBRunQueryF(config->dbh, query, data_state)) { 1963 psFree(query); 1964 psError(PS_ERR_UNKNOWN, false, "database error"); 1965 return(false); 1966 } 1967 psFree(query); 1968 return(true); 1969 } 1970 1971 // Not yet updated for cleaning 1903 1972 bool setStackedImfileDataState(pxConfig *config, psS64 det_id, psS32 iteration, const char *class_id, const char *data_state) 1904 1973 { … … 1910 1979 1911 1980 char *query = "UPDATE detStackedImfile SET data_state = '%s'" 1912 " WHERE det_id = %" PRId641913 " AND iteration = %" PRId321914 " AND class_id = '%s'";1981 " WHERE det_id = %" PRId64 1982 " AND iteration = %" PRId32 1983 " AND class_id = '%s'"; 1915 1984 if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration, class_id)) { 1916 1985 psError(PS_ERR_UNKNOWN, false, 1917 "failed to change state for det_id %" PRId64 ", iteration %" PRId32 "class_id %s", 1918 det_id, iteration, class_id);1986 "failed to change state for det_id %" PRId64 ", iteration %" PRId32 "class_id %s", 1987 det_id, iteration, class_id); 1919 1988 return false; 1920 1989 } … … 1932 2001 1933 2002 char *query = "UPDATE detNormalizedStatImfile SET data_state = '%s'" 1934 " WHERE det_id = %" PRId641935 " AND iteration = %" PRId321936 " AND class_id = '%s'";2003 " WHERE det_id = %" PRId64 2004 " AND iteration = %" PRId32 2005 " AND class_id = '%s'"; 1937 2006 /* fprintf(stderr,"DETTOOL SAYS: %s\n",query); */ 1938 2007 if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration,class_id)) { 1939 2008 psError(PS_ERR_UNKNOWN, false, 1940 "failed to change state for det_id %" PRId64 ", iteration %" PRId32, 1941 det_id, iteration);2009 "failed to change state for det_id %" PRId64 ", iteration %" PRId32, 2010 det_id, iteration); 1942 2011 return false; 1943 2012 } … … 1955 2024 1956 2025 char *query = "UPDATE detNormalizedImfile SET data_state = '%s'" 1957 " WHERE det_id = %" PRId641958 " AND iteration = %" PRId321959 " AND class_id = '%s'";2026 " WHERE det_id = %" PRId64 2027 " AND iteration = %" PRId32 2028 " AND class_id = '%s'"; 1960 2029 if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration, class_id)) { 1961 2030 psError(PS_ERR_UNKNOWN, false, 1962 "failed to change state for det_id %" PRId64 ", iteration %" PRId32 " class %s", 1963 det_id, iteration, class_id);2031 "failed to change state for det_id %" PRId64 ", iteration %" PRId32 " class %s", 2032 det_id, iteration, class_id); 1964 2033 return false; 1965 2034 } … … 1976 2045 1977 2046 char *query = "UPDATE detNormalizedExp SET data_state = '%s'" 1978 " WHERE det_id = %" PRId641979 " AND iteration = %" PRId32;2047 " WHERE det_id = %" PRId64 2048 " AND iteration = %" PRId32; 1980 2049 if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration)) { 1981 2050 psError(PS_ERR_UNKNOWN, false, 1982 "failed to change state for det_id %" PRId64 ", iteration %" PRId32, 1983 det_id, iteration);2051 "failed to change state for det_id %" PRId64 ", iteration %" PRId32, 2052 det_id, iteration); 1984 2053 return false; 1985 2054 } … … 1987 2056 return true; 1988 2057 } 1989 1990 bool setResidImfileDataState(pxConfig *config, psS64 det_id, psS32 iteration, psS64 exp_id, const char *class_id, const char *data_state) 1991 { 1992 PS_ASSERT_PTR_NON_NULL(config, false); 1993 PS_ASSERT_PTR_NON_NULL(data_state, false); 1994 PS_ASSERT_PTR_NON_NULL(class_id, false); 1995 1996 if (!isValidDataState (data_state)) return false; 1997 1998 char *query = "UPDATE detResidImfile SET data_state = '%s'" 1999 " WHERE det_id = %" PRId64 2000 " AND iteration = %" PRId32 2001 " AND exp_id = %" PRId64 2002 " AND class_id = '%s'"; 2003 if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration, exp_id, class_id)) { 2004 psError(PS_ERR_UNKNOWN, false, 2005 "failed to change state for det_id %" PRId64 ", iteration %" PRId32 ", exp_id %" PRId64 ", class_id %s", 2006 det_id, iteration, exp_id, class_id); 2007 return false; 2008 } 2009 2010 return true; 2011 } 2012 2013 bool setResidExpDataState(pxConfig *config, psS64 det_id, psS32 iteration, psS64 exp_id, const char *data_state) 2014 { 2015 PS_ASSERT_PTR_NON_NULL(config, false); 2016 PS_ASSERT_PTR_NON_NULL(data_state, false); 2017 2018 if (!isValidDataState (data_state)) return false; 2019 2020 char *query = "UPDATE detResidExp SET data_state = '%s'" 2021 " WHERE det_id = %" PRId64 2022 " AND iteration = %" PRId32 2023 " AND exp_id = %" PRId64; 2024 if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration, exp_id)) { 2025 psError(PS_ERR_UNKNOWN, false, 2026 "failed to change state for det_id %" PRId64 ", iteration %" PRId32 ", exp_id %" PRId64, 2027 det_id, iteration, exp_id); 2028 return false; 2029 } 2030 2031 return true; 2032 } 2058 // End not yet modified for cleanup. 2033 2059 2034 2060 bool exportrunMode(pxConfig *config) … … 2038 2064 char sqlFilename[80]; 2039 2065 } ExportTable; 2040 2066 2041 2067 int numExportTables = 12; 2042 2068 … … 2074 2100 psString query = pxDataGet(tables[i].sqlFilename); 2075 2101 if (!query) { 2076 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");2102 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 2077 2103 return false; 2078 2104 } … … 2116 2142 } 2117 2143 psFree(output); 2118 2144 2119 2145 } 2120 2146 … … 2127 2153 { 2128 2154 unsigned int nFail; 2129 2155 2130 2156 int numImportTables = 11; 2131 2157 2132 2158 char tables[11] [80] = {"detInputExp", "detNormalizedExp", 2133 2159 "detNormalizedImfile", "detNormalizedStatImfile", "detProcessedExp", … … 2136 2162 2137 2163 PS_ASSERT_PTR_NON_NULL(config, NULL); 2138 2164 2139 2165 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 2140 2166 … … 2143 2169 fprintf (stdout, "---- input ----\n"); 2144 2170 psMetadataPrint (stderr, input, 1); 2145 2171 2146 2172 psMetadataItem *item = psMetadataLookup (input, "detRun"); 2147 2173 psAssert (item, "entry not in input?"); … … 2153 2179 detRunRow *detRun = detRunObjectFromMetadata (entry->data.md); 2154 2180 detRunInsertObject (config->dbh, detRun); 2155 2181 2156 2182 // fprintf (stdout, "---- det run ----\n"); 2157 2183 // psMetadataPrint (stderr, entry->data.md, 1); … … 2161 2187 psAssert (item, "entry not in input?"); 2162 2188 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 2163 2189 2164 2190 switch (i) { 2165 2191 case 0: … … 2175 2201 } 2176 2202 break; 2177 2203 2178 2204 case 1: 2179 2205 for (int i = 0; i < item->data.list->n; i++) { … … 2188 2214 } 2189 2215 break; 2190 2216 2191 2217 case 2: 2192 2218 for (int i = 0; i < item->data.list->n; i++) { … … 2201 2227 } 2202 2228 break; 2203 2229 2204 2230 case 3: 2205 2231 for (int i = 0; i < item->data.list->n; i++) { … … 2214 2240 } 2215 2241 break; 2216 2242 2217 2243 case 4: 2218 2244 for (int i = 0; i < item->data.list->n; i++) { … … 2227 2253 } 2228 2254 break; 2229 2255 2230 2256 case 5: 2231 2257 for (int i = 0; i < item->data.list->n; i++) { … … 2240 2266 } 2241 2267 break; 2242 2268 2243 2269 case 6: 2244 2270 for (int i = 0; i < item->data.list->n; i++) { … … 2253 2279 } 2254 2280 break; 2255 2281 2256 2282 case 7: 2257 2283 for (int i = 0; i < item->data.list->n; i++) { … … 2266 2292 } 2267 2293 break; 2268 2294 2269 2295 case 8: 2270 2296 for (int i = 0; i < item->data.list->n; i++) { … … 2279 2305 } 2280 2306 break; 2281 2307 2282 2308 case 9: 2283 2309 for (int i = 0; i < item->data.list->n; i++) { … … 2292 2318 } 2293 2319 break; 2294 2320 2295 2321 case 10: 2296 2322 for (int i = 0; i < item->data.list->n; i++) {
Note:
See TracChangeset
for help on using the changeset viewer.
