--- packaging/generic/print-camera-list.c 2007-07-27 02:35:28.000000000 +0200 +++ packaging/generic/print-camera-list.c.new 2008-02-22 20:24:35.000000000 +0100 @@ -382,14 +382,31 @@ char *owner; char *group; char *script; - char *begin_string; - char *usbcam_string; + const char *begin_string; + const char *usbcam_string; } udev_persistent_data_t; static void udev_parse_params (const func_params_t *params, void **data) { + /* Note: 2 lines because we need to use || ... having them on the same + * line would mean &&. + */ + static const char * const begin_strings[] = { + /* UDEV_PRE_0_98 */ + "BUS!=\"usb_device\", GOTO=\"libgphoto2_rules_end\"\n" + "ACTION!=\"add\", GOTO=\"libgphoto2_rules_end\"\n\n", + /* UDEV_0_98 */ + "SUBSYSTEM!=\"usb|usb_device\", GOTO=\"libgphoto2_rules_end\"\n" + "ACTION!=\"add\", GOTO=\"libgphoto2_rules_end\"\n\n" + }; + static const char * const usbcam_strings[] = { + /* UDEV_PRE_0_98 */ + "SYSFS{idVendor}==\"%04x\", SYSFS{idProduct}==\"%04x\", ", + /* UDEV_0_98 */ + "ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ", + }; udev_persistent_data_t *pdata; pdata = calloc(1, sizeof(udev_persistent_data_t)); pdata->version = UDEV_0_98; @@ -436,37 +453,12 @@ FATAL("The