1. Куча / Говнокод #27844

    +1

    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
    * https://github.com/nwchemgit/nwchem/blob/8ac6bc6856d50954029cad01a751006851682398/src/nwpw/pspw/lib/psi/psi.F#L324
    
          subroutine psi_sort_f_orb()
          implicit none
    #include "errquit.fh"
    
    #include "bafdecls.fh"
    #include "psi.fh"
    
          logical value
          integer i,j,ii,jj,ms
          integer r1(2)
          real*8  ei,ej
    
          value = BA_push_get(mt_dcpl,npack1,'r1',r1(2),r1(1))
          if (.not. value) call errquit(
         >     'psi_sort_f_orb: out of stack memory',0,MA_ERR)
    
          do ms=1,ispin
    
            !*** Bubble sort ***
            do ii=1,ne(ms)
             do jj=ii+1,ne(ms)
               i = ii + (ms-1)*ne(1)
               j = jj + (ms-1)*ne(1)
               ei = dbl_mb(eig(1)+i-1)
               ej = dbl_mb(eig(1)+j-1)
    
               !*** swap ***
               if (ej.lt.ei) then
                 dbl_mb(eig(1)+i-1) = ej
                 dbl_mb(eig(1)+j-1) = ei
                 call Pack_c_Copy(1,dcpl_mb(psi1(1)+(i-1)*npack1),
         >                          dcpl_mb(r1(1)))
                 call Pack_c_Copy(1,dcpl_mb(psi1(1)+(j-1)*npack1),
         >                          dcpl_mb(psi1(1)+(i-1)*npack1))
                 call Pack_c_Copy(1,dcpl_mb(r1(1)),
         >                          dcpl_mb(psi1(1)+(j-1)*npack1))
               end if
    
             end do
            end do
    
          end do
    
          value = BA_pop_stack(r1(2))
          if (.not. value) call errquit(
         >     'psi_sort_f_orb: popping stack memory',1, MA_ERR)
          return
          end

    Сортировка пузырьком на фортране из пакета квантовохимических вычислений "NWChem"

    j123123, 30 Ноября 2021

    Комментарии (324)
  2. JavaScript / Говнокод #27843

    0

    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
    async init() {
                    const engine = this.engine = new BABYLON.WebGPUEngine(this.canvas);
                    await engine.initAsync();
                }
    
                async initCompute() {
                    const supportCS = this.engine.getCaps().supportComputeShaders;
                    if (!supportCS) {
                        return true;
                    }
    
                    const computeShaderSource = document.getElementById("calculate").value.replace('WORK_GROUP_SIZE', this.WORK_GROUP_SIZE);
                    this.computeShader = new BABYLON.ComputeShader("compute", this.engine, { computeSource: computeShaderSource }, {
                        bindingsMapping:
                        {
                            "params": { group: 0, binding: 0 },
                            "ssboIn": { group: 0, binding: 1 },
                            "ssboOut": { group: 0, binding: 2 },
                        }
                    });
    
                    const simParamsBuffer = new BABYLON.UniformBuffer(this.engine);
                    simParamsBuffer.updateFloat2("time", t, this.numInstances);
                    simParamsBuffer.update();
    
                    const ssboInBuffer = new BABYLON.StorageBuffer(this.engine, this.ssboData.byteLength);
                    ssboInBuffer.update(this.ssboData);
    
                    const ssboOutBuffer = new BABYLON.StorageBuffer(this.engine, this.ssboData.byteLength);
    
                    this.computeShader.setUniformBuffer("params", simParamsBuffer);
                    this.computeShader.setStorageBuffer("ssboIn", ssboInBuffer);
                    this.computeShader.setStorageBuffer("ssboOut", ssboOutBuffer);
                                    
                    const handler = () => {
                        ssboOutBuffer.read().then((res) => {
                            const resFloats = new Float32Array(res.buffer);
                            //console.log(resFloats);
                            this.ssboData.set(resFloats);
    
                            ssboInBuffer.update(this.ssboData);
                            this.computeShader.setStorageBuffer("ssboIn", ssboInBuffer);
                            this.computeShader.dispatchWhenReady(this.numGroups).then(handler);                
    
                            this.loadPositions();
                        });
                    };
    
                    this.computeShader.dispatchWhenReady(this.numGroups).then(handler);                
                }

    Наговнокодить кому нибудь Compute Shader для WebGPU? полный код тут https://pastebin.com/EigxhfqV . Тут короче симуляция гравитации расчетным методом... просто было делать нехрен и скушно... что бы запустить это говно надо Chrome Canary с включенным WebGPU поддержкой.

    ASD_77, 28 Ноября 2021

    Комментарии (24)
  3. Куча / Говнокод #27842

    0

    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
    <style type="text/css" media="all">
    	html.cms a[href^="https://www.who.int"][href$="/en"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/en/"] {background-color:#ffcc00;}
        html.cms a[href^="http://www.who.int"][href$="/en"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/en/"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/en"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/en/"] {background-color:#ffcc00;}
    	html.cms a[href="/"] {background-color:inherit !important;}
    	html.cms a[href="/en"] {background-color:inherit !important;}
    	html.cms a[href="/en/"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/en"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/en/"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/en"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/en/"] {background-color:inherit !important;}
        html.cms a[href^="https://www.who.int"][href$="/ar"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/ar/"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/ar"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/ar/"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/ar"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/ar/"] {background-color:#ffcc00;}
    	html.cms a[href="/ar"] {background-color:inherit !important;}
    	html.cms a[href="/ar/"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/ar"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/ar/"] {background-color:inherit !important;}
    	html.cms a[href^="https://www.who.int"][href$="/zh"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/zh/"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/zh"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/zh/"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/zh"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/zh/"] {background-color:#ffcc00;}
    	html.cms a[href="/zh"] {background-color:inherit !important;}
    	html.cms a[href="/zh/"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/zh"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/zh/"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/zh"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/zh/"] {background-color:inherit !important;}
    	html.cms a[href^="https://www.who.int"][href$="/fr"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/fr/"] {background-color:#ffcc00;}
        html.cms a[href^="http://www.who.int"][href$="/fr"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/fr/"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/fr"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/fr/"] {background-color:#ffcc00;}
    	html.cms a[href="/fr"] {background-color:inherit !important;}
    	html.cms a[href="/fr"] {background-color:inherit !important;}
    	html.cms a[href="/fr/"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/fr"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/fr/"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/fr"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/fr/"] {background-color:inherit !important;}
    	html.cms a[href^="https://www.who.int"][href$="/ru"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/ru/"] {background-color:#ffcc00;}
    </style>

    Сайт ВОЗ. Многое можно ожидать от frontend, но такое...

    rotoeb, 26 Ноября 2021

    Комментарии (138)
  4. 1C / Говнокод #27841

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    ДокументСсылка = парВыборка.Документ;
    		Если СокрЛП(ДокументСсылка) = "" Тогда
    			Продолжить;
    		КонецЕсли;

    А как вы проверяете на ПустуюСсылку?

    timofeysin, 26 Ноября 2021

    Комментарии (11)
  5. Куча / Говнокод #27840

    0

    1. 1
    Как вы думаете, что может делать функция getAlabamaTimezone(now: Date) ?

    JaneBurt, 25 Ноября 2021

    Комментарии (168)
  6. Куча / Говнокод #27839

    +2

    1. 1
    IT Оффтоп #135

    #105: https://govnokod.ru/27544 https://govnokod.xyz/_27544
    #106: https://govnokod.ru/27552 https://govnokod.xyz/_27552
    #107: https://govnokod.ru/27554 https://govnokod.xyz/_27554
    #108: https://govnokod.ru/27557 https://govnokod.xyz/_27557
    #109: https://govnokod.ru/27581 https://govnokod.xyz/_27581
    #110: https://govnokod.ru/27610 https://govnokod.xyz/_27610
    #111: https://govnokod.ru/27644 https://govnokod.xyz/_27644
    #112: https://govnokod.ru/27648 https://govnokod.xyz/_27648
    #113: https://govnokod.ru/27652 https://govnokod.xyz/_27652
    #114: https://govnokod.ru/27659 https://govnokod.xyz/_27659
    #115: https://govnokod.ru/27665 https://govnokod.xyz/_27665
    #116: https://govnokod.ru/27671 https://govnokod.xyz/_27671
    #117: https://govnokod.ru/27675 https://govnokod.xyz/_27675
    #118: https://govnokod.ru/27685 https://govnokod.xyz/_27685
    #119: https://govnokod.ru/27701 https://govnokod.xyz/_27701
    #120: https://govnokod.ru/27703 https://govnokod.xyz/_27703
    #121: https://govnokod.ru/27710 https://govnokod.xyz/_27710
    #122: https://govnokod.ru/27728 https://govnokod.xyz/_27728
    #123: https://govnokod.ru/27729 https://govnokod.xyz/_27729
    #124: https://govnokod.ru/27730 https://govnokod.xyz/_27730
    #125: https://govnokod.ru/27732 https://govnokod.xyz/_27732
    #126: https://govnokod.ru/27733 https://govnokod.xyz/_27733
    #127: https://govnokod.ru/27737 https://govnokod.xyz/_27737
    #128: https://govnokod.ru/27742 https://govnokod.xyz/_27742
    #129: https://govnokod.ru/27747 https://govnokod.xyz/_27747
    #130: https://govnokod.ru/27755 https://govnokod.xyz/_27755
    #131: https://govnokod.ru/27766 https://govnokod.xyz/_27766
    #132: https://govnokod.ru/27790 https://govnokod.xyz/_27790
    #133: https://govnokod.ru/27828 https://govnokod.xyz/_27828
    #134: https://govnokod.ru/27834 https://govnokod.xyz/_27834

    nepeKamHblu_nemyx, 25 Ноября 2021

    Комментарии (500)
  7. C++ / Говнокод #27838

    +1

    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
    #include <iostream>
    #include <cstdio>
     
    namespace std {
        namespace ios_base2 {
    	    extern struct sync_with_stdio_t {
    	    	void h(bool sync = true) {
    		    	ios_base::sync_with_stdio(sync);
    		    }
    	    } sync_with_stdio;
        }
    }
     
    int main() {
    	std::ios_base2::sync_with_stdio.h(false);
    	std::cout << "1";
    	printf("2");
    	std::cout << "3";
    	puts("");
    	return 0;
    }

    132

    https://ideone.com/NkGYUL

    3_dar, 25 Ноября 2021

    Комментарии (6)
  8. 1C / Говнокод #27837

    0

    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
    Процедура ПоказатьРасчетныеСчета()
    	ТаблицаРасчетныхСчетов.Очистить();
    	
    	Если ЭтоНовый() Тогда
    		Возврат;
    	КонецЕсли;	
    	
    	Выборка = Справочники.ТСЖ.Выбрать();
    	Пока Выборка.Следующий() Цикл
    		ТСЖНеБух = Выборка.Ссылка;
    		Если (ТСЖНеБух.ПометкаУдаления) ИЛИ (ТСЖНеБух.ЭтоУК=1) ИЛИ (ТСЖНеБух.ЭтоУК=2) Тогда 
    			Продолжить;
    		КонецЕсли;
    		
    		//--- (1)--- Все СОБСТВЕННЫЕ счета (выборка по владельцу счета)
    		Если (НЕ ТСЖНеБух.НаБалансеУК) Тогда
    			ВыбСчетов = Справочники.БанковскиеСчета.Выбрать(,ТСЖНеБух,,"Код Возр"); 
    			Пока ВыбСчетов.Следующий() Цикл
    				Если (НЕ ВыбСчетов.ПометкаУдаления) Тогда
    					ДобавитьСчет(ТСЖНеБух, ВыбСчетов.Ссылка, ВыбСчетов.Ссылка.ХранилищеУслуг);
    				КонецЕсли;	
    			КонецЦикла;
    		КонецЕсли;	
    
    		//--- (2)--- Все ЧУЖИЕ счета (обход табличной части СчетаУК)
    		Для Каждого ВыбСчет Из ТСЖНеБух.СчетаУК Цикл
    			Если  (ВыбСчет.Организация   = Справочники.ТСЖ.ПустаяСсылка()) ИЛИ
    				  (ВыбСчет.РасчетныйСчет = Справочники.БанковскиеСчета.ПустаяСсылка()) Тогда
    				  Продолжить;
    			КонецЕсли;	  
    			Если НЕ ВыбСчет.РасчетныйСчет.ПометкаУдаления Тогда
    				ДобавитьСчет(ТСЖНеБух, ВыбСчет.РасчетныйСчет, ВыбСчет.ХранилищеУслуг);
    			КонецЕсли;	
    		КонецЦикла;	
    		//----------
    	КонецЦикла;	
    КонецПроцедуры
    Процедура ДобавитьСчет(ТСЖНеБух, РСчет, Хран)
    		НовСтр               = ТаблицаРасчетныхСчетов.Добавить();
    		НовСтр.Организация   = ТСЖНеБух;
    		НовСтр.Получатель    = РСчет.Владелец;
    		НовСтр.РасчетныйСчет = РСчет;
    			
    		Если ТСЖНеБух.ВсеУслугиВОдной Тогда
    			НовСтр.Флаг      = "Да, может.";
    		Иначе	
    			МассУслуг      = глПолучитьМассивСсылокУслуг(Хран);
    			НовСтр.Флаг      = ?(МассУслуг.Найти( Ссылка ) = Неопределено, "Нет", "Да, может.");
    		КонецЕсли;	
    КонецПроцедуры

    ХранилищеЗначений, любимый(?) костыль людей, не слышавших о нормализации.
    Вместо того, чтобы сделать регистр сведений со связями (хотя бы)счёт-услуга, мы запихнём список услуг в ХЗ - реквизит счёта. Это ведь так удобно(на самом деле нет)!

    CtrlAltReset, 25 Ноября 2021

    Комментарии (4)
  9. Куча / Говнокод #27836

    0

    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
    Disk /dev/sdc: 14,46 GiB, 15523119104 bytes, 30318592 sectors
    Disk model: Storage Device
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x00000000
    
    Device     Boot   Start     End Sectors   Size Id Type
    /dev/sdc1       1009664 7802879 6793216   3,2G  b W95 FAT32
    /dev/sdc2  *      73728  139263   65536    32M  6 FAT16
    /dev/sdc3             1 1009664 1009664   493M 85 Linux extended
    /dev/sdc5        139264  172031   32768    16M 83 Linux
    /dev/sdc6        172032  204799   32768    16M 83 Linux
    /dev/sdc7        204800  275455   70656  34,5M 83 Linux
    /dev/sdc8        275456  776191  500736 244,5M 83 Linux
    /dev/sdc9        776192  976895  200704    98M 83 Linux
    /dev/sdc10       976896 1009663   32768    16M 83 Linux

    Изначально хотел запихнуть в старый PocketBook515 флешку побольше. Она там хитрая, с линуксом, просто так поменять нельзя. Столкнулся с тем, что не могу parted подвинуть границы раздела, потому что overlapping partitions запрещены. Что делать? вот

    fdisk -l


    Хочу пореверсинжинирить это всё, извлек изнутри sd-карту, покопировал dd на другую флешку. Пока со своей загрузиться не могу, устройство виснет без объяснений. Возможно где-то прописаны гуиды флешки или что-то такое. Но при прямом чтении вижу всякие разделы с кишками кастрированного линукса. Конечная цель -- запустить на этой фигне vim с подключенной клавой. В целом прошивка закрытая, есть блобы. Но много и конфигов и шелл-скриптов в чистом виде, так что поменять можно многое. Плюс раньше был для них ещё какой-то дохлый sdk но уже очень давно. Хотя текстовый редактор думаю написать можно будет, если не удастся обуздать этот линукс.

    Если кому-то пиздец как не лень, вот dd родной флешки
    https://disk.yandex.ru/d/L08isezHHoZCOQ

    Буду крайне рад, если кто-то поглядит что там вообще в целом.

    Завтра если кто-то отзовётся поскидываю ещё скринов и содержимое скриптов.

    vistefan, 23 Ноября 2021

    Комментарии (106)
  10. Си / Говнокод #27835

    0

    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
    // https://github.com/microsoft/Windows-driver-samples/blob/d3ec258921cfcef7b053b5a2c866330d43dd3f03/filesys/fastfat/dumpsup.c#L35
    
    #define DumpLabel(Label,Width) {                                          \
        size_t i, LastPeriod=0;                                                \
        CHAR _Str[20];                                                        \
        for(i=0;i<2;i++) { _Str[i] = UCHAR_SP;}                               \
        for(i=0;i<strlen(#Label);i++) {if (#Label[i] == '.') LastPeriod = i;} \
        strncpy(&_Str[2],&#Label[LastPeriod],Width);                          \
        for(i=strlen(_Str);i<Width;i++) {_Str[i] = UCHAR_SP;}                 \
        _Str[Width] = '\0';                                                   \
        DbgPrint("%s", _Str);                                                  \
    }
    
    #define DumpField(Field) {                                         \
        if ((FatDumpCurrentColumn + 18 + 9 + 9) > 80) {DumpNewLine();} \
        FatDumpCurrentColumn += 18 + 9 + 9;                            \
        DumpLabel(Field,18);                                           \
        DbgPrint(":%p", Ptr->Field);                                  \
        DbgPrint("         ");                                          \
    }
    
    #define DumpListEntry(Links) {                                     \
        if ((FatDumpCurrentColumn + 18 + 9 + 9) > 80) {DumpNewLine();} \
        FatDumpCurrentColumn += 18 + 9 + 9;                            \
        DumpLabel(Links,18);                                           \
        DbgPrint(":%p", Ptr->Links.Flink);                            \
        DbgPrint(":%p", Ptr->Links.Blink);                            \
    }
    
    #define DumpName(Field,Width) {                                    \
        ULONG i;                                                       \
        CHAR _String[256];                                             \
        if ((FatDumpCurrentColumn + 18 + Width) > 80) {DumpNewLine();} \
        FatDumpCurrentColumn += 18 + Width;                            \
        DumpLabel(Field,18);                                           \
        for(i=0;i<Width;i++) {_String[i] = (CHAR)Ptr->Field[i];}             \
        _String[Width] = '\0';                                         \
        DbgPrint("%s", _String);                                        \
    }
    
    #define TestForNull(Name) {                                 \
        if (Ptr == NULL) {                                      \
            DbgPrint("%s - Cannot dump a NULL pointer\n", Name); \
            return;                                             \
        }                                                       \
    }

    Макроговно от мекомягких для отладки файловой системы FAT

    j123123, 22 Ноября 2021

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