Changeset 2413 in MondoRescue
- Timestamp:
- Sep 20, 2009, 2:44:23 AM (15 years ago)
- Location:
- branches/2.2.10/mondo/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/common/libmondo-filelist.c
r2405 r2413 1761 1761 FILE *fin; 1762 1762 FILE *fout; 1763 char *fname; 1764 char *tmp; 1765 size_t len = 0; 1766 1767 malloc_string(fname); 1768 malloc_string(tmp); 1763 char *fname = NULL; 1764 char *tmp = NULL; 1765 1769 1766 log_msg(5, "starting"); 1770 1767 log_msg(5, "needles_list_fname = %s", needles_list_fname); … … 1777 1774 } 1778 1775 while (!feof(fin)) { 1779 // fscanf(fin, "%s\n", fname); 1780 len = MAX_STR_LEN - 1; 1781 (void)getline(&fname, &len, fin); // patch by Scrub 1776 mr_getline(fname, fin); 1782 1777 if (!use_star) { 1783 1778 if (fname[0] == '/') { 1784 strcpy(tmp, fname);1779 mr_asprintf(tmp, "%s", fname); 1785 1780 } else { 1786 tmp[0] = '/'; 1787 strcpy(tmp + 1, fname); 1781 mr_asprintf(tmp, "/%s", fname); 1788 1782 } 1789 strcpy(fname, tmp); 1783 mr_free(fname); 1784 fname = tmp; 1790 1785 } 1791 1786 while (strlen(fname) > 0 && fname[strlen(fname) - 1] < 32) { … … 1798 1793 if (found_node->selected) { 1799 1794 if (fname[0] == '/') { 1800 strcpy(tmp, fname + 1); 1801 strcpy(fname, tmp); 1795 mr_asprintf(tmp, "%s", fname + 1); 1796 mr_free(fname) 1797 fname = tmp; 1802 1798 } 1803 1799 log_msg(5, "Found '%s'", fname); 1804 turn_wildcard_chars_into_literal_chars(tmp, fname); 1805 fprintf(fout, "%s\n", tmp); 1800 tmp = mr_stresc(fname, "[]*?", '\\'); 1801 mr_free(fname); 1802 fname = tmp; 1803 fprintf(fout, "%s\n", fname); 1806 1804 retval++; 1807 1805 } 1808 1806 } 1807 mr_free(fname); 1809 1808 } 1810 1809 paranoid_fclose(fout); 1811 1810 paranoid_fclose(fin); 1812 paranoid_free(fname);1813 paranoid_free(tmp);1814 1811 return (retval); 1815 1812 } 1816 1817 1818 1819 1813 1820 1814 -
branches/2.2.10/mondo/src/common/libmondo-string-EXT.h
r2356 r2413 35 35 36 36 extern char *media_descriptor_string(t_bkptype); 37 38 extern inline void turn_wildcard_chars_into_literal_chars(char *out,39 char *in); -
branches/2.2.10/mondo/src/common/libmondo-string.c
r2405 r2413 103 103 in_out[i] = '\0'; 104 104 } 105 106 107 108 109 inline void turn_wildcard_chars_into_literal_chars(char *sout, char *sin)110 {111 char *p, *q;112 113 for (p = sin, q = sout; *p != '\0'; *(q++) = *(p++)) {114 if (strchr("[]*?", *p)) {115 *(q++) = '\\';116 }117 }118 *q = *p; // for the final '\0'119 }120 121 105 122 106 -
branches/2.2.10/mondo/src/common/libmondo-string.h
r2356 r2413 30 30 char *percent_media_full_comment(); 31 31 char *media_descriptor_string(t_bkptype); 32 inline void turn_wildcard_chars_into_literal_chars(char *out, char *in); -
branches/2.2.10/mondo/src/mondoarchive/mondoarchive.c
r2340 r2413 238 238 if (argc == 3 && !strcmp(argv[1], "wildcards")) { 239 239 g_loglevel = 10; 240 malloc_string(tmp); 241 turn_wildcard_chars_into_literal_chars(tmp, argv[2]); 240 tmp = mr_stresc(argv[2], "[]*?", '\\'); 242 241 printf("in=%s; out=%s\n", argv[2], tmp); 243 paranoid_free(tmp);242 mr_free(tmp); 244 243 finish(1); 245 244 }
Note:
See TracChangeset
for help on using the changeset viewer.