204 const char* p = GetDriverParam(parm, name); |
204 const char* p = GetDriverParam(parm, name); |
205 return p != NULL ? atoi(p) : def; |
205 return p != NULL ? atoi(p) : def; |
206 } |
206 } |
207 |
207 |
208 |
208 |
209 char *GetDriverList(char* p) |
209 char *GetDriverList(char* p, const char *last) |
210 { |
210 { |
211 const DriverClass* dc; |
211 const DriverClass* dc; |
212 |
212 |
213 for (dc = _driver_classes; dc != endof(_driver_classes); dc++) { |
213 for (dc = _driver_classes; dc != endof(_driver_classes); dc++) { |
214 const DriverDesc* dd; |
214 const DriverDesc* dd; |
215 |
215 |
216 p += sprintf(p, "List of %s drivers:\n", dc->name); |
216 p += snprintf(p, last - p, "List of %s drivers:\n", dc->name); |
217 for (dd = dc->descs; dd->name != NULL; dd++) { |
217 for (dd = dc->descs; dd->name != NULL; dd++) { |
218 p += sprintf(p, "%10s: %s\n", dd->name, dd->longname); |
218 p += snprintf(p, last - p, "%10s: %s\n", dd->name, dd->longname); |
219 } |
219 } |
220 p += sprintf(p, "\n"); |
220 p = strecpy(p, "\n", last); |
221 } |
221 } |
222 |
222 |
223 return p; |
223 return p; |
224 } |
224 } |