Scott Lahteine 6 years ago
parent
commit
643e0066a0

+ 1
- 1
Marlin/src/feature/power_loss_recovery.h View File

68
   char command_queue[BUFSIZE][MAX_CMD_SIZE];
68
   char command_queue[BUFSIZE][MAX_CMD_SIZE];
69
 
69
 
70
   // SD Filename and position
70
   // SD Filename and position
71
-  char sd_filename[MAXPATHNAMELENGTH + 1];
71
+  char sd_filename[MAXPATHNAMELENGTH];
72
   uint32_t sdpos;
72
   uint32_t sdpos;
73
 
73
 
74
   // Job elapsed time
74
   // Job elapsed time

+ 2
- 2
Marlin/src/sd/SdFatConfig.h View File

106
  * Defines for 8.3 and long (vfat) filenames
106
  * Defines for 8.3 and long (vfat) filenames
107
  */
107
  */
108
 
108
 
109
-#define FILENAME_LENGTH 12 // Number of UTF-16 characters per entry
109
+#define FILENAME_LENGTH 13 // Number of UTF-16 characters per entry
110
 
110
 
111
 // Total bytes needed to store a single long filename
111
 // Total bytes needed to store a single long filename
112
-#define LONG_FILENAME_LENGTH ((FILENAME_LENGTH) * (MAX_VFAT_ENTRIES))
112
+#define LONG_FILENAME_LENGTH (FILENAME_LENGTH * MAX_VFAT_ENTRIES + 1)

+ 9
- 9
Marlin/src/sd/cardreader.cpp View File

48
 // public:
48
 // public:
49
 
49
 
50
 card_flags_t CardReader::flag;
50
 card_flags_t CardReader::flag;
51
-char CardReader::filename[FILENAME_LENGTH + 1], CardReader::longFilename[LONG_FILENAME_LENGTH + 1];
51
+char CardReader::filename[FILENAME_LENGTH], CardReader::longFilename[LONG_FILENAME_LENGTH];
52
 int8_t CardReader::autostart_index;
52
 int8_t CardReader::autostart_index;
53
 
53
 
54
 #if ENABLED(FAST_FILE_TRANSFER)
54
 #if ENABLED(FAST_FILE_TRANSFER)
82
       #if ENABLED(SDSORT_DYNAMIC_RAM)
82
       #if ENABLED(SDSORT_DYNAMIC_RAM)
83
         char **CardReader::sortshort, **CardReader::sortnames;
83
         char **CardReader::sortshort, **CardReader::sortnames;
84
       #else
84
       #else
85
-        char CardReader::sortshort[SDSORT_LIMIT][FILENAME_LENGTH + 1];
86
-        char CardReader::sortnames[SDSORT_LIMIT][SORTED_LONGNAME_MAXLEN + 1];
85
+        char CardReader::sortshort[SDSORT_LIMIT][FILENAME_LENGTH];
86
+        char CardReader::sortnames[SDSORT_LIMIT][SORTED_LONGNAME_MAXLEN];
87
       #endif
87
       #endif
88
     #elif DISABLED(SDSORT_USES_STACK)
88
     #elif DISABLED(SDSORT_USES_STACK)
89
-      char CardReader::sortnames[SDSORT_LIMIT][SORTED_LONGNAME_MAXLEN + 1];
89
+      char CardReader::sortnames[SDSORT_LIMIT][SORTED_LONGNAME_MAXLEN];
90
     #endif
90
     #endif
91
 
91
 
92
     #if HAS_FOLDER_SORTING
92
     #if HAS_FOLDER_SORTING
107
 
107
 
108
 uint8_t CardReader::file_subcall_ctr;
108
 uint8_t CardReader::file_subcall_ctr;
109
 uint32_t CardReader::filespos[SD_PROCEDURE_DEPTH];
109
 uint32_t CardReader::filespos[SD_PROCEDURE_DEPTH];
110
-char CardReader::proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH + 1];
110
+char CardReader::proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
111
 
111
 
112
 uint32_t CardReader::filesize, CardReader::sdpos;
112
 uint32_t CardReader::filesize, CardReader::sdpos;
113
 
113
 
183
     if (DIR_IS_SUBDIR(&p) && lsAction != LS_Count && lsAction != LS_GetFilename) {
183
     if (DIR_IS_SUBDIR(&p) && lsAction != LS_Count && lsAction != LS_GetFilename) {
184
 
184
 
185
       // Get the short name for the item, which we know is a folder
185
       // Get the short name for the item, which we know is a folder
186
-      char dosFilename[FILENAME_LENGTH + 1];
186
+      char dosFilename[FILENAME_LENGTH];
187
       createFilename(dosFilename, p);
187
       createFilename(dosFilename, p);
188
 
188
 
189
       // Allocate enough stack space for the full path to a folder, trailing slash, and nul
189
       // Allocate enough stack space for the full path to a folder, trailing slash, and nul
350
   #endif
350
   #endif
351
 ) {
351
 ) {
352
   if (file.isOpen()) {
352
   if (file.isOpen()) {
353
-    char dosFilename[FILENAME_LENGTH + 1];
353
+    char dosFilename[FILENAME_LENGTH];
354
     file.getFilename(dosFilename);
354
     file.getFilename(dosFilename);
355
     SERIAL_ECHO_P(port, dosFilename);
355
     SERIAL_ECHO_P(port, dosFilename);
356
     #if ENABLED(LONG_FILENAME_HOST_SUPPORT)
356
     #if ENABLED(LONG_FILENAME_HOST_SUPPORT)
856
             sortnames = new char*[fileCnt];
856
             sortnames = new char*[fileCnt];
857
           #endif
857
           #endif
858
         #elif ENABLED(SDSORT_USES_STACK)
858
         #elif ENABLED(SDSORT_USES_STACK)
859
-          char sortnames[fileCnt][SORTED_LONGNAME_MAXLEN + 1];
859
+          char sortnames[fileCnt][SORTED_LONGNAME_MAXLEN];
860
         #endif
860
         #endif
861
 
861
 
862
         // Folder sorting needs 1 bit per entry for flags.
862
         // Folder sorting needs 1 bit per entry for flags.
873
         // By default re-read the names from SD for every compare
873
         // By default re-read the names from SD for every compare
874
         // retaining only two filenames at a time. This is very
874
         // retaining only two filenames at a time. This is very
875
         // slow but is safest and uses minimal RAM.
875
         // slow but is safest and uses minimal RAM.
876
-        char name1[LONG_FILENAME_LENGTH + 1];
876
+        char name1[LONG_FILENAME_LENGTH];
877
 
877
 
878
       #endif
878
       #endif
879
 
879
 

+ 5
- 5
Marlin/src/sd/cardreader.h View File

159
 
159
 
160
 public:
160
 public:
161
   static card_flags_t flag;
161
   static card_flags_t flag;
162
-  static char filename[FILENAME_LENGTH + 1], longFilename[LONG_FILENAME_LENGTH + 1];
162
+  static char filename[FILENAME_LENGTH], longFilename[LONG_FILENAME_LENGTH];
163
   static int8_t autostart_index;
163
   static int8_t autostart_index;
164
 
164
 
165
   #if ENABLED(FAST_FILE_TRANSFER)
165
   #if ENABLED(FAST_FILE_TRANSFER)
204
         #if ENABLED(SDSORT_DYNAMIC_RAM)
204
         #if ENABLED(SDSORT_DYNAMIC_RAM)
205
           static char **sortshort, **sortnames;
205
           static char **sortshort, **sortnames;
206
         #else
206
         #else
207
-          static char sortshort[SDSORT_LIMIT][FILENAME_LENGTH + 1];
208
-          static char sortnames[SDSORT_LIMIT][SORTED_LONGNAME_MAXLEN + 1];
207
+          static char sortshort[SDSORT_LIMIT][FILENAME_LENGTH];
208
+          static char sortnames[SDSORT_LIMIT][SORTED_LONGNAME_MAXLEN];
209
         #endif
209
         #endif
210
       #elif DISABLED(SDSORT_USES_STACK)
210
       #elif DISABLED(SDSORT_USES_STACK)
211
-        static char sortnames[SDSORT_LIMIT][SORTED_LONGNAME_MAXLEN + 1];
211
+        static char sortnames[SDSORT_LIMIT][SORTED_LONGNAME_MAXLEN];
212
       #endif
212
       #endif
213
 
213
 
214
       // Folder sorting uses an isDir array when caching items.
214
       // Folder sorting uses an isDir array when caching items.
234
 
234
 
235
   static uint8_t file_subcall_ctr;
235
   static uint8_t file_subcall_ctr;
236
   static uint32_t filespos[SD_PROCEDURE_DEPTH];
236
   static uint32_t filespos[SD_PROCEDURE_DEPTH];
237
-  static char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH + 1];
237
+  static char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
238
 
238
 
239
   static uint32_t filesize, sdpos;
239
   static uint32_t filesize, sdpos;
240
 
240
 

Loading…
Cancel
Save