
Il serait bien de filtrer les caractères problématiques, et de les remplacer dans le planificateur par "-", par exemple.
Code : Tout sélectionner
--- PouchinTVMod_src_0.4_RC2/main.cpp Mon Jun 18 11:53:20 2007
+++ Modifs/main.cpp Sat Jul 28 17:36:13 2007
@@ -1168,6 +1168,18 @@
}
}
+
+/**
+ * Protège le nom de la tâche devant être créée
+ **/
+void protege_nom_tache(char* nom) {
+ for (size_t i =0; i<strlen(nom); i++) {
+ if(nom[i] == '/' || nom[i] == '\\' || nom[i] == ':' || nom[i] == '*' || nom[i] == '?' || nom[i] == '"' || nom[i] == '<' || nom[i] == '>') {
+ nom[i] = '_';
+ }
+ }
+}
+
static int add_programme(HWND hwndDlg, int sel)
{
char buffer[127];
@@ -1244,10 +1256,20 @@
SystemTimeToFileTime(&sdebut, (LPFILETIME)&fdebut);
fdebut = fdebut - (UINT64)600000000;
FileTimeToSystemTime((LPFILETIME)&fdebut, &sdebut);
- ajouter_tache(prog.nom, sdebut);
+
+ // Remplace les caracteres incorrects
+ char nom_tache[MAX_PATH + 1];
+ strcpy(nom_tache, prog.nom);
+ protege_nom_tache(nom_tache);
+ ajouter_tache(nom_tache, sdebut);
} else {
prog.tache = 0;
- supprimer_tache(prog.nom);
+
+ // Remplace les caractères invalides
+ char nom_tache[MAX_PATH + 1];
+ strcpy(nom_tache, prog.nom);
+ protege_nom_tache(nom_tache);
+ supprimer_tache(nom_tache);
}
Programmes.insert(Programmes.begin() + sel, prog);
@@ -1264,6 +1286,7 @@
static INT_PTR CALLBACK RecordDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
+ char nom_tache[MAX_PATH + 1]; // pour le nom modifié de la tache
int sel = -1;
int n = (int)SendDlgItemMessage(hwndDlg, IDC_LIST_PROGRAMMES, LVM_GETITEMCOUNT, 0, 0);
for(int i = 0; i < n; i++)
@@ -1399,7 +1422,11 @@
if(sel != -1) {
SendDlgItemMessage(hwndDlg, IDC_LIST_PROGRAMMES, LVM_DELETEITEM, sel, 0);
- supprimer_tache(Programmes[sel].nom);
+
+ // Remplace les caractères invalides
+ strcpy(nom_tache, Programmes[sel].nom);
+ protege_nom_tache(nom_tache);
+ supprimer_tache(nom_tache);
Programmes.erase(Programmes.begin() + sel);
}