OK, so I figured out my problem with the endian swapping portion of my program, and now I'm trying to get it to handle file naming, etc. So I'm passing various portions of the file path to the program from a batch file (to make it easier to separate those portions). When I echo those portions from the batch file, they're perfect, but when I print them from the program after they're passed, they're all jumbled up. Here's the pertinent part of my code:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <stdint.h>

main(int argc, char *argv[])
{
    FILE* originalSave;
    FILE* newSave;
    long fileSize;
    long finalSize;
    uint32_t *buffer, result = 0;
    int x;
    char *savePath;
    char *name;
    char *ext;
    char *saveText;

    originalSave = fopen(argv[1], "rb");
    
    ext = argv[2];
    
    name = argv[3];
    
    savePath = argv[4];
    
    printf("savePath = %s\nname = %s\next = %s", savePath, name, ext);
    
    //printf("C:\\%s%s%s", savePath, name, ext);
    
    system("PAUSE");

    return 0;
}
When I do that, I get this output:
Code:
savePath = Documents\wii64saveSwap\ZELDA
name = Settings\User\My
ext = and
But the output from the batch file is:
Code:
savePath = "C:\Documents and Settings\User\My Documents\wii64saveSwap\"
name = "ZELDA MAJORA'S MASK(U)"
ext = ".fla"
I'm utterly confused by why it's doing that. Do you guys?