----------------------------------------------------------------------* * Filter sarray * *----------------------------------------------------------------------*/ ! * \brief sarraySelectBySubstring() * * \param[in] sain input sarray * \param[in] substr [optional] substring for matching; can be NULL * \return saout output sarra
| 1142 | * </pre> |
| 1143 | */ |
| 1144 | SARRAY * |
| 1145 | sarraySelectBySubstring(SARRAY *sain, |
| 1146 | const char *substr) |
| 1147 | { |
| 1148 | char *str; |
| 1149 | l_int32 n, i, offset, found; |
| 1150 | SARRAY *saout; |
| 1151 | |
| 1152 | PROCNAME("sarraySelectBySubstring"); |
| 1153 | |
| 1154 | if (!sain) |
| 1155 | return (SARRAY *)ERROR_PTR("sain not defined", procName, NULL); |
| 1156 | |
| 1157 | n = sarrayGetCount(sain); |
| 1158 | if (!substr || n == 0) |
| 1159 | return sarrayCopy(sain); |
| 1160 | |
| 1161 | saout = sarrayCreate(n); |
| 1162 | for (i = 0; i < n; i++) { |
| 1163 | str = sarrayGetString(sain, i, L_NOCOPY); |
| 1164 | arrayFindSequence((l_uint8 *)str, strlen(str), (l_uint8 *)substr, |
| 1165 | strlen(substr), &offset, &found); |
| 1166 | if (found) |
| 1167 | sarrayAddString(saout, str, L_COPY); |
| 1168 | } |
| 1169 | |
| 1170 | return saout; |
| 1171 | } |
| 1172 | |
| 1173 | |
| 1174 | /*! |
no test coverage detected