Changeset a827b2f


Ignore:
Timestamp:
Dec 23, 2017 7:36:13 PM (2 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
62210c8
Parents:
1e30efd
Message:

SusiMail?: Clean up/simplify HeaderLine? encoder loop,
in prep for a rewrite for tokenizing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/susimail/src/src/i2p/susi/webmail/encoding/HeaderLine.java

    r1e30efd ra827b2f  
    6767        public String encode(String str) throws EncodingException {
    6868                StringBuilder out = new StringBuilder();
    69                 int l = 0, buffered = 0;
    70                 char tmp[] = new char[BUFSIZE];
     69                int l = 0;
    7170                boolean quoting = false;
    7271                boolean quote = false;
    7372                boolean linebreak = false;
    7473                StringBuilder quotedSequence = null;
    75                 int rest = str.length();
    7674                int index = 0;
    7775                while( true ) {
    78                         while( rest > 0 && buffered < BUFSIZE ) {
    79                                 tmp[buffered++] = str.charAt(index++); 
    80                                 rest--;
    81                         }
    82                         if( rest == 0 && buffered == 0 )
     76                        if (index >= str.length())
    8377                                break;
    84                        
    85                         char c = tmp[0];
    86                         buffered--;
    87                         for( int j = 1; j < BUFSIZE; j++ )
    88                                 tmp[j-1] = tmp[j];
    89                        
     78                        char c = str.charAt(index++);
    9079                        quote = true;
    9180                        if( c > 32 && c < 127 && c != 61 ) {
     
    9483                        else if( ( c == 32 || c == 9 ) ) {
    9584                                quote = false;
    96                                 if( rest == 0 && buffered == 1 )
     85                                if (index >= str.length())
    9786                                        quote = true;
    98                                 if( buffered > 0 && ( tmp[0] == '\r' || tmp[0] == '\n' ) )
     87                                else if (str.charAt(index) == '\r' || str.charAt(index) == '\n')
    9988                                        quote = true;
    10089                        }
    101                         else if( c == 13 && buffered > 0 && tmp[0] == 10 ) {
     90                        else if (c == '\r' && index < str.length() && str.charAt(index) == '\n') {
    10291                                quote = false;
    10392                                linebreak = true;
    104                                 buffered--;
    105                                 for( int j = 1; j < BUFSIZE; j++ )
    106                                         tmp[j-1] = tmp[j];
     93                                index++;
    10794                        }
    10895                        if( quote ) {
Note: See TracChangeset for help on using the changeset viewer.