fix: fix invalid indent value case
feat: implemented main.c
This commit is contained in:
		
							parent
							
								
									3d7131a43e
								
							
						
					
					
						commit
						395b2b254b
					
				| 
						 | 
				
			
			@ -26,10 +26,10 @@
 | 
			
		|||
 * @return  A valid pointer if the operation is completely successful,
 | 
			
		||||
 * NULL if there is any error.
 | 
			
		||||
 */
 | 
			
		||||
ARGO_VALUE *argo_read_value(FILE *f) {
 | 
			
		||||
// ARGO_VALUE *argo_read_value(FILE *f) {
 | 
			
		||||
    // TO BE IMPLEMENTED.
 | 
			
		||||
    abort();
 | 
			
		||||
}
 | 
			
		||||
    // abort();
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief  Read JSON input from a specified input stream, attempt to
 | 
			
		||||
| 
						 | 
				
			
			@ -94,10 +94,10 @@ int argo_read_number(ARGO_NUMBER *n, FILE *f) {
 | 
			
		|||
 * @return  Zero if the operation is completely successful,
 | 
			
		||||
 * nonzero if there is any error.
 | 
			
		||||
 */
 | 
			
		||||
int argo_write_value(ARGO_VALUE *v, FILE *f) {
 | 
			
		||||
// int argo_write_value(ARGO_VALUE *v, FILE *f) {
 | 
			
		||||
    // TO BE IMPLEMENTED.
 | 
			
		||||
    abort();
 | 
			
		||||
}
 | 
			
		||||
    // abort();
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief  Write canonical JSON representing a specified string
 | 
			
		||||
| 
						 | 
				
			
			@ -119,10 +119,10 @@ int argo_write_value(ARGO_VALUE *v, FILE *f) {
 | 
			
		|||
 * @return  Zero if the operation is completely successful,
 | 
			
		||||
 * nonzero if there is any error.
 | 
			
		||||
 */
 | 
			
		||||
int argo_write_string(ARGO_STRING *s, FILE *f) {
 | 
			
		||||
// int argo_write_string(ARGO_STRING *s, FILE *f) {
 | 
			
		||||
    // TO BE IMPLEMENTED.
 | 
			
		||||
    abort();
 | 
			
		||||
}
 | 
			
		||||
    // abort();
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief  Write canonical JSON representing a specified number
 | 
			
		||||
| 
						 | 
				
			
			@ -142,7 +142,7 @@ int argo_write_string(ARGO_STRING *s, FILE *f) {
 | 
			
		|||
 * @return  Zero if the operation is completely successful,
 | 
			
		||||
 * nonzero if there is any error.
 | 
			
		||||
 */
 | 
			
		||||
int argo_write_number(ARGO_NUMBER *n, FILE *f) {
 | 
			
		||||
// int argo_write_number(ARGO_NUMBER *n, FILE *f) {
 | 
			
		||||
    // TO BE IMPLEMENTED.
 | 
			
		||||
    abort();
 | 
			
		||||
}
 | 
			
		||||
    // abort();
 | 
			
		||||
// }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,6 +23,23 @@ int main(int argc, char **argv)
 | 
			
		|||
        USAGE(*argv, EXIT_FAILURE);
 | 
			
		||||
    if(global_options == HELP_OPTION)
 | 
			
		||||
        USAGE(*argv, EXIT_SUCCESS);
 | 
			
		||||
    else if (global_options == VALIDATE_OPTION)
 | 
			
		||||
    {
 | 
			
		||||
        argo_read_value(stdin);
 | 
			
		||||
        return EXIT_SUCCESS;
 | 
			
		||||
    }
 | 
			
		||||
    else if (global_options == CANONICALIZE_OPTION)
 | 
			
		||||
    {
 | 
			
		||||
        ARGO_VALUE *json = argo_read_value(stdin);
 | 
			
		||||
        argo_write_value(json, stdout);
 | 
			
		||||
        return EXIT_SUCCESS;
 | 
			
		||||
    }
 | 
			
		||||
    else if (global_options & PRETTY_PRINT_OPTION)
 | 
			
		||||
    {
 | 
			
		||||
        ARGO_VALUE *json = argo_read_value(stdin);
 | 
			
		||||
        argo_write_value(json, stdout);
 | 
			
		||||
        return EXIT_SUCCESS;
 | 
			
		||||
    }
 | 
			
		||||
    // TO BE IMPLEMENTED
 | 
			
		||||
    return EXIT_FAILURE;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,14 +40,6 @@ int validargs(int argc, char **argv)
 | 
			
		|||
            global_options = VALIDATE_OPTION;
 | 
			
		||||
            isValid = 1;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            if (parse_arg(*(++ptr)) == -1)
 | 
			
		||||
            {
 | 
			
		||||
                global_options = VALIDATE_OPTION;
 | 
			
		||||
                isValid = 1;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    case 2:
 | 
			
		||||
        if (argc == 2)
 | 
			
		||||
| 
						 | 
				
			
			@ -57,18 +49,21 @@ int validargs(int argc, char **argv)
 | 
			
		|||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            switch (parse_arg(*(++ptr)))
 | 
			
		||||
            if (parse_arg(*(++ptr)) == 1)
 | 
			
		||||
            {
 | 
			
		||||
            case -1:
 | 
			
		||||
                global_options = CANONICALIZE_OPTION;
 | 
			
		||||
                int indented_value;
 | 
			
		||||
                if (argc == 3) {
 | 
			
		||||
                    indented_value = 4;
 | 
			
		||||
                }
 | 
			
		||||
                else {
 | 
			
		||||
                    indented_value = str2int(*(++ptr));
 | 
			
		||||
                }
 | 
			
		||||
                if (indented_value == -1) {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
                global_options = CANONICALIZE_OPTION + PRETTY_PRINT_OPTION + indented_value;
 | 
			
		||||
                isValid = 1;
 | 
			
		||||
                break;
 | 
			
		||||
            case 1:
 | 
			
		||||
                global_options = CANONICALIZE_OPTION + PRETTY_PRINT_OPTION + str2int(*(++ptr));
 | 
			
		||||
                isValid = 1;
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
| 
						 | 
				
			
			@ -123,9 +118,14 @@ int str2int(char *arg)
 | 
			
		|||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            ans = 4;
 | 
			
		||||
            ans = -1;
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return ans;
 | 
			
		||||
    if (ans < 256 && ans >= 0) {
 | 
			
		||||
        return ans;
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user